试试一张软盘可装下Linux(嵌入式Linux)模块 如果有一个模块化的内核,你还得必须考虑需要加载的模块。它们都位于/lib/modules。你可以把不是很重要的 模块放到别的盘上,当系统启动后再加载,这样会节省启动盘的空间。 打包 1)建立loop设备的临时挂接点和一个大小为4.6兆(大小可以调节)的临时文件,并将其清零: #mkdir /mnt/loop 2>/dev/null #dd if=/dev/zero of=/tmp/loop_tmp bs=1k count=4600 >/dev/null 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操作系统。 |