虚拟机:VMware Player
linux开发环境:centos6.8
开发板:fl2440(s3c2440处理器)
一:了解Buildroot:
buildroot是一组makefile和补丁,可简化并且自动化构建嵌入式系统环境的过程,也就是可以用它来制作交叉编译器、根文件系统,把u-boot、linux kernel集成到buildroot中一起编译。
二.准备和上传buildroot源码包
3种方法:
1.从buildroot官网下载至windows:下载好之后用rz命令上传
rz命令介绍:lrzsz程序在linux里可代替ftp上传(rz)和下载(sz),centos可直接yum -y install lrzsz, 该程序会自动安装好。
2.使用“wget命令+网址”直接下载(安装了ftp服务器)
3.使用”svn co 命令+网址”直接下载(安装了svn服务器)
这里我将介绍使用第1种方法:
一般情况下将交叉编译器放在/opt路径下,/opt默认只有root有写的权限,所以上传之前要修改权限。
[lanpeng@samsung ~]$ sudochmod 777 /opt/
[sudo] password for lanpeng:
[lanpeng@samsung ~]$ ll -d/opt
drwxrwxrwx. 3 root root 409612月 2 11:53 /opt
上传到/opt路径下上传后:
[lanpeng@samsung opt]$ ls
buildroot-2012.08-LingYunEmbLab-v1.2.0.bin
(如果上传的是压缩包,即.gz文件,则需解压缩。)
然后给所有用户加可执行权限,并执行。
[lanpeng@samsung opt]$ chmod a+xbuildroot-2012.08-LingYunEmbLab-v1.2.0.bin
[lanpeng@samsung opt]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/lanpeng/bin
[lanpeng@samsung opt]$./buildroot-2012.08-LingYunEmbLab-v1.2.0.bin
三.配置交叉编译器
输入以下命令开始配置
[[email protected]]$ export TREM=VT100
[[email protected]]$ make menuconfig
/export TERM=vt100,这个环境变量的设置是为了防止后面的系统配置界面出现乱码/
系统出现以下界面:1.配置cpu类型
这里可以根据自己的cpu进行选择,可以从CPU的datasheet上看到究竟是基于哪个ARM核的。
“($(TOPDIR)/dl)”这个选项的设置是为了将所有下载的源代码放到dl这个文件夹下;
“($(TOPDIR)/arm920t) Hostdir”就是指定我们制作出来的交叉编译器所在的路径,注意这里大家设置为$(TOPDIR),而不是默认的${BASE_DIR},否则以后用我的代码可能会有问题。
3.配置toolchain
注意上面在“Kernel Headers”先要设置“Linux 2.6 (manually specified version)”,然后再输入“linux version”的版本为2.6.37。
并按下“y”选择enable C++ support 和enable stack protectionsupport。
4.其它配置
在完成上面的配置后,剩下的配置就比较简单了:
“System configuration --->”使用默认的选项,不要作修改;
“Package Selection for thetarget --->”这里我们只选择今后经常需要的两个库文件:
Package Selection for the target --->
Libraries --->
Compression and decompression --->
[*] lzo
[*] zlib
“Filesystem images --->”全部取消,不要选;
“Bootloaders --->”全部取消,不要选;
“Kernel --->”全部取消,不要选;
5.完成配置
选择“Save an Alternate Configuration File”保存这些配置,然后使用“Tab”或左右键选择到“Exit”上退出。这时,我们就会在当前目录下,看到一个名为.config的掩藏文件。在之后的编译过程中,Makefile将根据这个文件来选择相应的软件包和特性来编译安装。
四.编译交叉编译器
直接输入make命令,系统开始制作交叉编译器。这个过程时间较长,我大概用了一个半小时。编译成的交叉编译器在/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-目录下。五.测试交叉编译器
写一个hello.c程序,使用交叉编译器来编译生成hello可执行文件,用file命令查看文件属性,可以看到这个文件arm下运行的。把类似的文件下载到开发板上后,就可以在开发板上运行了。
六.遇到的问题
1. 编译的过程中可能会提示缺少某些命令,这时就使用yum或rpm命令安装缺少的相应rpm包。
相关链接:
http://blog.csdn.net/a_ssimi/article/details/51922596
http://blog.csdn.net/lyx_win/article/details/51918296