DOM嵌入式Linux系统启动盘制作

作为嵌入式系统,使用环境通常都比较恶劣,而应用又比较简单。为系统的稳定通常都需要使用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下。
 from http://www.linuxjiaocheng.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值