Linux环境下交叉编译工具链的制作

本文参照教材嵌入式Linux开发入门宝典

一、在Windows上安装虚拟机

1、浏览器搜索VMware,下载VMware Workstation Pro最新版,目前为16.2.3,并完成安装。

2、打开VMware,新建一个虚拟机。

(1)点击文件->新建虚拟机/在主页点击创建新的虚拟机;

424424a63cf047038ac5a8abb6f48afd.png

 (2)在虚拟机向导配置中选择自定义,点击下一步;

d84e1b9dfc5543b7bf4a157b244abc3b.png

 (3)虚拟机硬件兼容性选择Workstation 16.2.x,默认即可(以下配置完成后依次点击下一步即可,操作简单,故没有粘贴截图);

(4)安装客户机操作系统选择稍后安装操作系统;

(5)客户机操作系统选择Linux,版本选择Ubuntu;

(6)对虚拟机进行命名,根据自己的磁盘所剩空间或个人喜好选择安装位置,这里我选择安装在E盘下的Virtual Machines文件夹下;

6cded9acd4ef40bd975128a8eb49c172.png

 (7)处理器配置->默认;虚拟机内存空间分配根据自己PC机动态分配,我这里选择分配4G内存;网络类型选择->NAT方式;I/O控制器选->默认;磁盘类型选择->默认;选择磁盘->创建新虚拟硬盘;最大磁盘大小根据自己的磁盘空间进行分配,不能超过磁盘所剩最大空间,因为我的PC机硬盘分区是NAFS格式,故可以将磁盘存储为单个文件;给磁盘文件命名(可默认);

(8)检查设置是否与以上所设值匹配,若匹配,单击完成按钮完成虚拟机的创建,若有误,返回修改即可;

0731e7120332443aa8150d904dfa3a58.png

 561a73f21cd64009af4847917a80a1a4.png

 二、在虚拟机上安装Linux操作系统

1、登录Ubuntu官网,下载桌面iso映像文件,此处我下载的版本是ubuntu-20.04.4-desktop-amd64.iso;

2、下载完成后在VMware中点击“编辑虚拟机设置”,点击CD/DVD,选择使用ISO映像文件,并点击浏览将下载好的iso映像文件添加上去,点击确定即可;

2736a0692ce44ae8ae90c5ba518480f5.png

3、点击开启此虚拟机,安装操作系统

选择中文简体->安装Ubuntu

05a088ce7c804fbda813e4375e5499e1.png

 键盘布局选择Chinese(当然,精通其他语言的读者也可以选择键盘布局),点击继续

a14dc65bf9c94af6baf95239a1139a04.png

 选择最小安装/正常安装,单击继续。我的PC机已经安装好了交叉工具编译链,此处选择最小安装(读者可根据需求自行安装,正常安装会多一些最小安装没有的Application,像类似于Windows下的office办公软件);

5780299587a54f038b077a7a7807da06.png

 点击其他选项对磁盘进行分区

点击新建分区表->继续

点击空闲->+号->设置大小->设置主分区/逻辑分区->新分区的位置->用于->挂载点(同教材即可)剩下两个分区新建过程跟这个差不多;

3f47ad798566488286af6d3513fb353e.png

 设置完成如下图所示:

54a11dceaa3d4d12914d935f21265cbe.png

 点击现在安装,单击继续,时区选择“上海”,点击继续,设置用户名和密码

855f4793866c466eb7a1ea42f2d72b79.png

 点击继续,等待系统完成安装。

安装完成后重启,点击配置虚拟机设置,将CD/DVD项的启动时连接取消即可。

三、配置宿主Linux操作系统

1、宿主操作系统网络设置

点击编辑虚拟机设置,选择网络适配器为桥接模式,点击确定。

2f24e873e9434558ac758523c0842b7d.png

打开Window操作系统命令提示符,输入ipconfig /all查看宿主机IP配置,打开Linux系统终端,输入sudo nano /etc/network/interface,添加静态IP设置(参照教材),将Window操作系统和Linux操作系统IP地址设置为同一网段即可

按ctrl+x保存后重启网络服务,输入sudo service network-manager restart,重启网络服务,完成后即可看到网络连接成功,说明配置成功,或在终端执行ping www.baidu.com命令,可以ping通即表明配置成功。

73f97cdd42da4b288625c7805842068e.png

 2、打开FTP、SSH、和NFS服务

(1)更新软件源

步骤同教材,在Linux终端下输入相应命令即可。

(2)安装设置启动FTP服务

在终端输入sudo apt install vsftpd命令,完成安装

4da56e90622d4d849f8e5be38eb82465.png

 修改配置文件/etc/vsftpd.conf(找到对应的代码部分,将#删除即可)

eccf9483c79842adbeb39eef5af214ab.png

 保存配置文件并重启FTP服务,使设置生效即可

(3)安装设置启动SSH服务和NFS服务

此处没有放截图,根据教材做的,基本过程同(2)安装FTP

四、在宿主机上安装、配置开发环境

1、安装编译环境

2、安装编辑工具vim(vim用不到可以不装)

3、修改工作目录opt的所有者

以上三步比较简单,按教材上给的终端命令就可完成,因此没有截图,重点放在了以下制作交叉编译工具链。

五、制作交叉编译工具链-自己制作工具链

1、我下载的工具链是crosstool-ng1.24.0,可以在Ubuntu中使用火狐浏览器登录以下网址进行下载:http://crosstool-ng.github.io/2019/04/13/release-1.24.0

eb758f66925f41efa7d84889669046ce.png

在opt文件夹下创建目录tools,将下载好的crosstool-ng移动到该文件夹下

1、解压

在终端输入教材上的命令,完成解压

8581b9f3259d4e3291f6b4923f8e802d.png

 2、安装软件依赖包

dd2dd38ca2664fdf8c50a7bd75ecbac1.png

00a952fa15e843488b128415a0f19915.png

5111f624fa444e039a0b6b534fa916b6.png

 这里我分了三次安装,其实可以一次性安装,各个依赖包之间用逗号隔开就可以了。

3、编译安装crosstool-ng

在配置crosstool-ng时会提示缺少某个软件依赖包,应该时所用crosstool-ng跟教材所用版本不一致的原因,按步骤(2)将缺少的软件依赖包依次进行安装,重新进行编译,直到编译不再提示缺少软件依赖包即可。

f381766eb31447f694c02e84f4f743d8.png

 编译时还会出现一个问题,就是一直显示编译缺少libtool,但是安装却发现libtool已经存在,再安装一个libtool-bin即可解决该问题。

455a3e5e17644d9ba5e3a0c1cc26c883.png

 编译通过会有如下提示

ace3b49e6ffe44428325a739bd1c4a5c.png

 至此编译工作就完成啦,此时执行make和make install命令即可

4、将crosstool-ng工具命令添加到环境变量PATH

再文件系统中打开/opt/tools/crosstool_install/bin目录,即可看到ct-ng已经存在

cc7f7c5f8a8c4815be18215e52670ac5.png

 执行ct-ng help命令,即可看到crosstool-ng的版本信息

2ceb5e07b1a74812933bf900a9e22fb1.png

 5、选择配置文件

执行ct-ng list-samples查看crosstool-ng默认支持的处理器

d2bd90169a1d48a29b9e6fb5f09f1ed0.png

 复制默认配置文件到crosstool_build,并复制crosstool.config为.config

.config文件为隐藏文件,需要使用ls -al命令才能看到该文件

bf3e88293be942fea29487085b3d6491.png

 6、执行menuconfig配置工具链

执行ct-ng menuconfig打开配置面板

2e14aa45048f47b2866d2f877599003e.png

 依次根据教材做配置的修改

e6791bdefdc549cc8064c34d971bb821.png

bf570af3b2d54fc0b874af6698f5fa58.png

bfe564cd7aa0493f8bd6ebdb2be2e7d5.png cf5f9cf968aa42b7b6806a2da1c8433b.png

 893f35b992e54b9fa8f307742174e1c4.png

585184b70c5a4767a3ee2363e28bff37.png

d6a36ce2712246c9ae1d21656d1025b2.png b97e896d2f4f448b94b99aea587c1a6d.png

 7、下载工具链所依赖的软件包

使用命令查看.config文件,里面可以查到相关软件包的版本信息,依次进行下载,并将其放在/opt/tools/crosstool/src下即可

7152f4dbb1634ddfb70f3405847cbea8.png

ad6ceb6640e84f5f8294df11c027b41b.png

如duma_2_5_15,打开网址下载对应版本即可,或者直接火狐浏览器搜索对应的软件包名称,找到对应版本进行下载。

8、编译

由于我已经成功搭建过一次交叉编译工具链,编译过程缓慢,因此我直接终止了本次编译。以下是我在另一台虚拟机上成功搭建后保留的截图。

f3b7d2ad810146ba8790c564f3bd23ae.png

 下载的软件依赖包:

9467ee6692ee4d42a9ba53034b5e62c5.png

 工具版本信息

b892fbd37ef544dea50b4c5fd8232eae.png

至此,交叉编译工具链就制作好了,读者就可以愉快的进行嵌入式开发啦。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

g-yli

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

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

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

打赏作者

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

抵扣说明:

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

余额充值