rootfs文件系统制作

770阅读 0评论2013-11-12 shaohui973
分类:LINUX

rootfs文件系统制作笔记

 

环境:XC2440 linux2.32.2 红帽

根文件系统有一系列的目录组成,其中包括应用程序、C库、及相关的配置文件。

制作根文件系统的步骤如下,下面步骤均在虚拟机终端上操作。

一、创建文件系统总目录rootfs

mkdir rootfs

二、创建文件系统目录

cd  rootfs】进入rootfs目录,创建下面目录

/bin                      --放置命令

/dev                      --放置设备文件

/etc                      --放配置文件

/lib                          --放库文件

/lib/modules

/proc                      --proc文件系统是内核与用户的接口,将内核的一些信息反映到 此目录下

/sbin                         --放置命令

/sys                          --sys文件系统,主要是设备、驱动、总线信息的显示

/usr                          --用户相关

/usr/bin

/usr/lib

/usr/sbin

/mnt                              --用于挂载

/tmp                                 --存放临时文件

/var                              --系统日志

当然根据需要也可参考linux系统目录加入/root/home等目录

三、创建设备节点/dev

Linux下,设备均已设备文件的形式供用户使用,用户操作具体设备时只需操作相应设备文件。

cd  dev/】设备文件(节点)都在dev/目录下

mknod -m 666 console c 5 1

mknod -m 666 null c 1 3

四、安装/制作/etc

/etc目录下的系统配置文件比较多,这里不展开讲解(水平有限)。但由于/etc并不需要经常改动,每次制作文件系统时,可以将上次做好的/etc目录文件copy过来就行。附件提供GQ2440etc压缩包,将其解压到rootfs/目录即可。

tar etc.tar.gz  -C /xxx/rootfs

 

五、编译及安装内核模块

这步并不是必须的,新的文件系统没必要加载内核模块,若内核没有完全配置好,则会加入很多无关紧要的模块,使根文件系统不够简洁。但如果内核基本配置好,编译出来的模块以后项目基本都会用到的,则可以选择这步。建议暂时不执行这步,模块以后可以手动加载。

 

进入linux内核目录(linux2.6.32.2)编译内核模块

make mudules ARCH=arm CROSS_COMPILE=arm-linux-

安装内核模块,这里的安装只是将模块从内核拷贝到根文件系统目录。

make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs

六、配置busybox

大家都在linux系统或arm嵌入式系统都使用过诸如cd  ls  mkdir等一系列命令进行相关操作。这些命令也是语言写出来的,但我们这些入门级的人是写出来的,我只要会用。而busybox就是这些命令的集合。

解压出busybox源码,进入源码目录进行配置(busybox提供了很多命令工具,但嵌入式开发板并不需要全部命令,所以要进行配置/裁剪)

make menuconfig

1.进入busybox setting-->

Build options-->

选中“build busybox as a static binary,静态链接

Cross compiler prefix(arm-linux-)

2.进入installation options-->

选中“don’t use/usr”选项否则busybox被安装到宿主机系统的/usr目录下,破坏宿主机系统。

3.进入busybox setting-->

busybox installation prefix(/xxx/rootfs),该选项表明编译后的busybox的安装位置。

上面3项是最基本的配置,当然可以根据实际情况把不需要的一些命令去掉

editors-->下提供了很多的编辑工具,可以只保留用户习惯使用的。

这样做可以使根文件系统变得更小。

4.以上配置完成后即可编译,安装busybox

make ARCH=arm CROSS_COMPILE=arm-linux-

make install

安装完成后在rootfs/bin/下会出现很多的命令函数,busybox就是这些命令的入口

 

1

 

                        当然busybox有没有安装好的一个重要标志是rootfs/sbin下有没有init文件

 

图二

经过这6个步骤,已经很粗糙的将根文件系统制作完成了。

七、制作好rootfs如何使用呢

1. 使用NFS根文件系统

 
图3

                先看一下u-boot参数设置,

                            ipaddr:目标板的IP地址

                            serveriplinux虚拟机系统IP地址

                        bootargs:参数比较多,nfsroot=......./home/lc/rootfilessys/rootfs_xc2440_qt就是根文件系统的rootfs的路径,
                    (因为后来加入了
Qt库所以改名rootfs_xc2440_qt)。

                        除此之外,内核至少串口、以太网驱动要移植成功,内核中文件系统配置要选为NFS根文件系统。

2.arm本地文件系统,只要将rootfs通过mkyaffs2imageyaffs2文件系统即可。

mkyaffs2image  rootfs  rootfs.binrootfs.bin就是yaffs2文件系统


附件:etc.rarmkyaffs2image.rar

 

上一篇:linux-ipforward实现
下一篇:(五)洞悉linux下的Netfilter&iptables:如何理解连接跟踪机制?【上】