<Linux开发> linux开发工具-之-交叉编译环境搭建

<Linux开发> linux开发工具-之-交叉编译环境搭建

一、搭建ubuntu下的FTP服务器


打开ubuntu终端输入以下命令安装FTP服务:

sudo apt-get install vsftpd

在这里插入图片描述
修改FTP配置:
使用 VI 命令打开/etc/vsftpd.conf

sudo vi /etc/vsftpd.conf

并修改完为以下内容:

# Uncomment this to allow local users to log in.
local_enable=YES
# Uncomment this to enable any form of FTP write command.
write_enable=YES

保存退出vi编译,重启FTP服务,命令:

sudo /etc/init.d/vsftpd restart

在这里插入图片描述

重启完成后即可使用FTP 客户端连接。

以下内容是为了新建TFTP文件夹,这样开发板就能够通过TFTP访问ubuntu主机服务器了。
安装 tftp-hpa 和 tftpd-hpa

sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd

新建tftp文件夹:
如:sudo mkdir -p /home/water/imax/tftp
新建配置文件:

sudo mkdir -p /etc/xinetd.d
sudo touch /etc/xinetd.d/tftp

/etc/xinetd.d/tftp文件内输入以下内容:

server tftp
{
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = root
        server          = /usr/sbin/in.tftpd
        server_args     = -s /home/water/imax/tftp/
        disable         = no
        per_source      = 11
        cps             = 100 2
        flafs           = IPv4
}
sudo service tftpd-hpa start

打开/etc/default/tftpd-hpa 文件,将其修改为如下所示内容:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/water/imax/tftp"
TFTP_ADDRESS=":69" 
TFTP_OPTIONS="-l -c -s"
sudo service tftpd-hpa restart
重启完成后即可使用FTP 客户端连接服务器的文件夹。

二、搭建ubuntu下的NFS 服务

使用如下命令安装 NFS 服务:

sudo apt-get install nfs-kernel-server rpcbind

等待安装完成后,我们需要设置一个nfs的共享目录,笔者将“/home/water/imax/nfs”目录作为nfs的共享目录。
首先新建该目录:

mkdir -p /home/water/imax/nfs

配置 nfs,使用如下命令打开 nfs 配置文件/etc/exports:

sudo vi /etc/exports

打开/etc/exports 以后在后面添加如下所示内容:

/home/water/imax/nfs *(rw,sync,no_root_squash)

该路径读者根据自己的实际路径设置即可。
在这里插入图片描述
保存修改后重启NFS服务,命令如下:

sudo /etc/init.d/nfs-kernel-server restart

在这里插入图片描述

三、搭建ubuntu下的 SSH 服务

开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu,比如使用 SecureCRT登录ubuntu,Ubuntu 下使用如下命令安装 SSH 服务:

sudo apt-get install openssh-server

在这里插入图片描述
上述命令安装 ssh 服务,ssh 的配置文件为/etc/ssh/sshd_config,使用默认配置即可。

四、搭建ubuntu下的 交叉编译工具链

1、初识 交叉编译工具链


我们平常写代码都是在PC电脑上编写的,但是写完的代码是编译得到的可执行文件 是要放到Linux板子上运行的,而不是在pc上运行。那么如果使用PC自带的编译工具编译出来的执行文件则是在PC上运行的,这样就不可以在linux板子上运行了。
所以我们要达到的目的是,在pc上编写代码,且要在pc上编译代码,编译得到的执行文件却要能在linux板子上运行。那么就诞生出了交叉编译工具链。

Ubuntu 自带的 gcc 编译器是针对 X86 架构的!而我们现在要编译的是 ARM 架构的代码,所以我们需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 GCC 编译器,这个编译器就叫做交叉编译器,总结一下交叉编译器就是:
1、它肯定是一个 GCC 编译器。
2、这个 GCC 编译器是运行在 X86 架构的 PC 上的。
3、这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可执行文件是在 ARM 芯片上运行的。

交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。

交叉编译器有很多种,我们使用 Linaro 出品的交叉编译器,Linaro 是一间非营利性质的开放源代码软件工程公司,Linaro 开发了很多软件,最著名的就是 Linaro GCC 编译工具链(编译器),关于 Linaro 详细的介绍可以到 Linaro 官网查阅。Linaro GCC 编译器下载地址如下:Linaro
鉴于我们后续开发是基于 I.MX6U的,是一个 Cortex-A7 内核的开发板,因此选择 arm-linux-gnueabihf
在这里插入图片描述
目前最新的编译器版本是 7.5.0,网上有很多网友在使用最新版本的编译器时,都会遇到各式各样的问题,所以为了避坑,笔者这里选用了4.9-2017.01版本
在这里插入图片描述
上图中有很多种交叉编译器,这两种: gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.tar.xz 和 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz,第一个是针对 32 位系统的,第二个是针对 64 位系统的。大家根据自己所使用的 Ubuntu 系统类型选择合适的版本,比如笔者安装的 Ubuntu 20.04 是 64 位系统,因此我要使用 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz。

点击对应版本后就会下载了,下载完成后,我们将其放到ubuntu下的/home/water/imax/tool目录,这个目录时笔者用来专门存放工具的目录,读者可自行存放。
通过FTP从windows传到ubuntu中。
在这里插入图片描述

2、搭建交叉编译工具链


在 Ubuntu 中创建目录:/usr/local/arm,命令如下:

sudo mkdir /usr/local/arm

将刚刚下载的交叉工具链拷贝到此目录下,命令如下:

sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f

在这里插入图片描述
拷贝完成以后在/usr/local/arm 目录中对交叉编译工具进行解压,解压命令如下:

cd /usr/local/arm/
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

等待解压完成,解压完成以后会生成一个名为“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf”的文件夹,这个文件夹里面就是我们的交叉编译工具链。
在这里插入图片描述

修改环境变量,使用 VI 打开/etc/profile 文件,命令如下:

sudo vi /etc/profile

打开/etc/profile 以后,在最后面输入如下所示内容:

export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

在这里插入图片描述
修改好以后就保存退出,重启 Ubuntu 系统,交叉编译工具链(编译器)就安装成功了。

3、交叉编译工具链关联库


在使用交叉编译器之前还需要安装一下其它的库,命令如下:

sudo apt-get install lsb-core lib32stdc++6

4、交叉编译工具链编译器验证


首先查看一下交叉编译工具的版本号,输入如下命令:

arm-linux-gnueabihf-gcc -v

在这里插入图片描述
从图中可以看出当前交叉编译器的版本号为 4.9.4,说明交叉编译工具链安装成功。
编写个简单的例程验证一下;
例程代码如下:

#include <stdio.h>

void main(voiod)
{
    printf("hello OneFu!\n");
    return;
}

在这里插入图片描述
根据上诉例子编译得到的可执行文件main,可知其是ARM结构的,就是能在linux板子上运行的可执行程序。

五、安装SecureCRT

参考笔者另一篇文章:windows安装SecureCRT 7.3
SecureCRT 一般常用来作为linux开发板的终端使用,那么就需要安装串口驱动了,笔者这里安装CH340的驱动,读者可自行网上查找对应的驱动,或者联系笔者索要(无偿提供的哟)。

六、安装Visual Studio Code

安装Visual Studio Code并无太多要求,直接网页搜索后下载双击安装即可。ubuntu下还可通过软件商城安装,如下图:
在这里插入图片描述
后续将以Visual Studio Code 作为阅读代码,编写代码的主要工具。
读者想用其它工具,可自行安装。

七、总结


至此,嵌入linux开发所需的工具基本准备完成;后续我们就基于这环境来开发Linu相关的项目内容。当然如果开发过程中涉及到其它工具,我们在慢慢补充即可。

笔者QQ:759521350

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

waterfxw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值