buildroot
如果ubuntu14.04第一次安装builtroot的话,会有很多插件需要下载,可以先执行命令安装,也可以后面步骤make之后,根据报错的内容逐一安装:
sudo apt-get install libncurses5-dev gawk bison flex texinfo automake1.11 gcc-4.6 g+±4.6 libtool texlive gperf help2man build-essential
在安装这些插件的过程中,我遇到比较难装的是build-essential,我是参考这个博客解决的:(https://blog.csdn.net/sunranlb/article/details/46946147)
切换gcc版本
因为s3c2440不适应高版本的gcc,ubuntu14.04默认gcc是4.8.4的,可以将其切换至4.6及其以下的版本方可编译内核,一些小程序,例如hellowrold这种小程序对gcc版本没要求,所以可以使用以下命令切换gcc。
1、查看系统中所包含的gcc版本:ls /usr/bin/gcc*
2、系统中没有4.6版本的,所以需要自行下载4.6版本:sudo apt-get install gcc-4.6
3、下载好之后,运行:sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 50
4、切换gcc版本:sudo update-alternatives --config gcc
5、查看gcc版本:gcc -v
安装builtroot
1、官网下载到自己创建的builtroot文件夹下,这里下载的是2012版本的,因为s3c2440不适应高版本的builtroot:wget https://buildroot.org/downloads/buildroot-2012.08.tar.bz2
2、解压并进入buildroot-2012.08文件夹下:tar -jxf buildroot-2012.08.tar.bz2
4、配置基于s3c2440的交叉编译器,:make menuconfig
配置为arm架构、内核、ABI
build option ---->配置源码路径和最后生成的交叉编译器所在的位置
toolchain ----->这里一定要配置和ubuntu14.04默认的gcc版本移植,否则后面会出现gcc版本不匹配的错误。
还是在toolchain ----->工具链
Package Selection for the target ----->
Libraries ----->
Compression and decompression ------>
Filesystem images ------>全部不选。
其他没有提及的就使用默认就好了。
5、构建交叉编译器,这一步时间比较漫长:make
6、最后生成的交叉编译器在目录buildroot-2018.08/arm920t/user/bin下:arm-linux-gcc。
总结:在搭建交叉编译器的时候,我遇到最困难的事情就是各种插件的下载,因为有时候有些插件改了名字,系统就会报错:无法定位xxx包,有时候百度也不管用,无奈怀疑自己ubuntu的问题,所以重装再配置系统,时间就没了。在之前没有装过交叉编译器的ubuntu,可能会出现很多错误,这个时候需要好好理解以下错误,然后再去百度。