最小的Linux系統(tǒng)制作過程詳解
接下來幾個大項:
Amateur Radio support
IrDA (infrared) support
ISDN subsystem
Old CD-ROM drivers (not SCSI,not IDE)
Input core support
全部選擇N.
接下來的Charcter devices是很重要的一項,他和Bloack devices一樣重要,我將重點講述.
除了Virtual terminal和Support for console on terminal兩項,其他全選N.
Virtual terminal 即虛擬終端,這是一般linux必備選項.否則你的linux啟動后,在屏幕看不到任何東西.另外還負責鍵盤輸入信息等等.只有在某些嵌入式linux應用場合才會不要這個選項,因為這些linux通常都不用操作.
Support for console on terminal
在虛擬終端上的控制臺.他支持在終端上各種信息的輸出,這也是必備的.
接下來的幾個大項:
Multimedia devices
Crypto Hardware support
全部選擇N.
再接下來的那部分File sytems可是重頭戲喔.
這部分不用我太羅嗦了吧,自己需要支持什么就選什么.
但是其中有三個是你必需選的:
/proc file system support 缺了他,很多命令和軟件就不能運行.
Second extended fs support BabyLinux的基本文件系統(tǒng).
ISO 9660 CDROM filesytem support 除非你不想用光盤.
另外,諸如磁盤限額(Quota support),Reiserfs的DEBUG模式(Enable reiserfs debug mode)
等就不用編譯進去了.這些東西意義不大,確要無端的增大內核大小.請牢記一點:編譯出來的內核大小不要超過900K.
Tip:是不是看的很累啊,我寫得更累,別急,內核配置部分馬上要好了.
最后一個Console drivers
這是支持linux在字符模式下高分辨率顯示的內核模塊.前面三個全部選擇Y,
Frame-buffer support按鈕是灰色的不能選,別急,回到第一個大選項:
Code maturity level options 選擇Y,就可以激活這個按鈕了.
下面幾個選項需要選擇Y:
Support for framebuffer devices
VESA VGA graphics console
你也可以選擇其他的顯卡驅動,比如nVidia的,但是VESA和VGA是通用性最好的,只要不是幾十年前的黑白顯卡(我只聽說過,沒見過),都兼容VESA和VGA,因此,為了制作好的BabyLinux的通用性,請選擇這個驅動.
Support only 8 pixels wide fonts
這個一定要選,否當你給內核傳遞vga=788參數,讓linux在字符界面下高分辨率顯示的時候,系統(tǒng)會因為找不到合適的小字體而返回到低分辨率模式.
好了!所有內核的配置工作到這里就全部完成了,剩下的幾個大項全部選N就行了.
保存后退出,配置程序會自動生成一個隱藏的配置文件.config
下面是我配置好的.config文件內容.如果你懶的自己去配置,那么直接把這個.config拷貝到你的源代碼目錄下就能直接用了.(已經去掉了#開頭的注釋行)
CONFIG_X86=y
CONFIG_UID16=y
CONFIG_EXPERIMENTAL=y
CONFIG_M586=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_USE_STRING_486=y
CONFIG_X86_ALIGNMENT_16=y
CONFIG_X86_PPRO_FENCE=y
CONFIG_NOHIGHMEM=y
CONFIG_NET=y
CONFIG_PCI=y
CONFIG_PCI_GODIRECT=y
CONFIG_PCI_DIRECT=y
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
CONFIG_KCORE_ELF=y
CONFIG_BINFMT_ELF=y
CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_PACKET=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDE_MODES=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_REISERFS_FS=y
CONFIG_EXT3_FS=y
CONFIG_JBD=y
CONFIG_FAT_FS=y
CONFIG_VFAT_FS=y
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=y
CONFIG_JFS_FS=y
CONFIG_NTFS_FS=y
CONFIG_PROC_FS=y
CONFIG_EXT2_FS=y
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT=iso8859-1
CONFIG_VGA_CONSOLE=y
CONFIG_VIDEO_SELECT=y
CONFIG_VIDEO_IGNORE_BAD_MODE=y
CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FB_VESA=y
CONFIG_VIDEO_SELECT=y
CONFIG_FBCON_CFB8=y
CONFIG_FBCON_CFB16=y
CONFIG_FBCON_CFB24=y
CONFIG_FBCON_CFB32=y
CONFIG_FBCON_FONTWIDTH8_ONLY=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
5,編譯內核
#make dep
#make bzImage
下面是最后編譯結果:
Boot sector 512 bytes.
Setup is 4733 bytes.
System is 845 kB
make[1]: Leaving directory `/usr/src/linux-2.4.20-8/arch/i386/boot'
我用上面的配置得到了一個845k的內核.
編譯好的內核放在/usr/src/linux-2.4.20-8/arch/i386/boot下.將他拷貝在一個安全的地方備用.
建立一個專放babylinux材料的目錄
#mkdir /babylinux
建立一個做babylinux根文件系統(tǒng)的目錄
#mkdir /babylinux/rootfs
備份內核
評論