使用buildroot制作交叉编译器

    xiaoxiao2021-12-14  21

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

    三.配置交叉编译器

    输入以下命令开始配置

    [lanpeng@samsungbuildroot-2012.08]$ export TREM=VT100

    [lanpeng@samsungbuildroot-2012.08]$ make menuconfig

    /export TERM=vt100,这个环境变量的设置是为了防止后面的系统配置界面出现乱码/

    系统出现以下界面:

    1.配置cpu类型

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

    2.配置Build Options

    “($(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

    转载请注明原文地址: https://ju.6miu.com/read-971493.html

    最新回复(0)