您的位置:首页 > 其它

制作ramdisk文件系统

2009-10-15 16:22 393 查看
近段时间跟老板做些嵌入式的实验,顺便学了下ramdisk文件系统的制作,为防忘记,写篇日志提醒提醒。

由于实验采用的是龙芯的板子,所以很多地方是基于mips来写的。网上也有很多ramdisk文件系统制作的帖子,各有各的优缺点,我这就算是一个新的参考吧。

介绍下我的环境:Ubuntu 8.04

内核版本:2.6.18.1

gcc版本号忘记了

将busybox1.1.3.tar解压到你的工作目录下,如:/home/xx/,以下用变量${YOURDIR}表示。
1建立根文件系统结构

${YOURDIR}#mkdir rootfs

${YOURDIR}#cd rootfs

${YOURDIR}/rootfs#mkdir bin dev etc lib proc sbin tmp usr var

${YOURDIR}/rootfs#chmod 1777 tmp

${YOURDIR}/rootfs#mkdir usr/bin usr/lib usr/sbin

${YOURDIR}/rootfs#mkdir var/lib var/lock var/log var/run var/tmp

${YOURDIR}/rootfs#chmod 1777 var/tmp

2使用busybox制作系统应用程序

2.1进入busybox解压后的目录,配置busybox

${YOURDIR}/busybox1.1.3$make menuconfig

配置时几个注意的地方:
a.最好选上BusyboxSettings/Build
Options/Build BusyBox as a static binary项,表示不依赖动态库;
b.Busybox Settings/Build Options/Do you want to build BusyBox with aCrossCompiler需选上,并输入交叉编译工具的前缀,如:$PATH/mipsel-linux-,注意不是mipsel-linux-gcc;
c.Busybox Settings/Installation Options设置为${YOURDIR}/rootfs;
d.Shells/ Choose your default shell设置为ash;
e.选上InitUtilities/init及InitUtilities/Support
reading an inittab file;
其他配置看需要进行选取。

2.2编译并安装Busybox
${YOURDIR}/busybox1.1.3$make
${YOURDIR}/busybox1.1.3$make install

2.3准备所需的设备文件
可以直接拷贝宿主机上的,或者自建几个,如:
${YOURDIR}#cd rootfs/dev
${YOURDIR}/rootfs/dev#mknod -m 600 console c 5 1
在直接拷贝的时候,应加上cp的-dpR这三个选项,否则会出现问题。

2.4准备配置文件
一般是直接拷贝宿主机上/etc/下的所有文件到自己根文件系统的/etc/下边。
将/sbin/init拷贝到新生成的文件系统根目录下,或手工建立一个指向/bin/busybox的链接init;

2.5生成镜像文件
对不同的文件系统采用不同的生成工具,如生成cramfs使用命令:
#mkfs.cramfs ./rootfs ./rootfs.cramfs

到此为止,文件系统算是大致完成了,对于是否要制作镜像文件,看具体应用而定。在此我们不制作镜像文件,直接编译到内核中。

3配置内核加载文件系统

a.将{YOURDIR}/rootfs/内的文件拷贝到内核文件夹下的arch/mips/ramdisk/里边;完成后对内核进行配置:输入makemenuconfig;
b.进入DeviceDrivers / Block devices,选中以下几项:
>>Loopbackdevice support
>>RAMdisksupport

>>Defaultnumber of RAM disks (16)

>>DefaultRAM disk size(kbytes) (4096)
>>DefaultRAM disk block size(bytes) (1024)
>>InitialRAM filesystem and RAM disk support
c.进入
GeneralSetup,选中
Initramfssource file,指定
ramdisk的路径,即:arch/mips/ramdisk;

4编译内核,加载到目标机上运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: