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

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

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


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