2)将loop设备与临时文件联系起来
#losetup /dev/loop0 /tmp/loop_tmp
3)Linux内核识别两种可以直接拷贝到RAMDISK的文件系统,它们是minix 和ext2,ext2性能更好:
#mke2fs -m 0 /dev/loop0 2>/dev/null
#mke2fs将会自动判断设备容量的大小并相应地配置自身,-m 0参数防止它给root保留空间,这样会腾出更多的有用空间。
4)接着把虚拟盘挂在节点/mnt上:
#mount /dev/loop0 /mnt/loop -t ext2
5)将制作好的root文件系统拷贝到所挂的节点上,卸下挂接点,删除建立的挂接点,再取消loop设备与临时挂接点的联系。
#cp -a ./tree/* /mnt/loop #umount /mnt/loop #rmdir /mnt/loop 2>/dev/null #losetup -d /dev/loop0
6)压缩文件系统后,就拥有了一个压缩的root文件系统,删除建立的临时文件。
#dd if=/tmp/loop_tmp | gzip -9 > rootfs.gz #rm -f /tmp/loop_tmp
7)检查压缩后的root文件系统的大小,如果大了,还得去掉一些东西。
#ls -s ./zImage|cut -f2 -d
整合
有了root文件系统和内核之后,最后的工作就是把它们整合在一起。
先检查总文件的大小,包括已经制作的内核和打包的root文件系统。如果超出1.44M,就得考虑重新创建。root文件系统所需的所有文件都准备就绪,你就可以运行它了,运行结果应该没有错误,否则就应该仔细检查一下。
真正的嵌入式Linux系统
到这里基于软盘的Linux盘已经做好了,剩下的工作就是测试这张盘的正确性,如果有问题还得从头再来。现在许多Linux的发行套件中都有厂家做好的启动盘,它们的制做原理和以上介绍的大同小异,但是它们常常使用许多不同的技巧,因为它们要面对更多的硬件和各种可能发生的情况。
真正的基于IA应用的嵌入式Linux还必须加入GUI(图形用户界面)和设计精简的应用程序,如网络浏览器等。GUI方面开放源代码的,国外有Microwindows(可访问www.microwindows.org),国内有miniGUI(可访问www.minigui.org)。它们的源代码都可以在网上找到。浏览器方面用得较广的是ViewML(www.viewml.org),它也是开放源代码的。结合以上一些工具,再加上对硬件驱动程序的开发,就可以形成一套嵌入式的Linux操作系统。
(参考链接: http://www0.ccidnet.com/tech/os/2001/07/26/58_2785.html)
|