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

Unix/Linux
linux 操作技巧收集_
linux下如何读取使用iso 镜像文件的方法
Linux平台下文件的压缩与解压参数说明
Linux下常用压缩格式的压缩与解压方法
Linux JDK,TOMCAT安装及环境设置
Linux sleep命令使用参数
Linux cat命令参数
nfs 配置的简单例子
linux kill 关闭进程命令
linux ultrasphinx Anonymous modules have no name to be referenced by
Linux oracle 9i图文安装方法一
Linux oracle 9i图文安装教程二
Linux oracle 9i图文安装教程三
Linux oracle 9i图文安装教程四
Linux oracle 9i图文安装教程五
Linux oracle 9i图文安装教程六 完结篇
linux AS3 oracle9i 安装指南
Linux 下 (RedHat 9.0) JDK,Tomcat,MySQL的安装
RedHat 9.0下Apache+PHP+MySQL服务器安装配置
Linux 下用 Python 连接 MSSql Server 2008

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


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