Mastering Embedded Linux Programming 学习 (一)嵌入式交叉编译工具链的构建,基于crosstool-NG
Mastering Embedded Linux Programming 学习 (一)
一、ubuntu 软件包下载
sudo apt install autoconf automake bison bzip2 cmake \
flex g++ gawk gcc gettext git gperf help2man libncurses5-dev libstdc++6 libtool \
libtool-bin make patch python3-dev rsync texinfo unzip wget xz-utils
二、安装QEMU
qemu-system-arm -machine vexpress-a9 -m 256M -drive file=rootfs.ext4,sd -net nic -net use -kernel zImage -dtb vexpress-v2p-ca9.dtb -append "console=ttyAMA0,115200 root=/dev/mmcblk0" -serial stdio -net nic,model=lan9118 -net tap,ifname=tap0
使用上面的命令创建一个虚拟机
sudo tunctl -u $(whoami) -t tap0
上面的一行命令创建一个名为tap0的网络接口,tunctl命令需要安装一个uml-utilities的软件包
三、安装crosstool-NG
# git clone https://github.com/crosstool-ng/crosstool-ng.git
git clone https://gitee.com/ffbuild/crosstool-ng.git
cd crosstool-ng
git checkout crosstool-ng-1.24.0
./bootstrap
./configure --prefix=${PWD}
make
make install
四、使用crosstool-NG为BeagleBone Black构建工具链
输出支持的工具链
执行完上面的命令之后,使用下面的命令可以列出支持哪些工具链
bin/ct-ng list-samples
显示工具链配置
bin/ct-ng show-arm-cortex_a8-linux-gnueabi
类似的就是在list-samples输出的选项前面加上show-前缀,输出相应工具链的信息
上面的命令输出如下图所示
选择工具链
要选择一个工具链,使用如下的命令就可以指定一个工具链
bin/ct-ng arm-cortex_a8-linux-gnueabi
配置工具链
bin/ct-ng menuconfig
使用上面的命令就可以图形化配置我们的工具链,如下图所示
建议:
- 在Paths and misc options选项下禁用 Render the toolchain read-only
- 在Target options | Floating point选项下选中hardware(FPU)(CT_ARCH_FLOAT_HW)
- 在Target options选项下的Use specific FPU 输入neon
构建工具链
bin/ct-ng build
运行上面的命令就开始为BeagleBone Black构建交叉编译工具链了
不出意外还是出意外了
好家伙,跑了两个多小时,报错了
调试开始
- 参考博客下载离线包Linux-交叉编译工具链的制作(crosstool-ng-1.24)
- 修改.config文件里面的src路径,把build时需要下载的包手动下载放到文件夹下面就可以了(上面的博客提供的仓库的软件包在2022.11.4日已经更新了,需要重新下载对应版本的)
- linux内核源码下载国内源
- expat下载国内源
- ncurses-6.1下载国内源
…
然后就可以build成功了
调试结束
五、使用crosstool-NG为QEMU构建工具链
首先运行
bin/ct-ng distclean
清除之前build留下的内容
后面的步骤和BeagleBone Black构建相同,只需要禁用Paths and misc options下的Render the toolchain readonly就可以了
注意:还需要修改src目录,这样才能找到我们下载好的各种软件源码压缩包
Mastering Embedded Linux Programming 学习 (一)嵌入式交叉编译工具链的构建,基于crosstool-NG相关推荐
- Mastering Embedded Linux Programming 学习 (二)在百问网157开发板上,编译构建u-boot
Mastering Embedded Linux Programming 学习 (二)在百问网157开发板上,编译构建u-boot 一.下载u-boot源码 git clone https://git ...
- Mastering Embedded Linux Programming 学习 (五)在百问网157开发板上,解决网络配置问题
Mastering Embedded Linux Programming 学习 (五)在百问网157开发板上,解决网络配置问题 思考.参考 搜索发现,需要配置设备树,参考这个链接 修改设备树 找到百问 ...
- Mastering Embedded Linux Programming 学习 (三)在百问网157开发板上,编译构建linux内核
Mastering Embedded Linux Programming 学习 (三)在百问网157开发板上,编译构建linux内核 一.下载内核源码 wget http://ftp.sjtu.edu ...
- 《Linux学习一》交叉编译工具链的构建工具Crosstool-ng
索引 (一)下载与安装 (二)使用 (一)下载与安装 1.wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.25.0. ...
- 【linux系统如何安装arm交叉编译工具链】
文章目录 前言 一.arm交叉编译器介绍 命名规则 具体编译器 二.Arm GNU Toolchain安装 总结 前言 本文简要介绍arm交叉编译器及工具链的安装方法 一.arm交叉编译器介绍 命名规 ...
- linux centos7 使用 crosstool-ng 构建 交叉编译 工具链 即构建各cpu架构平台的gcc编译器
简介 crosstool-ng,全称是crosstool Next Generation,即下一代crosstool.crosstool是个交叉编译器的制作工具,但是做的不够好,于是有人(Yann E ...
- linux操作系统中添加永久交叉编译工具链
{//交叉编译工具安装$ tar xvf gcc-4.6.4.tar.xz $ sudo vim /etc/bash.bashrc /* 添加交叉编译工具链的路径到系统脚本在末尾添加export PA ...
- Linux在Ubuntu虚拟机安装交叉编译工具链
1.进入Linaro官网下载ARM交叉编译器工具链. 官网连接如下: https://releases.linaro.org/components/toolchain/binaries/4.9-201 ...
- 制定交叉编译工具_配置交叉编译工具链-嵌入式Linux
注意:使用我们提供的Ubuntu映象文件时,请按照我们的目录结构,手动设置交叉编译工具链以及编译的架构环境变量配置,(建议配置为永久生效),这里我们提供了两种交叉编译工具链,分别是buildroot构 ...
最新文章
- Google已占据全球搜索市场75.8%份额
- RxSwift ViewModel定义
- 雨敲窗python_雨敲窗Python:类
- 哇塞!给 IDEA 换个酷炫的主题
- [BUUCTF-pwn]——cmcc_pwnme1
- aspectj annotation- used in spring
- 【ES6基础】Object的新方法
- [转]Visual Studio 各版本下载
- python支持复数类型以下什么说法是错误的,【Python】专项练习题(1)
- 这个为生信学习打造的开源 Python 文字教程真香!!!
- 【C++从入门到踹门】第十四篇:二叉搜索树
- python程序运行进程、使用时间、剩余时间显示
- 组装一台计算机的配置,要不要自己动手组装一台电脑?一文告诉你答案!
- 淘宝产品,为什么转化率还是这么低?
- 星起航:商品上架完成后抖音店铺该如何运营呢?
- 蓝云ERP系统项目笔记——库存预警(9)
- 实现月、季度、年的相关数据
- 店铺选址的6C评估模型
- 化工印染企业高盐废水处理盐纯化/盐资源化
- Python计算身份证第18位(校验码)来判断身份证是否输入正确