首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 开发>Linux 嵌入式>文章内容
Linux“锁骨功” 一张软盘上的嵌入应用
来源:赛迪网技术社区 作者:不详 发布时间:2007-05-19  

试试一张软盘可装下Linux()

 

嵌入式Linux由一个几百KB的kernel(内核)和一些根据需要进行定制的系统模块组成。由于Linux是开放源代

码的操作系统,因此,其在嵌入式领域有其不可替代的成本和高度灵活性等优势。

 

将Linux系统裁减到就像DOS一样只要一张软盘就能启动,是制作嵌入式Linux的基础。网络上有许多实现方法

的介绍,但是在实践过程中都或多或少存在着一些问题或不方便之处。我们结合自己在这方面的实践经验,详细介

绍基于软盘Linux的制作过程。

 

三个基本元素

 

一个嵌入式Linux系统只需要下面三个基本元素:引导程序、Linux微内核(由内存管理、进程管理和事务处理

构成)和初始化进程。如果要让它有更多的功能且保持小型化,还可以加上文件系统、TCP/IP网络支持、GUI(图形

用户界面)和设计精简的应用程序,并将其放在ROM、RAM、FLASH或Disk On Chip中启动。由于嵌入式Linux操作系

统的高度灵活性,开发者可以很容易地对它进行定制或作适当开发,来满足实际应用需要。

 

将Linux的系统裁减到只要一张软盘就能启动,不但是制作嵌入式Linux的基础,而且自己也有广泛的应用前景。

这些应用包括简单路由器管理、三层交换机管理、floppy-boot防火墙管理等。国外有专门的组织致力于这方面的工

作,如LOAF(Linux on a floopy)等组织。

 

选择内核

 

创建一个启动盘首先必须创建系统内核。由于软盘容量有限,因此常采用对内核进行手工配置,去掉不必要的

模块的方法来裁减内核。

 

要想裁减内核体积,创建它时就得把不必要的功能去掉,如去掉对网络的支持和对不必要设备的支持。但是一

定要记住保留内核对RAMDISK和ext2的支持,否则启动盘将不能工作。其过程如下:

 

1)以root超级用户登录,进入目录/usr/src/linux。

 

2)执行#make menuconfig来对内核模块进行配置(也可以在X Window中运行make xconfig)。

 

3)依次执行#make dep和#make bzImage (如果内核不大则执行#make zImage),执行该命令后,将在

/usr/src/linux/arch/i386/boot目录下生成内核文件bzImage(或zImage)。若配置中加入了模块的支持(选项为M),

还需要执行#make modules和#make modules_install。

 

4)用命令#cp usr/src/linux/arch/i386/ boot/bzImage /boot拷贝新内核到/boot目录,修改文件

/etc/lilo.conf,加入:

 

 

  image = /boot/bzImage 

  label = new 

  root =/dev/hdxx(你自己的启动硬盘分区) 

  read-only

 

执行命令#lilo载入新内核,#reboot重启系统,在出现“lilo:”时键入new。若系统正常引导,则执行下一步,

若不行则用老内核引导后,到步骤1)重新配置编译内核。

 

5)插入软盘执行

 

#dd bs=1k if=/usr/src/linux/arch/i386/ boot/bzImage of=/dev/fd0

 

这样将内核拷贝到软盘上。

 

6)用命令#ls -s将在/usr/src/linux/ arch/i386/boot/bzImage得到内核的大小(假定为476),将这个大小记

录下来以备后用。

 

这样就制作了包含裁减内核的可供启动的Linux启动软盘。但是由于没有root文件系统,使用这张软盘启动系

统后,系统会显示“VFS: cannot open root device x:x”和

“kernel panic: VFS: unalbe to boot root fs on x:x”的错误。

 

root文件系统

 

一个root文件系统必须包括支持完整Linux系统的全部东西,因此,它至少应包括:基本文件系统结构;至少

共3页: 上一页 1 [2] [3] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·嵌入式Linux系统下图形库讲解及
·Qt/Embedded在嵌入式Linux中的应
·嵌入式Linux:uClinux操作系统移
·嵌入式系统 Boot Loader 技术内
·嵌入式 用户图形接口uC/GUI的简
·基于GTK+和X的GUI在嵌入式Linux
·嵌入式Linux系统下的MiniGUI研究
·Linux串口上网的简单实现 (图解)
·在Ubuntu上建立Arm Linux的开发
·嵌入式Linux操作系统启动信息完
·Linux 2.6 内核的嵌入式系统应用
·嵌入式Linux在Blackfin处理器上
  相关文章
·嵌入式系统优先级反转问题的分析
·在Ubuntu上建立Arm Linux的开发
·嵌入式程序员应知道的几个基本问
·自行打造嵌入式Linux软硬件开发
·主流嵌入式Linux动态扩展技术比
·在嵌入式Linux中实现802.11b无线
·嵌入式Linux发展 谈Montavista L
·细看嵌入式Linux时代发展
·嵌入式Linux系统的GDB远程调试的
·关于嵌入式Linux系统进程调度的
·教你一种实现嵌入式Linux系统新
·主流嵌入式Linux系统下GUI解决方

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!