导读:i.MX6开发板采用了飞思卡尔i.MX6四核处理器,大步迈入嵌入式linux——一款iMX6开发板简单介绍了上手体验。本文将介绍如何使用最新版busybox构建MY-I.MX6开发板的根文件系统。
使用硬件
MY-I.MX6 Demo开发平台
使用软件
linux Mfgtools 串口软件。
正文
飞思卡尔的ltib工具一条命令就可以编译出u-boot、kernel和文件系统,非常方便。但是ltib编译出的文件系统有许多我们不需要的东西,也为了更加深入了解linux根文件系统的组成,这里我们使用最新的busybox自己构建一个linux根文件系统。
根目录介绍
首先,大概了解一下linux根文件系统的目录:
1. /bin目录
/bin目录包含了引导启动所需的命令或者普通用户可能用的命令。这些命令都是二进制文件的可执行程序,多是系统中重要的系统文件。这些命令在挂接其他文件系统之前就可以使用。/bin目录下常用的命令有:cat、chmod、ls、cp、mount、mkdir等等。
2. /sbin目录
/sbin目录类似/bin,也用于存储二进制文件。大部分文件多是系统管理员使用的基本系统程序。常用命令有:shutdown、reboot、fdisk等等。
3. /etc目录
/etc目录存放着各种系统配置文件,包含系统初始化文件/etc/rc等。
4. /dev目录
/dev目录存放了设备文件,即设备驱动程序,用户通过这些文件访问设备。
5. /lib目录
/lib目录是根文件系统上程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含相同的子程序副本。
6. /usr目录
/usr是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里。
7. /proc目录
/proc文件系统是一个虚拟的文件系统,它并不存在于某个磁盘上,而是由内核产生,存储在内存中。这个目录提供关于系统的信息。
8. /home目录
用户目录
9. /var目录
/var目录包含系统一般运行时要改变的数据。
10. /root目录
/root目录是超级用户的目录。
11. /mnt目录
/mnt目录是系统管理员临时安装(mount)文件系统的安装点。
12. /tmp目录
/tmp目录存放程序在运行时产生的信息和数据。
移植最新稳定版busybox 1.22.1
busybox可以将许多常用Unix命令结合到一个单独的可执行程序中,因此,常常被形象的比喻为嵌入式系统中的“瑞士军刀”。
从http://www.busybox.net/下载最新源码,这里使用的是:
20 January 2014 -- BusyBox 1.22.1 (stable)
下载地址:http://busybox.net/downloads/busybox-1.22.1.tar.bz2
新建一个目录busybox,这里路径为:/home/bruce/share/work/busybox
将上面下载的文件复制到busybox目录中。
解压源文件:
tar –jxf busybox-1.22.1.tar.bz2
解压完成,这时会在这个目录下会生成一个新目录busybox-1.22.1
进入这个目录:
cd busybox-1.22.1
busybox-1.22.1目录中包含的文件较多,我们只需要修改Makefile进行交叉编译即可生成busybox应用程序。
配置Busybox
修改busybox-1.22.1目录下的Makefile文件,将CROSS_COMPLIE和ARCH修改为交叉编译器所在路径和arm。在这里改为:
CROSS_COMPILE ?=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-
ARCH ?= arm
执行make menuconfig,出现如下配置界面
这里需要关注的是Linux Module Utilitiesà
去掉Simplified modutils选项,选择下面的insmod、rmmod、lsmod等。这几个命令我们后面开发驱动程序会经常用到,所有需要加上。
Exit退出,Yes保存配置。
回到命令行,输入make即可编译。几分钟后即可完成编译。
输入make install将busybox编译生成的相关文件安装到_install目录下。
在_install目录下会生成如下目录和linuxrc文件。
bin linuxrc sbin usr
为了方便,这里我们直接拷贝飞思卡尔文件系统下的lib目录和etc目录。其他的手工建立即可。
将建立好的目录放到/home/bruce/share/work/fs/rootfs文件夹下。最后将这些文件打包,使用Mfgtools下载即可。
为了方便这里写了简单的脚本makefs,方便使用。注意脚本需要+x权限。
chmod +x makefs
好了,执行脚本./makefs,生成rootfs.tar.bz2文件。将这个rootfs.tar.bz2文件放到Mfgtoos下载目录下。
上电启动效果图