i.MX6开发板学习笔记二——构建linux根文件系统

作者: brucehelen
上传时间为: 2014-07-16 08:01 AM

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

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à Linux Module Utilities

去掉Simplified modutils选项,选择下面的insmod、rmmod、lsmod等。这几个命令我们后面开发驱动程序会经常用到,所有需要加上。

Exit退出,Yes保存配置。

保存配置

回到命令行,输入make即可编译。几分钟后即可完成编译。

编译文件安装到_install目录

输入make install将busybox编译生成的相关文件安装到_install目录下。

在_install目录下会生成如下目录和linuxrc文件。

bin linuxrc sbin usr 回到命令行输入make编译

为了方便,这里我们直接拷贝飞思卡尔文件系统下的lib目录和etc目录。其他的手工建立即可。

目录复制

将建立好的目录放到/home/bruce/share/work/fs/rootfs文件夹下。最后将这些文件打包,使用Mfgtools下载即可。

为了方便这里写了简单的脚本makefs,方便使用。注意脚本需要+x权限。

chmod +x makefs 脚本makefs

好了,执行脚本./makefs,生成rootfs.tar.bz2文件。将这个rootfs.tar.bz2文件放到Mfgtoos下载目录下。

上电启动效果图上电启动效果图

至此根文件系统构建完成。

大步迈入嵌入式linux——一款iMX6开发板

i.MX6开发板学习笔记一——Sqlite3数据库移植及测试

全部评论 ()

创建讨论帖子

登录 后参与评论
系统提示