Firefly开源社区

打印 上一主题 下一主题

[Linux] arm-linux交叉编译工具链的制作(firefly-RK3399)

113

积分

1

威望

0

贡献

技术小白

积分
113
QQ

arm-linux交叉编译工具链的制作(firefly-RK3399)

发表于 2018-7-26 16:16:14      浏览:13670 | 回复:6        打印      只看该作者   [复制链接] 楼主
一、        安装crosstool-NG
1、        新建立一个目录arm-linux-tool,并且进入此目录。

2、        获取crosstool-NG源码

3、解压获取的打包文件crosstool-ng-1.20.0.tar.bz2。

4、配置并进行依赖检测:进入crosstool-ng-1.20.0目录中,运行./configure –prefix /home/ubunu/arm-linux-tools/crosstool-install/。(在这之前需要确定安装了gperf、bison、flex、texinfo、gawk、libtool、automake、libncurses5-dev、g++等软件)

在进行配置过程中出现如下错误,可清楚看出是版本过低。

进行软件的更新(失败),再进行libtool的安装如下所示:成功。


5、编译和安装
make
make install


6、配置环境变量以及检查crosstool-NG是否安装成功。

二、        配置交叉编译工具链
在crosstool-NG中有很多已经做好的默认配置(位于crosstool-ng-1.20.0/samples目录下),这里只需要进行修改就可以了。因为是制作arm-linux的交叉编译工具链,所以选择arm-unknown-linux-gnueabi进行配置。
1、        将arm-unknown-linux-gnueabi文件夹复制到crosstool-build目录下

2、将默认配置文件拷贝到crosstool-build目录下并改名为.config
cd ~/arm-linux-tools/crosstool-build  
cp arm-unknown-linux-gnueabi/crosstool.config .config
3、        执行ct-ng menuconfig进入配置界面进行配置
ct-ng menuconfig

(1)设定源码包路径和交叉编译器的安装路径
源码包路径:设置Paths and misc options下的Local tarballs directory为/home/ubuntu/arm-linux-tools/src
交叉编译器的安装路径:设置Paths and misc options下的Prefix directory为/home/ubuntu/arm-linux-tools/x-tools/${CT_TARGET}

(2)修改交叉编译器针对的架构
设置Target options下的Architecture level为armv4t
设置Target options下的Emit assembly for CPU为arm9tdmi
设置Target options下的Tune for CPU为arm920t
(以上这几个参数是如何得出来的,可以参考gcc的man手册。你可以在下载的gcc-4.9.1.tar.bz2解压后的文件夹中找到(gcc-4.9.1/gcc/doc/gcc.1)
执行以下命令打开gcc.1)
(3)设置编译时的并行进程数
1)设置Paths and misc options下的Number of parallel jobs为4
这个数值不宜过大,应该为CPU核心数量的两倍。
(4)设置编译器前缀
1)设置Toolchain options下的Tuple's vendor string为RK3399,这样生成的编译器的前缀就是arm-RK3399-linux-gnueabi-



4、安装termcap

5、编译
在crosstool-build目录下执行以下命令进行编译
ct-ng build
6、根据以上可制作出交叉编译链(根据开发板配置)。

三、选用成熟的交叉编译器进行安装配置(亲自测可用)


1、        解压在/usr/local/tool/下
2、        配置环境变量 sudo  etc/profile,将其路径写入最后一行,export PATH=$PATH”“/usr/local/tool/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin”
3、        使其生效 source /etc/profile
4、        查看路径echo $PATH
5、        查看编译器安装是否成功   
问题1:识别不了32位.。http://blog.sina.com.cn/s/blog_7880d3350102wvrv.html(进一步下载适合版本64位)
问题2:由于可执行文件的访问权限问题,在RK-3399上需要扩展权限
chmod +x 可执行文件(正在研讨更优方法,现在尝试挂载的方法)
回复

使用道具 举报

41

积分

0

威望

0

贡献

游客

积分
41
发表于 2018-7-31 17:14:13        只看该作者  沙发
学习了,谢谢
回复

使用道具 举报

148

积分

0

威望

0

贡献

技术小白

积分
148
发表于 2018-10-24 13:17:37        只看该作者  板凳
很有用
回复

使用道具 举报

148

积分

0

威望

0

贡献

技术小白

积分
148
发表于 2018-10-25 15:46:57        只看该作者  地板
谢谢大神
回复

使用道具 举报

17

积分

0

威望

0

贡献

技术小白

积分
17
发表于 2019-4-3 21:18:58        只看该作者  5#
编译工具链和板卡型号有关系吗  我的是RK3288 linux ,能用你的例子吗
回复

使用道具 举报

26

积分

0

威望

0

贡献

技术小白

积分
26
发表于 2019-4-22 22:01:18        只看该作者  6#
谢谢
回复

使用道具 举报

70

积分

0

威望

0

贡献

技术小白

积分
70
发表于 2019-6-14 14:10:00        只看该作者  7#
123
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表