试试一张软盘可装下Linux(嵌入式Linux)

669461531

669461531

2016-01-29 19:16

试试一张软盘可装下Linux(嵌入式Linux),试试一张软盘可装下Linux(嵌入式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系统的全部东西,因此,它至少应包括:基本文件系统结构;至少
含有目录/dev、/proc、/bin、/etc、/lib、/usr、/tmp;最基本的应用程序,如sh、ls、cp、mv等;最低限度的
配置文件,如rc、inittab、fstab等;设备:/dev/hd*、/dev/ tty*、/dev/fd0;基本程序运行所需的函数库。

  由于以上所需文件远超过1.44M,因此我们通常的做法是在准备好内容后将其压缩到软盘中。当用软盘启动时,
再把文件解压到内存中,形成一个虚拟盘(RAMDISK),通过RAMDISK控制系统启动。如果你使用LILO控制启动,先检
查一下LILO的配置文件/etc/lilo.conf中定义的RAMDISK的大小:

  RAMDISK_SIZE = nnn

  创建root文件系统

  回到根目录或用户的缺省目录,用#mkdir flop建立工作目录flop。在这个目录下用mkdir建立以下一些目录:
/dev,设备;/proc - proc,文件系统所需目录;/etc,系统配置文件;/sbin,重要的系统程序;/bin,基本应
用程序;/lib,共享函数库;/mnt,装载其他磁盘节点;/usr,附加应用程序。
展开更多 50%)
分享

猜你喜欢

试试一张软盘可装下Linux(嵌入式Linux)

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
试试一张软盘可装下Linux(嵌入式Linux)

LINUX网络嵌入式设备

服务器
LINUX网络嵌入式设备

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

主流嵌入式Linux动态扩展技术比较分析

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
主流嵌入式Linux动态扩展技术比较分析

一个嵌入式Linux系统的键盘驱动实现 (1)

PHP
一个嵌入式Linux系统的键盘驱动实现  (1)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

嵌入式Linux在工业控制领域中的应用

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
嵌入式Linux在工业控制领域中的应用

嵌入式Linux中的应用中的GTK+

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
嵌入式Linux中的应用中的GTK+

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

手把手教你使用Java来编写ASP组件(3)

手把手教你使用Java来编写ASP组件(3)

实例讲解 LILO 的配置和使用

实例讲解 LILO 的配置和使用
下拉加载更多内容 ↓