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

Unix/Linux
tar解压命令详解
Linux操作系统软件的基本安装和卸载
SUSE Linux登录出现黑屏
RedHat9详细安装图解
Redhat Linux系统下磁盘配额的设置
RedHat LINUX桌面切换和用户管理技巧
创建Linux之USB启动盘
Linux 修改系统日期和时间
使ssh登陆不用输入密码的方法
Linux操作系统安全配置步骤
linux-2.6内核升级详细文档
Apache 安装详细说明
LINUX系统apache基于IP,基于port和基于域名的三种虚拟主机的配置方法
redhat下磁盘配额设置!
Linux系统下安装软件,程序
Linux 操作系统的用户和用户组管理
Linux下载工具wget和axel简介
RHEL5 Squid透明代理服务器配置过程详细说明
Linux系统下文件的压缩、打包与解压
Linux系统下快速删除某个目录下大量文件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 95 ::
收藏到网摘: 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下。