使用buildroot制作交叉编译器

虚拟机: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路径下

使用buildroot制作交叉编译器_第1张图片

上传后:

[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,这个环境变量的设置是为了防止后面的系统配置界面出现乱码/

系统出现以下界面:

使用buildroot制作交叉编译器_第2张图片


1.配置cpu类型

使用buildroot制作交叉编译器_第3张图片

这里可以根据自己的cpu进行选择,可以从CPU的datasheet上看到究竟是基于哪个ARM核的。


2.配置Build Options

使用buildroot制作交叉编译器_第4张图片

“($(TOPDIR)/dl)”这个选项的设置是为了将所有下载的源代码放到dl这个文件夹下;

“($(TOPDIR)/arm920t) Hostdir”就是指定我们制作出来的交叉编译器所在的路径,注意这里大家设置为$(TOPDIR),而不是默认的${BASE_DIR},否则以后用我的代码可能会有问题。

 

3.配置toolchain

使用buildroot制作交叉编译器_第5张图片

注意上面在“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将根据这个文件来选择相应的软件包和特性来编译安装。

使用buildroot制作交叉编译器_第6张图片


四.编译交叉编译器

直接输入make命令,系统开始制作交叉编译器。这个过程时间较长,我大概用了一个半小时。编译成的交叉编译器在/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-目录下。

使用buildroot制作交叉编译器_第7张图片


五.测试交叉编译器

写一个hello.c程序,使用交叉编译器来编译生成hello可执行文件,用file命令查看文件属性,可以看到这个文件arm下运行的。

使用buildroot制作交叉编译器_第8张图片

把类似的文件下载到开发板上后,就可以在开发板上运行了。

 

六.遇到的问题

1. 编译的过程中可能会提示缺少某些命令,这时就使用yum或rpm命令安装缺少的相应rpm包。

使用buildroot制作交叉编译器_第9张图片


相关链接:

http://blog.csdn.net/a_ssimi/article/details/51922596

http://blog.csdn.net/lyx_win/article/details/51918296



你可能感兴趣的:(嵌入式开发入门)