4 制作Ramdisk的镜像文件:
# dd if=/dev/zero of=/dev/ram1
dd: 正在写入 ‘/dev/ram1’: 设备上没有空间
读入了 8193+0 个块
输出了 8192+0 个块
#mke2fs -m0 /dev/ram1
#mkdir /mnt/ram
#mount /dev/ram1 /mnt/ram
将先前做好的floppylinux根文件系统拷贝到ram1上.
#cp -R /tmp/floppy-linux /* /mnt/ram
#umount /dev/ram1
# dd if=/dev/ram1 of=/tmp/floppy-linux /initrd.img
# file initrd.img
initrd.img: Linux rev 1.0 ext2 filesystem data
用loop设备来把他重新挂装到文件系统里:
# mount -o loop initrd.img /mnt/ram/
查看/mnt/ram下的内容,和/tmp/floppy-linux /下的一模一样
# ls /mnt/ram
bin dev etc lost+found mnt proc sbin tmp var
#umount /mnt/ram
压缩initrd.img印象文件
# gzip -v9 initrd.img
initrd.img: 90.1% -- replaced with initrd.img.gz
查看压缩后的大小:
# ls -lh initrd.img.gz
只有406K
5编译linux系统内核
#cp linux-2.4.20.bz2 /usr/src/
#cd /usr/src
#tar xfvj linux-2.4.20.bz2
#ln -s linux-2.4.20 linux
进入linux源代码目录:
#cd linux
清理源代码树:
#make mrproper
运行配置程序:
#make menuconfig
code maturity level options
先选择N,当我们配置好常规的东西,要加入framebuffer支持时再将这一项选择Y,如果不在code maturity level options选择为Y,将不能配置framebuffer.
Loadable module support
选择N,为了简化系统的制作,我在这个项目中不选择可加载内核模块的支持.
processor type and features
processor family 中选择386CPU
其他选项都选择N.
General setup
networking support 选择Y
PCI support 选择Y
System V ipc 选择Y
systrl support选择Y
kernel support for ELF 选择Y
其余内容都可以选择N,
chnology devices (MTD)
Parallel port support
Plug and Play configuration
以上三个大项中的所有内容选择N
block devices
Normal floppy disk support
Loopback device support
RAM disk support
initial RAM disk (initrd) support
Per partition statics in /proc/partitions
以上几项选择Y,其余全部选择N.
Multi-device support (RAID and LVM)
Cryptography support (CryptoAPI)
这两个大项全部选择N
Networking options
这一大项中,只需要把下列项目编译进内核:
Packet socket :mmapped IO
TCP/IP networking
Telephony Support 选择N
ATA/IDE/MFM/RLL support
选择Y,然后下面的'IDE,ATA and ATAPI Block Devices'按钮就被激活
