首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心计算机论文计算机理论
   一种实现嵌入式Linux的新方法      ★★★ 【字体: 】  
一种实现嵌入式Linux的新方法
收集整理:佚名    来源:本站整理  时间:2009-01-10 12:07:14   点击数:[]    

。当然目录etc下的配置文件,dev下的设备文件需要的都必须要有,它们都是和可执行文件对应的,因为许多可执行文件执行时,一般是打开设备,根据配置文件来运行。有一个特殊的目录proc应该设置,在内核编译选项文件系统选择中,我们选择对文件系统proc的支持,那么在系统运行之后它下面有许多内容,这些内容是实时、不断跟踪系统内核和正在运行的进程的状态而产生的,但不占用任何磁盘空间,而是驻留在内存中。在某些情况下,可以通过它来系统设置,许多工具从这里获取信息,如dmesg、ps、top等。
文件系统制作完成,大小应该在20M左右。
接下来把文件系统拷贝至ramdisk为生成ramdisk映像文件做准备。我们把系统的ramdisk 改变到30M,重启计算机后,执行下列操作:
dd if=/dev/zero of=/dev/ram bs=1k count=30000 把ramdisk调整到零,以便后面有更高的压缩率;
mke2fs –m0 /dev/ram 30000 在ramdisk上建立30M的ext2文件系统;
mount /dev/ram /mnt/ram 将已格式化的ramdisk挂载至目录/mnt/ram;
cp –av /minlinux/*  /mnt/ram 将文件结构拷贝至ramdisk。
然后我们对/mnt/ram/etc目录下的文件进行修改。主要的文件是fstab,它负责在系统启动时把系统要挂载的文件系统信息传递给启动进程,我们使用ramdisk作为根文件系统,且不需要交换分区,所以此文件配置
/dev/ram      /       ext2          defaults    1    1
none          /proc   proc          defaults    0    0
即可。一般来说系统启动时都要激活交换分区,即在启动脚本中有swapon –a 命令,但我们不需要交换分区,因此要把这一项移除,否则启动时会打印错误信息然后停止启动。
最后我们要拷贝ramdisk的映像并将其压缩。主要步骤如下:
运行df ,注意1024-blocks一栏中/dev/ram的数值,在我的机上为25600;
卸载/dev/ram,运行cd /root切换至root目录并运行umount /dev/ram;
将ramdisk写成映象文件,运行dd if=/dev/ram of=ram30.img bs=1k count=25600
压缩,并在/root目录下产生一个压缩的映象文件ram30.img.gz,运行gzip –9v ram30.img
3.2创建initrd ramdisk 映像
首先我们在/dev/ram0中创建一个适合大小的ext2文件系统,方法同上,只是大小只有2048K,因为initrd ramdisk是用来引导(bootstrap)30M的ramdisk,并将它挂载至/mnt/ram。
然后在/dev/ram0中建立映像需要的目录和文件。创建目录bin、dev、etc、lib、mnt和可执行脚本文件linuxrc,linuxrc的内容为:
   #!/bin/bash
   mount –o –ro /dev/hda1/ /mnt             # 以只读方式将flash盘挂载在/mnt下
   zcat /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

上一页  [1] [2] 


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:MFC中消息映射机制分析

  • 下一篇文章:巧用数组实现长整数的精确计算
  • 返回上一页】【打 印】【关闭窗口
    中查找“一种实现嵌入式Linux的新方法”更多相关内容 5VAR论文频道
    中查找“一种实现嵌入式Linux的新方法”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››中小企业办公自动化系统的设计与实...
  • ››未雨绸缪:关于我国电子商务税收对...
  • ››网上书店为钱做秀 行业走势两极分...
  • ››Win2000索引服务的WEB应用
  • ››宽带化――电信发展的必由之路务
  • ››电子商务中x种错误思路和做法
  • ››网络营销与传统营销相比有何优势
  • ››Internet的下一个热点 从内容走向服...
  • ››基于CNAPS的流水号管理方法
  • ››网络时代的财务与会计:管理集成与...
  • ››一种实现载波监听多点接入/冲突检...
  • ››一种实现嵌入式Linux的新方法
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .