新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 最小的Linux系統(tǒng)制作過程詳解

最小的Linux系統(tǒng)制作過程詳解

作者: 時間:2016-10-08 來源:網(wǎ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參數(shù),讓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

備份內核



關鍵詞:

評論


相關推薦

技術專區(qū)

關閉