本文由muge0913编写,希望给嵌入开发者带来一些帮助,并希望能和大家交流技术,若有不对的地方,或有更好的方法请指出。
转载请注明出处:http://blog.csdn.net/muge0913/article/details/7247544
这是很久以前做的笔记在这里和大家分享,
根文件系统一般包括:1)基本的文件系统结构,包含一些必须的目录,比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp;2)基本程序运行所需的库函数,如:libc/uC-libc;3)基本的系统配置文件,如:rc,inittab等脚本文件;4)必要的设备支持文件,如:/dev/hd*,/dev/tty,/dev/fdO;5)基本的应用程序,如:sh,ls,cp,mv等。 根文件系统的制作就是生成包含上述各种文件的文件系统的过程,可通过直接拷贝宿主机上交叉编译器处的文件来制作根文件系统,但是这种方法制作的根文件系统一般过于庞大。也可通过一些工具如busybox来制作根文件系统,用busybox制作的根文件系统可以做到短小精悍并且运行效率较高。
写成shell文件便于操作,有些人将BusyBox称为Linux工具里的瑞士军刀.
一 配置根文件系统
根文件系统是linux启动时使用的第一个文件系统。没有根文件系统。linux将无法正常启动。
根文件系统:有一系列的目录组成,目录中包含了应用程序、c库、以及相关的配置文件。
1、创建根文件系统目录
#mkdir rootfs #cd rootfs #bin sbin etc dev lib proc sys usr mnt tmp var #usr/bin usr/sbin usr/lib lib/moudules
2、创建设备文件:
cd dev/ mknod-m 666 console c 5 1 mknod-m 666 null c 1 3
3、安装/etc(配置文件可以从其他做好的嵌入式系统中cp)
tar xzvf etc.tar.gz -C /XXX/rootfs
4、编译内核模块:
在内核文件中
makemodules ARCH=arm CROSS_COMPILE=arm-linux-
5、安装内核模块
makemodules_install ARCH=arm INSTALL_MOD_PATH=/XXX/my_rootfs
注:
也可以解压源码:tar-jxvf busybox-1.9.2.tar.bz2
修改Makefile中arch和编译工具链头。
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux-
制作initramfs
配置内核使内核支持此文件系统:在generalsetup中:
选中initialRAM filesystem and RAM disk……
并在此选项下设置自己的rootfs所在路径
2、进入制作好的根文件系统中执行:
ln–s ./bin/busybox init
3、进入内核源码根目录,重新编译(编译完后下载到开发板上即可)
制作的重点还是在配置文件上:这部分将单独作介绍。
本文由muge0913编写,希望给嵌入开发者带来一些帮助,并希望能和大家交流技术,若有不对的地方,或有更好的方法请指出。
转载请注明出处:http://blog.csdn.net/muge0913/article/details/7247544