您的位置:首页 > 运维架构 > Linux

x4412开发板&ibox卡片电脑项目实战10-使用buildroot搭建linux文件系统

2015-01-31 18:28 1141 查看
上一章节我们讲述了最简单的文件系统的搭建方式,在实际应用场景中,我们需要添加很多第三方文件,比如busybox,tslib,qt,vim,交叉编译工具等,如果我们手动移植里面的任何一个源码包,都会花费我们少则半个小时,多则半天,甚至一天,大大的浪费了我们宝贵的时间。buildroot可以很方便的解决这些问题。我们只需要通过menuconfig配置我们需要的功能,不需要的功能去掉,再执行make指令编译,buildroot就会自动从指定的服务器上下载源码包,自动编译,自动搭建成我们所需要的嵌入式根文件系统。使用传统的文件系统的搭建方式,对于老手至少需要两三天,对于新手,很可能两三个星期,而使用buildroot,并不在乎老手新手,只要正确的配置buildroot,所有事情交给buildroot来完成,下载,编译整个时间不超过3个小时。下面我们将结合开发板实例解说buildroot的搭建过程。
1.1.1
获取buildroot

我们可以从buildroot官网(http://buildroot.uclibc.org/download.html)获取buildroot源码包,buildroot基本上三个月更新一次,这里我们我们以实际下载的源码包buildroot-2014.08.tar.gz讲解,不同的版本命名方式仅仅是后面的日期不同而已。
1.1.2
配置buildroot

将buildroot-2014.08.tar.gz拷贝到ubuntu的samba目录,使用如下指令解压源码包:

tar xvf buildroot-2014.08.tar.gz

复制代码

进入解压的目录buildroot-2014.08,执行如下指令配置buildroot:

make menuconfig

复制代码

配置界面如下:



进入Target options目录:



将Target Architecture配置为ARM(littlt
endian),将Target Architecture Variant配置为cortex-A9,将Target
ABI配置为EABI,将ARM instruction set配置为ARM,再退回上一界面后,进入Toolchain目录:



 将Toolchaintype配置为Externaltoolchain,然后在Toolchain中选择交叉编译工具的版本,如ARM
2013.11,在Toolchain origin中选择Toolchain to be
downloaded andinstalled,后面编译时,buildroot将会自动下载对应的工具链并自动安装。选中Enable
MMUsupport,退回上一界面后,进入Systemconfiguration界面:



 在Systemhostname一栏中输入开发板的名称,如x4412,在Init
system中选择BusyBox,在/dev management中选择Dynamic
using mdev,即使用mdev动态加载设备节点的方式,然后 在Path to
thepermission tables中选择设备节点的配置表,这里我们一定要选择system/device_table_dev.txt,否则后面在dev目录下将不会生成各种设备节点。当然我们也可以手动的配置该文件,添加必要的节点或删除不需要的节点。Root
password为配置进入linux控制台终端后的密码,为空则登录时不需要密码,默认登录用户名为root。选中Run
agetty(login prompt)after boot,再进入下面的getty options选项:



将TTY port配置为ttySAC3,将baudrate配置为115200,对应x4412&ibox开发板的打印串口。再返回上一界面,将Root
filesystemoverlay direc…设置为board/9tripod/x4412/rootfs-overlay,这里表示该路径下的所有文件将会无条件覆盖buildroot默认的相关路径文件。配置这一步的同时,我们一并将开发板光盘中的相关文件拷贝到buildroot对应的board目录。

继续返回上一界面,进入Filesystem images目录:



选中ext2/3/4root filesystem,然后在ext2/3/4variant中选择ext4,选中tar
the root filesystem,最后保存当前的配置并退出,配置完成。用户也可以根据自己的实际需要进行配置。
1.1.1
编译buildroot

我们只需在buildroot的根目录下执行make指令即可编译整个buildroot。值得注意的是,第一次编译肯定会弹出一些错误,这基本上是没有安装一些第三方工具造成的。我们预先安装一些必备的工具包:

sudo apt-get install g++

sudo apt-get install git

sudo apt-get install mercurial python-iniparse tortoisehg tortoisehg-nautilus python-nautilus

复制代码

再执行make指令编译,这时buildroot会自动下载所需要的相关源码包,自动编译安装。下载的源码包在buildroot根目录的dl目录下,如下图所示:



  编译完成后,编译出来的各种文件会放在buildroot目录下面的output目录下,如下图所示:



我们需要烧写的最终的映像文件在images目录下:



 在target目录下为对应未打包的文件系统,在调试时可借助于该目录下的文件分析原因。
1.1.1
验证buildroot

使用fastboot命令将我们新制作的文件系统烧写到开发板:

fastboot flash system rootfs.ext4

复制代码

启动开发板,观察是否有异常情况出现。比如弹出如下打印信息:

Starting mdev...

/etc/init.d/S10mdev: line 9: /proc/sys/kernel/hotplug: No such file or directory

mdev: /sys/class: No such file or directory

复制代码

我们找到对应的S10mdev文件,将第9行删除,重新编译即可。如还有其他错误信息,具体情况具体分析,一般只要配置没有问题,后面也不会出现太大问题。
到此,一个基本的含有busybox,vim,qt等的根文件系统就制作完成了,回顾buildroot,它确实不失为嵌入式开发工程师一个利器,我们可以省去根文件系统制作的烦恼,直接进入主题,进行驱动及应用的开发工作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐