一种实现嵌入式Linux的新方法(2)
作者:佚名; 更新时间:2014-12-05
mnt/boot/ram30.img.gz > /dev/ram     # 将根文件系统映像解压至ram
   umount /dev/hda1                           # 卸载flash盘
bin下面为linuxrc中用到的命令;lib为这些命令需要的动态链接库;etc下为配置文件ld.so.conf,定义命令运行时寻找所需动态链接库的路径,运行命令ldconfig –r /mnt/ram产生文件ld.so.cach,在命令和动态链接库之间建立对应关系;dev下基本终端设备和linuxrc中用到的设备:console、ram、null、systty、tty1、tty2和hda1;mnt为hda1的挂载点。
    最后创建压缩的initrd ramdisk映像。
运行df 看看/dev/ram0的字节数,在我的计算机上1684K;
转换当前目录至/root并卸载/dev/ram0 umount /dev/ram0;
拷贝/dev/ram0成映像文件 dd if=/dev/ram0 of=initrd.img bs=1k count=1684;
产生压缩的映像文件initrd.img.gz,运行gzip -9v initrd.img。
3.3启动
    系统的启动需要依靠flash盘,通过LILO把系统启动信息写入flash盘主引导区。
将flash盘作为第一主盘hda,而将装有普通Linux的硬盘作为第一从盘hdb并从它启动。在flash硬盘上创建ext2文件系统,将它挂载至/mnt/flash目录。在flash盘上建立boot目录,将压缩的文件系统和initrd映像拷贝至boot目录下,同时将Linux内核、引导区记录boot.b、引导区映射map拷贝至其下。在普通Linux系统中建立LILO配置文件ramlilo.conf,配置文件如下:             
 boot=/dev/hda
              map=/mnt/flash/boot/map
                      install=/mnt/flash/boot/boot.b
              prompt
              timeout=50

              image=/mnt/flash/boot/vmlinuz
                     append= “ramdisk_size=30000”
                     label=embedded
                     root=/dev/ram
                     initrd=/mnt/flash/boot/initrd.img.gz
运行命令lilo –C ramlilo.conf ,将启动信息写入flash的主引导区MBR。
重新启动计算机,登陆后运行mount,我们看到如下两项:
         /dev/ram on / ext2 (rw)
         none on /proc type proc (rw)
这显示只有ramdisk被挂载,制作成功。
4 结论
在我们制作的嵌入式Linux中进行各种操作,速度非常快,而且系统很稳定。没有出现因为根文件系统损坏而导致系统进入手工维护界面的现象。用它作为HTTP网络服务器、网络监视器、宽带通信设备管理器或者其他需要长时间不停运行的机器,都有很高的应用价值。



 

 

参考文献
1.邹思铁 嵌入式Linux设计与应用 清华大学出版社 2002 北京
2.黄敦 如何构造嵌入式Linux系统 dunn@163.net 2001
3.Tom Fawcett The Linux Bootdisk HOWTO Bootdisk-HOWTO@linuxdoc.org 200
4.Paul Moody miniHOWTO Embedded Linux 1.1b paulmoody@bigpond.com 1998

核心期刊快速发表
Copyright@2000-2030 论文期刊网 Corporation All Rights Reserved.
《中华人民共和国信息产业部》备案号:ICP备07016076号;《公安部》备案号:33010402003207
本网站专业、正规提供职称论文发表和写作指导服务,并收录了海量免费论文和数百个经国家新闻出版总署审批过的具有国内统一CN刊号与国际标准ISSN刊号的合作期刊,供诸位正确选择和阅读参考,免费论文版权归原作者所有,谨防侵权。联系邮箱:256081@163.com