根据开发板的说明, 使用开发板提供的cramfs根文件系统制作jffs2根文件系统. 步骤如下:
cramfs根文件系统的制作
将程序和模块添加到根文件系统中,以gec2410中的gec2410_demo.cramfs根文件系统的添加为例。
1 将gec2410_demo.cramfs拷贝到目录/home下
2 在该目录下建立两个文件:
cd /home
mkdir gec2410
mkdir gec2410_fs
3 将gec2410_demo.cramfs挂接到gec2410目录下:
mount –t cramfs –o loop gec2410_demo.cramfs gec2410
4 将gec2410目录下的内容打包:
tar –cvf gec2410.tar gec2410/*
这样将产生一个gec2410.tar包.
5 将包解压到gec2410_fs目录下:
mv gec2410.tar gec2410_fs
cd gec2410_fs
将打包的根文件系统里的内容解压:
tar -xvf gec2410.tar
mv /home/gec240_fs/gec2410/* /home/gec2410_fs
rm -r /home/gec2410_fs/gec2410
rm gec2410.tar
然后将隐藏的文件要拷贝过来:ls –a 显示所有的文件,cp /home/gec2410/.bashrc gec2410_fs/将.bashrc文件拷贝到gec2410_fs目录下。
6 将自己的驱动gpiodrv.ko和应用程序gpio_test拷贝到相应的目录下,
将gpiodrv.ko拷贝到gec2410_fs/usr/目录下。
7 经过上面的步骤就可以将自己的驱动和应用程序添加到cramfs根文件系统中了,
现在将开始制作cramfs根文件系统,将mkcramfs文件拷贝到PC操作系统的/bin目录,切换到/home目录:
mkcramfs gec2410_fs gec2410_new.cramfs
运行成功后,会在/home目录下生成gec2410_new.cramfs根文件系统
8 根文件系统制做成功后,就可以将它烧写到相应的地方。
Jffs2文件系统的制作:
开发板没有提供制作jffs2文件系统的工具mkfs.jffs2, 需要自己编译安装.幸好我这里有一本书附带的光盘,里面有相关的工具.
一 编译制作jffs2映像文件的工具
mtd-utils-05.07.23.tar.bz2是MTD设备的工具包,编译它生成mkfs.jffs2工具,用它来将一个目录制作成jffs2文件系统映像.
这个工具包需要zlib压缩包,需要有zlib源码zlib-1.2.3.tar.gz,执行以下命令安装:
$ tar xzf zlib-1.2.3.tar.gz
$ cd zlib-1.2.3
$ ./configure --shared --prefix=/usr
$ make
$ sudo make insrall
然后编译makfs.jffs2
$ tar xjf mtd-utils-05.07.23/util
$ make
$sudo make install
二 制作jffs2映像文件
1、先将mkfs.jffs2文件拷贝到PC的/bin目录。
2、遵循上述的1-6个步骤。
在这个目录下运行命令:
mkfs.jffs2 -r gec2410_fs -o gec2410_demo.jffs2 -p -l -n -e 0x4000 -m size
运行成功后,会在该目录下生成gec2410_demo.jffs2根文件系统。如果要用JFFS2文件系统,应当在传递给内核的参数里加一个rootfstype=jffs2。
烧写到开发板,可以运行起来.不过可能用的cramfs是Linux2.4版本的,安装模块时很多提示,如其中一个为:
insmod: kernel-module version mismatch
/usr/usbvideo.o was compiled for kernel version 2.4.18-rmk7-pxa1
while this kernel is version 2.6.8.1-ptx1.
下一步打算自己用buzybox制作一个全新的文件系统.