九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 4933|回复: 2
打印 上一主题 下一主题

x4412&ibox项目实战10-使用buildroot搭建linux文件系统

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-24 11:34:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
上一章节我们讲述了最简单的文件系统的搭建方式,在实际应用场景中,我们需要添加很多第三方文件,比如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目录,使用如下指令解压源码包:
  1. tar   xvf  buildroot-2014.08.tar.gz
复制代码
进入解压的目录buildroot-2014.08,执行如下指令配置buildroot:
  1. 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。值得注意的是,第一次编译肯定会弹出一些错误,这基本上是没有安装一些第三方工具造成的。我们预先安装一些必备的工具包:
  1. sudo apt-get install g++
  2. sudo apt-get install git
  3. 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命令将我们新制作的文件系统烧写到开发板:
  1. fastboot  flash  system  rootfs.ext4
复制代码
       启动开发板,观察是否有异常情况出现。比如弹出如下打印信息:
  1. Starting mdev...
  2. /etc/init.d/S10mdev: line 9: /proc/sys/kernel/hotplug: No such file or directory
  3. mdev: /sys/class: No such file or directory
复制代码
       我们找到对应的S10mdev文件,将第9行删除,重新编译即可。如还有其他错误信息,具体情况具体分析,一般只要配置没有问题,后面也不会出现太大问题。
       到此,一个基本的含有busyboxvimqt等的根文件系统就制作完成了,回顾buildroot,它确实不失为嵌入式开发工程师一个利器,我们可以省去根文件系统制作的烦恼,直接进入主题,进行驱动及应用的开发工作。
回复

使用道具 举报

沙发
发表于 2015-9-16 14:46:57 | 只看该作者
使用传统的文件系统的搭建方式,对于老手至少需要两三天,对于新手,很可能两三个星期,而使用buildroot,并不在乎老手新手,只要正确的配置buildroot,所有事情交给buildroot来完成,下载,编译整个时间不超过3个小时.-----------------这句话描述的经典!我喜欢!
回复 支持 反对

使用道具 举报

板凳
发表于 2015-9-16 14:53:16 | 只看该作者
喜欢这个系列的教程,教我们这些学习的人,这些知识的由来~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-5-5 21:47 , Processed in 0.022532 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表