Linux环境下交叉编译工具链的制作
本文参照教材嵌入式Linux开发入门宝典
一、在Windows上安装虚拟机
1、浏览器搜索VMware,下载VMware Workstation Pro最新版,目前为16.2.3,并完成安装。
2、打开VMware,新建一个虚拟机。
(1)点击文件->新建虚拟机/在主页点击创建新的虚拟机;
(2)在虚拟机向导配置中选择自定义,点击下一步;
(3)虚拟机硬件兼容性选择Workstation 16.2.x,默认即可(以下配置完成后依次点击下一步即可,操作简单,故没有粘贴截图);
(4)安装客户机操作系统选择稍后安装操作系统;
(5)客户机操作系统选择Linux,版本选择Ubuntu;
(6)对虚拟机进行命名,根据自己的磁盘所剩空间或个人喜好选择安装位置,这里我选择安装在E盘下的Virtual Machines文件夹下;
(7)处理器配置->默认;虚拟机内存空间分配根据自己PC机动态分配,我这里选择分配4G内存;网络类型选择->NAT方式;I/O控制器选->默认;磁盘类型选择->默认;选择磁盘->创建新虚拟硬盘;最大磁盘大小根据自己的磁盘空间进行分配,不能超过磁盘所剩最大空间,因为我的PC机硬盘分区是NAFS格式,故可以将磁盘存储为单个文件;给磁盘文件命名(可默认);
(8)检查设置是否与以上所设值匹配,若匹配,单击完成按钮完成虚拟机的创建,若有误,返回修改即可;
二、在虚拟机上安装Linux操作系统
1、登录Ubuntu官网,下载桌面iso映像文件,此处我下载的版本是ubuntu-20.04.4-desktop-amd64.iso;
2、下载完成后在VMware中点击“编辑虚拟机设置”,点击CD/DVD,选择使用ISO映像文件,并点击浏览将下载好的iso映像文件添加上去,点击确定即可;
3、点击开启此虚拟机,安装操作系统
选择中文简体->安装Ubuntu
键盘布局选择Chinese(当然,精通其他语言的读者也可以选择键盘布局),点击继续
选择最小安装/正常安装,单击继续。我的PC机已经安装好了交叉工具编译链,此处选择最小安装(读者可根据需求自行安装,正常安装会多一些最小安装没有的Application,像类似于Windows下的office办公软件);
点击其他选项对磁盘进行分区
点击新建分区表->继续
点击空闲->+号->设置大小->设置主分区/逻辑分区->新分区的位置->用于->挂载点(同教材即可)剩下两个分区新建过程跟这个差不多;
设置完成如下图所示:
点击现在安装,单击继续,时区选择“上海”,点击继续,设置用户名和密码
点击继续,等待系统完成安装。
安装完成后重启,点击配置虚拟机设置,将CD/DVD项的启动时连接取消即可。
三、配置宿主Linux操作系统
1、宿主操作系统网络设置
点击编辑虚拟机设置,选择网络适配器为桥接模式,点击确定。
打开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通即表明配置成功。
2、打开FTP、SSH、和NFS服务
(1)更新软件源
步骤同教材,在Linux终端下输入相应命令即可。
(2)安装设置启动FTP服务
在终端输入sudo apt install vsftpd命令,完成安装
修改配置文件/etc/vsftpd.conf(找到对应的代码部分,将#删除即可)
保存配置文件并重启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
在opt文件夹下创建目录tools,将下载好的crosstool-ng移动到该文件夹下
1、解压
在终端输入教材上的命令,完成解压
2、安装软件依赖包
这里我分了三次安装,其实可以一次性安装,各个依赖包之间用逗号隔开就可以了。
3、编译安装crosstool-ng
在配置crosstool-ng时会提示缺少某个软件依赖包,应该时所用crosstool-ng跟教材所用版本不一致的原因,按步骤(2)将缺少的软件依赖包依次进行安装,重新进行编译,直到编译不再提示缺少软件依赖包即可。
编译时还会出现一个问题,就是一直显示编译缺少libtool,但是安装却发现libtool已经存在,再安装一个libtool-bin即可解决该问题。
编译通过会有如下提示
至此编译工作就完成啦,此时执行make和make install命令即可
4、将crosstool-ng工具命令添加到环境变量PATH
再文件系统中打开/opt/tools/crosstool_install/bin目录,即可看到ct-ng已经存在
执行ct-ng help命令,即可看到crosstool-ng的版本信息
5、选择配置文件
执行ct-ng list-samples查看crosstool-ng默认支持的处理器
复制默认配置文件到crosstool_build,并复制crosstool.config为.config
.config文件为隐藏文件,需要使用ls -al命令才能看到该文件
6、执行menuconfig配置工具链
执行ct-ng menuconfig打开配置面板
依次根据教材做配置的修改
7、下载工具链所依赖的软件包
使用命令查看.config文件,里面可以查到相关软件包的版本信息,依次进行下载,并将其放在/opt/tools/crosstool/src下即可
如duma_2_5_15,打开网址下载对应版本即可,或者直接火狐浏览器搜索对应的软件包名称,找到对应版本进行下载。
8、编译
由于我已经成功搭建过一次交叉编译工具链,编译过程缓慢,因此我直接终止了本次编译。以下是我在另一台虚拟机上成功搭建后保留的截图。
下载的软件依赖包:
工具版本信息
至此,交叉编译工具链就制作好了,读者就可以愉快的进行嵌入式开发啦。
Linux环境下交叉编译工具链的制作相关推荐
- 制定交叉编译工具_交叉编译工具链的制作
交叉编译工具链的制作 前言及准备 本笔记制作的交叉编译工具已通过简单验证,对初次有需求需要搭建交叉工具链有一定的指导意义,制作工具链比较耗时,需做好花费一整天时间的准备. 资料学习链接 linux工具 ...
- 交叉编译工具链的制作
交叉编译工具链的制作 前言及准备 本笔记制作的交叉编译工具已通过简单验证,对初次有需求需要搭建交叉工具链有一定的指导意义,制作工具链比较耗时,需做好花费一整天时间的准备. 资料学习链接 crossto ...
- Linux环境下交叉编译mosquitto及其依赖
本文的目录索引 文章目录 **本文的目录索引** **Linux环境下交叉编译mosquitto** 1.相关依赖(两个库外加一个交叉编译工具链) 2.开发环境以及目标环境说明 3.准备适用的交叉编译 ...
- linux top交叉编译_ARM Linux交叉编译工具链的制作
本次是在VMWare虚拟机里安装了CentOS5.2操作系统,并在上面编译自己的ARM交叉编译工具链,下面是相应的步骤: 首先下载crosstool0.43源码包(crosstool-0.43.tar ...
- arm-linux交叉编译工具链的制作(基于S3C2440)【转】
本文转载自:http://eric-gao.iteye.com/blog/2160622 制作arm-linux交叉编译工具链一般通过crosstool工具或者crosstool-NG,前者使用方便, ...
- Linux环境下FTP工具的使用方法
在Windows环境下创建Ftp目录作为服务器根目录 在Linux端的操作: 从服务器端下载文件到Linux端: ftpget -u User -p Password ServerIP File Fi ...
- Linux环境下搭建区块链私有链+部署智能合约
文章目录 一.前期准备 二.安装goland环境 三.安装go版本的以太坊源码,并编译 四.私有链搭建 五.私有链节点加入 六.部署智能合约 七.参考链接 一.前期准备 安装更新相关组件 sudo y ...
- linux arm 常用服务,ARM、linux常用服务器+交叉编译工具链
1.tftp服务器在安装linux时通常可供选择是否安装tftp服务器 启动后可通过在控制终端输入netstat -a|grep tftp查看是否已经安装若已安装则为如下打印信息: [root@loc ...
- arm hisiv100 linux,hisiv100交叉编译工具链安装
hisi交叉编译工具链安装 一. 摘要: 交叉编译简单的说,就是A机器上编译生成,运行在B机器上.那么在A机器上的编译工具安装,就是本文所要描述的内容. 工欲善其事必先利其器,所以交叉 ...
最新文章
- ACMNO.13求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。 输入 n 输出 和 样例输入 5 样例输出 153
- Bootstrap3 排版之水平对齐
- win2003下APACHE2.050+PHP5+MYSQL4.0.20+PHPMYADMIN2.57 的简易安装配置
- Request库入门
- php---header函数的简介
- 虚拟机vmware vmnet8 未识别(转)
- 如何打造7*24h持续交付通道?阿里高级技术专家的5点思考
- 计算机原理教程 pdf,《计算机组成原理》教程 概述.pdf
- VISIO科学图形包-亲测VISIO2013可用,应该适用其他高级版本
- python自动化交易通达信_通达信实现自动交易系统
- 统计·数值分析·概率论·人工智能数学基础
- html5直线逆时针旋转45,逆时针旋转45°后的图形.PPT
- 移动端车牌识别SDK应用
- 计算机上怎么设置qq隐藏图标,QQ图标隐藏了怎么弄出来
- 关于运行软件报错Address already in use
- emoji表情mysql处理_Mysql Emoji表情处理
- Linux脚本的制作命令
- 图解ARP协议(三)ARP防御篇-如何揪出内鬼并优雅的还手
- 全球名校AI课程库(2)| 吴恩达 · 机器学习专项课程『Machine Learning』
- mysql 生成序号 且自增
热门文章
- 适合永久收藏的模拟电子四大名著
- word如何批量修改标点符号和数字的字体?
- word家庭版误删后重装
- 苹果cms安装mysql检测失败_maccms(苹果cms)采集过程报错--MySQL server has gone away错误的解决办法...
- Mtk android中的设备树,msm8909+android5.1 device tree(dt) 设备树组成和编译
- 联想服务器连接显示器接口,联想推出由USB-C接口连接和供电的14寸独立外接显示器...
- 关于Yolov7测试后不会描框的解决办法!
- 计算机网络原理与实践ppt,从理论到实战,微软人工智能系统课程分享(附PPT)
- 练习-Java类和对象之访问限制(21)
- Chrome游戏:超级玛丽(Super Mario Bros. Crossover)、愤怒的小鸟(Angry Birds