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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2015-7-11 11:35:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
上一章节我们讲述了最简单的文件系统的搭建方式,在实际应用场景中,我们需要添加很多第三方文件,比如busybox,tslib,qt,vim,交叉编译工具等,如果我们手动移植里面的任何一个源码包,都会花费我们少则半个小时,多则半天,甚至一天,大大的浪费了我们宝贵的时间。buildroot可以很方便的解决这些问题。我们只需要通过menuconfig配置我们需要的功能,不需要的功能去掉,再执行make指令编译,buildroot就会自动从指定的服务器上下载源码包,自动编译,自动搭建成我们所需要的嵌入式根文件系统。使用传统的文件系统的搭建方式,对于老手至少需要两三天,对于新手,很可能两三个星期,而使用buildroot,并不在乎老手新手,只要正确的配置buildroot,所有事情交给buildroot来完成,下载,编译整个时间不超过3个小时。下面我们将结合开发板实例解说buildroot的搭建过程。
一:获取buildroot
我们可以从buildroot官网(http://buildroot.uclibc.org/download.html)获取buildroot源码包,buildroot基本上三个月更新一次,这里我们我们以实际下载的源码包buildroot-2015.05.tar.gz讲解,不同的版本命名方式仅仅是后面的日期不同而已。
二:配置buildroot
将buildroot-2015.05.tar.gz拷贝到ubuntu的samba目录,使用如下指令解压源码包:
  1. tar   xvf  buildroot-2015.05.tar.gz
复制代码

进入解压的目录buildroot-2015.05,执行如下指令配置buildroot:
  1. make  menuconfig
复制代码

配置界面如下:

        进入Target options目录:

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

将Toolchain type配置为External toolchain,然后在Toolchain中选择交叉编译工具的版本,如ARM 2013.11,在Toolchain origin中选择Toolchain to be downloaded and installed,后面编译时,buildroot将会自动下载对应的工具链并自动安装。选中Enable MMU support,退回上一界面后,进入System configuration界面:

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

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

选中ext2/3/4 root filesystem,然后在ext2/3/4 variant中选择ext4,选中tar the root filesystem,最后保存当前的配置并退出,配置完成。用户也可以根据自己的实际需要进行配置。       
三:编译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目录下为对应未打包的文件系统,在调试时可借助于该目录下的文件分析原因。
四:验证buildroot
使用fastboot命令将我们新制作的文件系统烧写到开发板:
  1. fastboot  flash  system  rootfs.ext4
复制代码

        启动开发板,观察是否有异常情况出现。
编译好的映像如下:
rootfs.rar (1.52 MB, 下载次数: 32)
uboot需要修改成如下环境变量:
setenv bootcmd "ext4load mmc 2:1 0x48000000 uImage;bootm 0x48000000"
setenv bootargs "root=/dev/mmcblk0p2 rw rootfstype=ext4"
去掉TF卡,开机即可正常挂载。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 16:25 , Processed in 0.020663 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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