最小Linux系统制作例程
目的之一. 在linux中,还支持另外一种虚拟磁盘,叫做shm,
(shared memory),这种虚拟磁盘机制比ramdisk更加先进,ramdisk的大小是固定的,由编译内核时候的default ram disk size 决定.默认为4096K(4M),也可以在内核装载前加上ramdisk_size=参数来决定他的大小,但是系统一旦启动,ramdisk的大小是不能改变的,而shm的大小却动态的改变.默认情况下为物理内存的一半,当系统需要更多内存的时,他就自动缩小.系统内存富余时,他自动增大,这样可以充分灵活的利用内存空间,shm通常用来作为系统的磁盘高速缓存,存放系统运行中的临时文件等.redaht 的linux在默认情况下都有shm的支持,可以用mount和df察看他的挂装点和大小,如下命令:
[root@gucuiwen linux]# mount
/dev/hda1 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hda6 on /home type ext3 (rw)
/dev/hda5 on /oracle type ext3 (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda7 on /var type ext3 (rw)
[root@gucuiwen linux]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/hda1 2.9G 2.7G 26M 100% /
/dev/hda6 3.8G 1.8G 1.8G 50% /home
/dev/hda5 5.7G 677M 4.8G 13% /oracle
none 125M 0 125M 0% /dev/shm
/dev/hda7 711M 91M 584M 14% /var
虽然shm有这么多的优点,我还是选择了ramdisk,因为ramdisk可以很方便地在系统启动的时候加载,而shm却没那么容易,下面就来讲一下关于内核启动时加载ramdisk映象的相关内容.
initial RAM disk (initrd) support
即初始化ramdisk支持,这个选项让内核有能力在内核加载阶段就能装入RAMDISK,并运行其中的内容,否则只能在系统运行阶段用ramdisk ,我们平时在编译了一个新内核后,如果你的根文件系统用的是ext3,而你没有把ext3编译进内核,而只作为一个模块编译了,那么就需要用 mkinitrd命令做一个initrd (initializtion ramdisk),这个ramdisk里放了ext3的模块,这样内核在加载根文件系统前就能正确识别ext3文件系统.否则,内核加载的最后一步就会出现kernel panic cant not find init .... 的错误.
在babylinux项目中,这个选项是必需的,这里的作用是把解压的根文件系统映象装入ramdisk.
Per partition statics in /proc/partitions
这个选项不是必需的,但是我发现如果我不把这个功能编译进内核,那么当我在挂装文件系统的时候会有些小问题,比如我不能以简写的挂装命令来挂装文件系统. 我不确定到底是不是这个选项的关系,但是把这个选项编译进内核只增大一点点内核空间,所以为了避免麻烦,我把他编译了进去.
Multi-device support (RAID and LVM)
Cryptography support (CryptoAPI)
这两个大项全部选择N,因为在个人用PC上,及少牵涉到这两项,如果你真的有RAID设备或者LVM,那么就自己摸索着配置一下吧.
Networking options
这一大项中,只需要把下列项目编译进内核:
Packet socket :mmapped IO
TCP/IP networking
对于IP:advanced router这项,如果你想重点把babylinux用做静态路由软件,那么把这项编译进去,而对于network packet filtering (replaces ipchains)这一项,没有必要编译进去了,因为busybox没有提供iptables工具来设置包过滤防火墙.同样,unix domain sockets这项也不必选择,只有运行X的情况下才需要选这项.
Telephony Support 选择N
ATA/IDE/MFM/RLL support
选择Y,然后下面的'IDE,ATA and ATAPI Block Devices'按钮就被激活
下面几项请选择Y,其余都可以是N.
Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
Include IDE/ATA-2 DISK support
Auto-Geometry Resizing support
Include IDE/ATA CDROM support
如果你的内核要运行在一台很老的pentium或486上,请把CMD640 chipset bugfix/support编译进去,因为那时候主板的CMD640 IDE控制芯片大多有莫名其妙的BUG,把这项编译进去会修复这个bug.
- 串口线制作方法(12-15)
- 光立方的制作经验杂谈(12-01)
- 热转印法制作PCB个人经验谈(11-30)
- 嵌入式根文件制作方法(11-26)
- 嵌入式linux内核制作方法(11-26)
- 51单片机最小系统制作笔记(11-25)