当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 32M DOM或CF嵌入式Linux系统启动盘制作

Unix/Linux
linux路由器建立心得
毕业后我给学计算机的和喜欢计算机的同学的[转自猫扑]
转帖]女人管住男人的四?方法
试用apt-spy
安装iptraf 失败
Linux软件安装之RPM的安装技巧(转)
JDBC环境的搭建
英特尔对 Linux 重点的投入到底有多大?
内核编译定制说明(部分)
Wiki不完全手册
CVS由来与发展
first blog
脚本欣赏----Shell Script to Clone Linux System - 20041201
选择设置好ext3日志模式
passwd/group文件权限问题如何解决???
使linux使用起来更有趣
Linux字体安装与简单美化(实践篇)
巧用winbind服务来使window200xPDC为你做认证 (原作者:eagerlinuxer )
AT&T x86 asm 语法! for linux kernel
debian 精彩软件

Unix/Linux 中的 32M DOM或CF嵌入式Linux系统启动盘制作


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 82 ::
收藏到网摘: n/a


作为嵌入式系统,使用环境通常都比较恶劣,而应用又比较简单。为系统的稳定通常都需要使用DOM、CF卡一类的存储设备来代替硬盘。因此需要制作一个小于32M的linux运行系统。
使用到的软件包括:syslinux, busybox, linux kernel 2.4.18, redhat 9
作为嵌入式系统,使用环境通常都比较恶劣,而应用又比较简单。为系统的稳定通常都需要使用DOM、CF卡一类的存储设备来代替硬盘。因此需要制作一个小于32M的linux运行系统。一、准备软件环境 1.一套linux的运行环境,选用redhat 9的基本安装,需要能够编译内核方便以后重新编译内核; 2.bootloader软件,选用syslinux中的extlinux; http://syslinux.zytor.com 3.主要系统应用程序,选用busybox; busybox能够以一个小型的应用程序提供整个命令集的功能。 http://www.busybox.net 二、制作可以启动的盘 fdisk /dev/hdc1 本实验使用cf盘+cf to ide转换卡,用fdisk对盘进行分区,但这一步骤需要确认哪一个设备是cf卡。这个可以同dmesg来看。 mke2fs /dev/hdc1 格式化cf盘为ext2格式 mkdir /mnt/cf mount /dev/hdc1 /mnt/cf extlinux /mnt/cf 安装bootloader到cf卡上。 完成以后cf卡基本可以引导,现在进行一次重启动测试一下。 实验结果,只需要看到Extlinux 的信息即说明安装成功。 三、安装内核和配置引导 由于目前只是实验先不进行内核裁减,直接使用redhat 9的内核文件。 mount /dev/hdc1 /mnt/cf cp /boot/vmlinuz-version /mnt/cf/ cp /boot/initrd-version.img /mnt/cf/ vi /mnt/cf/extlinux.conf 写入一下内容: default emblinux display logo.txt

label emblinux kernel vmlinuz append root=/dev/hdc1 initrd=initrd.img splash=silent ide=nodma 首先要注意的文件名为extlinux.conf,因为在syslinux和isolinux中都是使用.cfg的后缀,这样可能会给人一个错觉认为也是用.cfg。结果,我在这个地方花了不少的时间,终于找到一个帖子提到使用extlinux.conf。 另外增加ide=nodma只适用在使用cf卡的情况,这个可以避免启动时因为读盘超时而无法继续的错误(0x58)。 完成这些步骤,内核就能引导。 这一步完成,重启能看到内核引导信息即为成功。
四、安装主要应用程序和运行环境 mount /dev/hdc1 /mnt/cf 创建需要的目录 cd /mnt/cf mkdir etc bin sbin var usr lib tmp proc initrd dev 根据busybox的说明编译,然后安装。 make PREFIX=/mnt/cf install 复制基本的dev文件 cp -arf /dev/* /mnt/cf/dev/ 需要进行一些裁减,否则会超过限制大小。 复制busybox下的examples/bootfloppy/etc目录下文件 cp -arf examples/bootfloopy/etc/* /mnt/cf/etc 编辑init.d/rcS文件 vi /mnt/cf/etc/init.d/rcS 增加 /bin/sh 复制lib 先用ldd busybox看需要哪些so 把相应的so复制到lib目录下,这一步比较关键。 复制/lib/modules和/lib/security目录到/mnt/cf/lib目录下,并进行一些裁减。
完成这最后一步,整个启动盘已经可以正常启动,并进入shell下。