添加自己的程序或文件到板子的文件系统
首先,所谓文件系统就是用户程序和文件的集合,在LINUXPC机上放到一个统一的目录下,然后通过一个工具打包成一个image文件,这通常是个压缩的过程。然后烧制到板子上后,LINUX内核启动完成后,会逐个挂接这些文件系统映象文件并做解包的工作,当然第一个挂接的就是rootfs了,有了rootfs并提供了SHELL之后,就可以通过mount这个SHELL命令来挂载其它FS了。
所以,若用户要添加自己的程序到文件系统的image里面去,就是把自己的程序或文件复制到这个FS在PC LINUX上的目录里面去,然后重新打包生成image,这样你的东东就加进去了,以后就是下载和烧写的问题了。
那么具体在做“把自己的程序或文件复制到这个FS在PC LINUX上的目录里面去”这个步骤的时候,不同的文件系统就略有区别了:
例如您的程序是一个可执行程序hello,放在/目录下面:
对于RAMDISK:
它是要先在PC上解压到一个目录上的
mkdir /mydir
mount –o loop ramdisk.image /mydir
cp /hello /mydir
umount mydir
gzip ramdisk.image
这样就加入了
对于JFFS2,则不要解压原有的jffs2.img,而是直接往原来的目录里面添加即可:
注意:下面的这个jffs2_dir是你的软件包里面原来就有的,例如HHARM9-EDU就是
/HHARM9-EDU/Images/backup/jffs2目录,这个目录里面原来就有我们默认添加的一些文件和目录,你只要把自己的程序复制进去即可。
当然了,若你的软件包里面没有提供我们原来的这个目录,那也没关系,您完全可以自己重新
mkdir /jffs2_dir
这样做就是你新做的jffs2.img里面除了你刚刚添加的hello外没有任何目录和文件,而这完全可以工作,启动后自己添加即可。
mkfs.jffs2 -d /jffs2_dir -o jffs2.img
这个mkfs.jffs2工具是要额外提供的,如果您没有,可发信索取。
对于CRAMFS:
和JFFS2完全相同的做法,你也完全可以自己
mkdir /cramfs_dir
mkcramfs /cramfs_dir cramfs.img
当然了,和JFFS2不同的是,它是只读的,你在PC机上添加了什么,到板子上就只能有什么,不能再动态创建目录和复制进去文件了,要添加必须重做cramfs.img烧 写到FLASH上才行。
这个mkcramfs的工具是REDHAT LINUX自带的。
对于uClinux上用的ROMFS:
genromfs -v -V "ROMdisk" –f romfs.img –d romfs_dir
当然了,这个romfs目录是任何一个uClinux-dist包里面都会默认带有的目录。