Linux核心裁剪的具體步驟

來源:互聯網
上載者:User

最近在學習ARM 自己買了快44B0的開發板。

說到ARM就不得不提到LINUX 說到LINUX 就不得不提核心嵌入式LINUX核心需要修改剪裁成實際需要的,也就是去掉一些不需要的功能,下面說說核心剪裁的步驟.在menuconfig中配置:詳細介紹核心配置選項及刪改情況第一部分:全部刪除Code maturity level options ---> 代碼成熟等級選項[]Prompt for development and/or incomplete code/drivers 預設情況下是選擇的,這將會在設定介面中顯示還在開發或者還沒有完成的代碼與驅動.不選。第二部分 :除以下選項,其它全部刪除General setup—〉System V IPC (IPC:Inter Process Communication)是組系統調用及函數庫,它能讓程式彼此間同步進行交換資訊。某些程式以及DOS類比環境都需要它。為進程提供通訊機制,這將使系統中各進程間有交換資訊與保持同步的能力。有些程式只有在選Y的情況下才能運行,所以不用考慮,這裡一定要選。第三部分:除以下選項,其它全部刪除Loadable module support ---> 可引導模組支援建議作為模組加入核心[] Enable loadable module support 這個選項可以讓你的核心支援模組,模組是什麼呢?模組是一小段代碼,編譯後可在系統核心運行時動態加入核心,從而為核心增加一些特性或是對某種硬體進行支援。一般一些不常用到的驅動或特性可以編譯為模組以減少核心的體積。在運行時可以使用modprobe命令來載入它到核心中去(在不需要時還可以移除它)。一些特性是否編譯為模組的原則是,不常使用的,特別是在系統啟動時不需要的驅動可以將其編譯為模組,如果是一些在系統啟動時就要用到的驅動比如說檔案系統,系統匯流排的支援就不要編為模組了,否在無法啟動系統。[]Automatic kernel module loading 一般情況下,如果我們的核心在某些任務中要使用一些被編譯為模組的驅動或特性時,我們要先使用modprobe命令來載入它,核心才能使用。不過,如果你選擇了這個選項,在核心需要一些模組時它可以自動調用modprobe命令來載入需要的模組,這是個很棒的特性,當然要選Y嘍。第四部分:全部刪除Block layer-----〉塊裝置第五部分:除以下選項,其它全部刪除Processor type and features ---> 處理器類型Subarchitecture Type (PC-compatible) ---> 這選項的主要的目的,是使Linux可以支援多種PC標準,一般我們使用的PC機是遵循所謂IBM相容結構(pc/at)。這個選項可以讓你選擇一些其它架構。我們一般選擇PC-compatible就可以了。Processor family(386) : 它會對每種CPU做最佳化,讓它跑的好又快,一般來說,你是什麼型號的就選什麼型號的就好。我選的是386,這樣核心會省下不少空間第六部分:除以下選項,其它全部刪除Power management options (ACPI, APM) ---> 電源管理選項[ ] Power Management Debug Support 電源管理的調試資訊支援,如果不是要調試核心有關電源管理部份,請不要選擇這項。ACPI Support ---〉進階電源介面配置支援,如果BIOS支援,建議選上這項[]Button 這個選項用於註冊基於電源開關的事件,比如power, sleep等,當你按下按鈕時事件將發生,一個精靈將讀取/proc/acpi/event,並執行使用者在這些事件上定義的動作比如讓系統關機。可以不選擇,根據自己的需求。第七部分:除以下選項,其它全部刪除Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> 匯流排選項[]PCI supportPCI access mode (Any) ---> PCI外圍裝置配置,強列建議選Any,系統將優先使用MMConfig,然後使用BIOS,最後使用Direct檢測PCI裝置。第八部分:除以下選項,其它全部刪除Executable file formats --->Kernel support for ELF binaries ELF是開放平台下最常用的二進位檔案,它支援不同的硬體平台。一定要選。第九部分:除以下選項,其它全部刪除NetworkingNetworking options --->[]Unix domain sockets[]TCP/IP networking第十部分:除以下選項,其它全部刪除Device Drivers --->裝置驅動Block devices-------〉[]Compaq SMART2 support [] Compaq Smart Array 5xxx support []Loopback device support 大部分的人這一個選項都選N,因為沒有必要。但是如果你要mount iso檔案的話,你得選上Y。這個選項的意思是說,可以將一個檔案掛成一個檔案系統。如果要燒光碟片片的,那麼您很有可能在把一個檔案燒進去之前,看看這個檔案是否符合IS09660的檔案系統的內容,是否符合您的需求。而且,可以對這個檔案系統加以保護。不過,如果您想做到這點的話,您必須有最新的mount程式,版本是在2.5X版以上的。而且如果您希望對這個檔案系統加上保護,則您必須有des.1.tar.gz
這個程式。注意:此處與網路無關。建議編譯成模組[] RAM disk supportSCSI device support ---> 裡面有關於USB支援的,要選擇[]SCSI device support USB要用,必須選擇[]legacy /proc/scsi/ support USB要用,必須選擇[]SCSI disk support USB要用,必須選擇SCSI Low-level drivers[]Serial ATA(SATA) support[]Intel PIIX/ICH SATA support  這個必須選擇,否則無法產生引導檔案[]Via SATA supportNetworking device support ---> 這個下面是選網卡驅動,一定要選Ethernet(1000mbit)-我的電腦是千兆網卡所以就選這個[]broadcom Tigon3supportInput device support ---> 這個裡面要設定你的滑鼠鍵盤什麼的[]Provide legacy /dev/psaux deviceGraphics support --->[]Support for frame buffer devices 支援Frame buffer的,一定要選擇USB support --->[]USB device filesystem 這個好象是用隨身碟必須的[]EHCI HCD (USB 2.0) support 有usb2.0就選上把,編譯成模組[]OHCI HCD support 必須選擇,編譯成模組[]UHCI HCD (most Intel and VIA) support 必須選擇,編譯成模組[]USB Mass Storage support 用隨身碟必須選擇USB Human Interface Device (full HID) support 裡面選擇usb滑鼠和usb鍵盤,如果你有一定選上這個必需選HID input layer support 應該選擇/dev/hiddev raw HID device support如果這裡有USB鍵盤和滑鼠選項,一定要選擇第十一部分:除以下選項,其它全部刪除file systems --->檔案系統Second extended fs support Ext2 extended attributes Ext2 POSIX Access Control Lists Ext2 Security Labels Ext3 journalling file system support Ext3 extended attributes Ext3 POSIX Access Control Lists Ext3 Security Labels 以上這些肯定是要選擇的,linux的標準檔案系統Kernel automounter support 核心自動掛載的,當然要選Kernel automounter version 4 support (also supports v3) 當然要選DOS/FAT/NT Filesystems ---> DOS FAT fs support MSDOS fs support VFAT (Windows-95) fs support NTFS file system supportNative language support語言支援,這裡就支援英語和漢語就行了,不多說了[]NLS ISO 8859-1 必須選擇,這個是關於隨身碟掛載的。CD-ROM/DVD Filesystems ---> 這個是關於掛載ISO檔案的,用的話就選。ISO 9660 CDROM file system support第十二部分: 全部刪除Instrumentation support 第十三部分:全部刪除Kernel hacking --->破解核心?可不是當骸客啦,不選第十四部分:全部刪除Security options --->第十五部分:全部刪除Cryptographic options --->這是核心支援加密的選項第十六部分:全部刪除Library routines --->附:核心配置  核心配置的方法很多,make config、make xconfig、make menuconfig、make oldconfig等等,它們的功能都是一樣的,區別應該從名字上就能看出來,只有make oldconfig是指用系統當前的設定(./.config)作為預設值。這裡用的是make menuconfig。  需要牢記:不必要的驅動越多,核心就越大,不僅運行速度慢、佔用記憶體多,在少數情況下、還會引發其他問題。具體步驟如下:首先確定shell是bash。然後$make menuconfig有一些預設的符號其含義如下:y:載入n:不載入m:作為模組載入可以配置的選項有以下一些:1)code maturity level option 代碼成熟度等級prompt for development and/or incomplete code/drivers [N/y/?]如果有興趣測試一下核心中尚未最終完成的某些模組,就選y,否則選N,想知道更詳細的資訊選?會看到線上說明(以下?的含義相同),N大寫表示預設值。2)processor type and features 處理器類型及特性Processor family(386,486/Cx486,586/K5/5x86/6x86,Pentium/K6/TSC, PPro/6x86MX)[PPro/6x86MX][]內的是預設值,我們可以根據前面介紹的uname 命令執行的結果選擇。此項如果高於386,那麼產生的核心在386機器上將不能啟動。Math emulation(CONFIG_MATH_EMULATION)[N/y/?]需要進行副處理器類比嗎?一般的機器都回n。如果機器已經有硬體的副處理器,那麼核心仍將使用硬體,而忽略軟體的math-emulation,這將使核心變大變慢。MTRR(Memory Type Range Register)support(CONFIG_MTRR)[N/y/?]在Pentium、Pro/Pentium II類的系統中可以提高映像寫入速度。Symmetric multi-processing support(CONFIG_SMP)[Y/n/?]如果您的機器有多個處理器,就選y。此時要選中下面的Enhanced Real Time Clock Support3)loadable model support 可載入模組支援Enable loadable module support(CONFIG_MODULES)[Y/n/?]最好選y,不然許多僅供動態載入的模組就不能用了。Set version information on all symbols for modules(CONFIG_MODVERSIONS)[N/y/?]選NKernel module loader(CONFIG_KMOD)[N/y/?]4)general setup 一般設定Networking support(CONFIG_NET)[Y/n/?]選y吧,現在還有幾台電腦不用上網呢?PCI support (CONFIG_PCI)[Y/n/?]PCI 匯流排和裝置總該有吧。PCI access mode(BIOS,Direct,Any)[Any]預設值比較保險,但如果您對您的主板很有信心,就選BIOS。PCI quirks (CONFIG_PCI_QUIRKS)[Y/n/?]用於修補BIOS中對PCI有影響的BUG,同樣,如果您對主板很有信心,就選n。Backward-compatible /proc/pci〉(CONFIG_PCI_OLD_PROC)[Y/n/?]以前的核心使用/proc/pci,新版核心使用/proc/bus/pci,要保持相容性就選y。MCA support(CONFIG_MCA)[N/y/?]查看協助吧。SGI Visual Workstation support(CONFIG_VISWS)[N/y/?]您的機器是SGI的嗎?是就選y。System V IPC(CONFIG_SYSVIPC)[Y/n/?]處理序間通訊函數和系統調用。Linux核心的五大組成部分之一,一定要選。BSD Process Accounting(CONFIG_BSD_PROCESS_ACCT)[N/y/?]用於啟動由核心將進程資訊寫入檔案的使用者級系統調用。就看您想不想用它了。Sysctl support(CONFIG_SYSCTL)[Y/n/?]在核心正在啟動並執行時候修改核心。用8KB空間換取某種方便。別選吧,除非你真的想試試。Kernel support for a.out binaries(CONFIG_BINFMT_AOUT)[Y/m/n/?]為了能使用以前編譯的程式,選y。Kernel support for ELF binaries(CONFIG_BINFMT_ELF)[Y/m/n/?]為了能使用現在編譯的程式,選y。Kernel support for MISC binaries(CONFIG_BINFMT_MISC)[Y/m/n/?]一般選y,用於支援java等代碼的自動執行。Parallel port support(CONFIG_PARPORT)[N/y/m/?]並口裝置,如印表機。5)plug and play support 隨插即用裝置支援Plug and Play support (CONFIG_PNP)[N/y/?]選y吧。6)block devices 塊裝置Normal PC floppy disk support(CONFIG_BLK_DEV_FD)[Y/m/n/?]一般的軟碟機。選y。Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support(CONFIG_BLK_DEV_IDE)[Y/m/n/?]這幾種介面的硬碟、光碟機、磁帶、軟碟機。選y。Include IDE/ATAPI CDROM support(CONFIG_BLK_DEV_IDECD)[Y/m/n/?]CDROM。選y。7)networking options 網路選項Packet socket (CONFIG_PACHET)[Y/m/n/?]按照目前網路發展的狀況,選y比較好。當然也可以選其它的。Kernel/User netlink socke(CONFIG_NETLINK)[N/y/?]核心與使用者進程雙向通訊。選y。Network firewalls(CONFIG_FIREWALL)[N/Y/?]如果真的需要用防火牆,就選y。UNIX domain sockets(confgi_unix)[Y/m/n/?]socket 的用處太多了。選y。TCP/IP networking(CONFIG_INET)[Y/n/?]選y,理由如上一條。The IPX protocol (CONFIG_IPX)[N/y/m/?]其實並沒有那麼多人真的需要使用或者學習IPX,所以一般選N。Appletalk DDP(CONFIG_ATALK)[N/y/m/?]選N,理由同上。8)SCSI support SCSI支援,SCSI low-level drives SCSI低級驅動根據系統中SCSI裝置的實際情況選擇。9)Networking device support 網路裝置支援如果用LAN上網,就選擇網卡;如果用MODEM撥接,就要看ISP提供那種服務了,一般都是PPP。10)Amateur Radio support 業餘收音機支援這是什麼我不太清楚,所以選N。11)ISDN subsystem ISDN子系統好像已經有支援ISDN的MODEM了,所以最好先看看自己的MODEM是不是這種,再做選擇。12)Old CD-ROM dfivers (not SCSI, not IDE) 老式光碟機驅動一般選N,因為這種裝置實在很少見。13)Character devices 字元裝置Virtual terminal(CONFIG_VT)[Y/n/?]Linux上一般可以用Alt+F1/F2/F3/F4來切換不同的任務終端,即使在一台電腦上也可以充分使用Linux的多任務能力,一些需要以命令列方式安裝合適用的軟體如果有虛擬終端的支援就會更方便,因此選y。Support for console on virtual terminal(CONFIG_VT_CONSOLE)[Y/n/?]選y將支援一個虛擬終端作為控制台。一般為Alt+F1。Support for console on serial port(CONFIG_SERIAL)[Y/m/n/?]除非真的需要一個串口控制台,否則選n。Extended dumb serial driver options(CONFIG_SERIAL_EXTENDED)[N/y/?]如果希望使用"dumb"的非標準特性(如HUB6支援),選y,一般選N。Non-standard serial port support(CONFIG_SERIAL_NONSTANDARD)[N/y/?]非標準串口。一般選N。UNIX98 PTY support(CONFIG_UNIX98_PTYS)[Y/n/?]PTY指偽終端,一般使用者就選n。但如果想用telnet或者xterms作為終端訪問主機,並且已經安裝了glibc2.1,就可以選y。Maximum number of UNIX98 PTYs in use(0-2048)(CONFIG_UNIX98_PTY_COUNT)[256]預設值就可以了。Mouse Support(not serial mice)(CONFIG_MOUSE)[Y/n/?]PS/2等非串口滑鼠選y,否則選N。14)Mice 滑鼠根據自己的滑鼠類型選擇。15)Video for Linux Linux視頻根據系統中的音/視頻捕捉裝置選擇。16)Joystick support 操縱杆根據系統中的遊戲杆裝置選擇17)Ftape,the floopy tape device driver Ftape裝置驅動Ftape (QIC-80/Travan)support(CONFIG_FTAPE)[N/y/m/?]如果系統中有磁帶機,選y。18)Filesystems 檔案系統檔案系統的選擇要比較仔細,因為其中的一些給某些系統功能提供支援。而且除了proc、ext2等檔案系統之外,其它的檔案系統(包括下面的網路檔案系統)都可以選擇為m方式,從而減小核心啟動時的體積。Quota support(CONFIG_QUOTA)[N/y/?]用於給使用者劃分定量的磁碟空間。如不用此功能就選N。DOS FAT fs support(CONFIG_FAT_FS)[N/y/m/?]為核心提供FAT支援,多數使用者有可能從Linux訪問同一系統中的WINDOWS硬碟空間,因此最好選y。ISO 9660 CDROM filesystem support(CONFIG_ISO9660_FS)[Y/m/n/?]有標準光碟機的系統應該選Y。Minix fs support(CONFIG_MINIX_FS)[N/y/m/?]用於建立啟動盤的檔案系統,多數應該選y或者m。/proc filesystem support(CONFIG_PROC_FS)[Y/n/?]虛擬檔案系統,必須選Y。Second extended fs support(CONFIG_EXT2_FS)[Y/m/n/?]Linux標準檔案系統,都應該選Y。19)Network file systems 網路檔案系統Coda filesystem support (advanced network fs)(CONFIG_CODA_FS)[N/y/m/?]先看協助再選。NFS filesystem support(CONFIG_NFS_FS)[Y/m/n/?]選Y或n,能夠訪問遠程NFS檔案系統。SMB filesystem support(to mount WfW shares etc.)(CONFIG_SMB_FS)[N/y/m/?]要訪問WINDOWS系統中的共用資源選y。NCP filesystem support(to mout NetWare volumes)(CONFIG_NCP_FS)[N/y/m/?]如果真的需要訪問NetWare檔案系統,就選y或者m。20)Partion Types 分區類型一般用不上;要用請參看協助。21)Console drivers 控制台驅動VGA text console(CONFIG_VGA_CONSOLE)[Y/n/?]用VGA模式下用文本方式操作Linux,一般選y。Video mode selection support(CONFIG_VIDEO_SELECT)[N/y/?]大多數系統都不需要這項功能。22)Sound 聲音Sound card support(CONFIG_SOUND)[N/y/m/?]如果系統中安裝了音效卡,就選y(或者m),然後查看協助。23)Kernel hacking 核心監視kernel hacking往往會產生非常大或者非常慢(甚至又大又慢)的核心,甚至會引起核心工作不穩定。如果一定要選,那麼也最好不要選其中的"development"、"experimental"、"debugging"項。 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.