歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> make menuconfig詳解

make menuconfig詳解

日期:2017/3/1 10:19:29   编辑:Linux編程

make menuconfig 圖形化的內核配置make mrproper -----刪除不必要的文件和目錄.

1 #make config(基於文本的最為傳統的配置界面,不推薦使用)

2 #make menuconfig(基於文本選單的配置界面,字符終端下推薦使用)

注意:使用make menuconfig 需要安裝ncurses( sudo apt-get install ncurses-dev)

3 #make xconfig(基於圖形窗口模式的配置界面,Xwindow下推薦使用)

注意:如果要用make xconfig,則要先安裝libqt3-compat-headers( sudo apt-get install libqt3-compat-headers)

4 #make oldconfig(如果只想在原來內核配置的基礎上修改一些小地方,會省去不少麻煩)

目的都是生成一個.config文件,這三個命令中,make

xconfig的界面最為友好,如果你可以使用Xwindow,你就用這個好了,這個比較方便,也好設置。如果你不能使用Xwindow,那麼就使用make

menuconfig好了。界面雖然比上面一個差點,總比make config的要好多了。 選擇相應的配置時,有三種選擇,它們分別代表的含義如下:

Y--將該功能編譯進內核 N--不將該功能編譯進內核 M--將該功能編譯成可以在需要時動態插入到內核中的模塊

下面根據解釋make menuconfig中出現的菜單的內容。

[1]、Code maturity level options:代碼成熟等級。

1.1.prompt for development and/or incomplete code/drivers.

如果要試驗現在仍處於實驗階段的功能,比如khttpd、IPv6等,就必須把該項選擇為Y了;否則可以把它選擇為N。在Linux的世界裡,每天都有許多人為它發展支持的driver和加強它的核心。但是有些driver還沒進入穩定的階段。但其作者很歡迎其他人去測試這些driver並提出一些bugs。這個問題是說,有一些drive還在做測試中,問您是否要選擇這些drive或支持的程序碼。如果鍵入Y,往後將會出現一些還在測試中的東西給您做選擇。(像Java的程序碼和PCI

bridge),台則就鍵入N。

[2]、Loadable module support:對模塊的支持

模塊就像你特意插入核心中的某些東西,如果辦公室有一個小網絡並且有時想用一下(但並不經常),也許你想把網卡編譯成一個模塊。如果安裝啟動分區和網絡,你需要網絡系統文件,和己經編譯的網卡。為什麼要使用模塊?

模塊化使核心變的更簡捷,它減少核心釋放大量的受保護的空間。模塊的安裝和卸載使用的空間是可重復分配利用的。如果你打開機器有90%以上的時間用到一個模塊,編譯它。運用這類模塊是浪費內存的,原因是一旦你編譯了模塊它們同樣將占用大量的內存,核心需要一些代碼來掛上模塊。記住,核心在保護空間運行,但模塊並不是。這麼說,並不經常使用我的設備,把它編譯成只支持ext2,ide和elf。而一直使用的網卡,把其它的編譯成模塊:如a.out,

java, floppy, iso9960, msdos, minix,

vfat,smb,nfs,smcultra(ethernetcard),serial,printer,sound,ppp,等等。它們許多只是在這或那用上那麼幾分鐘。嚴格的說,這樣做會使核心增大許多而降低它的執行速度。這時我們就可以把這些可能會用的驅動程序編譯成一個—個的模塊,在需要用的時候才用insmod這個指令加入核心,不用的時候也能rmmod把它從核心移除,或是用lsmod察看目前所載入的模塊。

2.1.Enable loadable module support.

除非准備把所有需要的內容都編譯到內核裡面,否則該項應該是必選的。

2.2.Set version information on all module symbols.

通常,我們更新核心版本之後,模塊耍重新的編譯。這個選項使您不必更新編譯模塊而能使用以前的模塊。可以不選它。但如果您選y,則按照它的說明,您必須有genksyms這個程序(可用whereis指令查看有無此程序)。

2.3.Kernel module loader.

讓內核在啟動時有自己裝入必需模塊的能力,建議選上。注意:在開機就會 mount 上來的 partition 的 FS 、device

driver 記得要 compiler 進 kernel,不能把它弄成 modules。請不要誇張到為了完全模組化而忘了把ext2fs和IDE

dirver compiler 進 kernel 裡。

經驗談:

a.可加載模塊是指內核代碼(kernel

code)的一些片斷,比如驅動程序,當編譯內核的時候它們也被單獨編譯。因此,這些代碼不是內核的一部分,但是當你需要它的時候,它可以被加載並使用。

通常的建議是如果可能,將內核代碼編譯成可加載模塊,因為這樣可以使內核更小,而且更穩定。警告!千萬不要將文件系統(File

System)部分的代碼編譯為可加載模塊,如果你犯了這個錯誤,將文件系統(File

System)部分的代碼編譯為可加載模塊,結果將是內核無法讀取它自己的文件系統。

然後內核無法加載它自己的配置文件——一些很明顯是在正常啟動Linux時所必需的東西。

我很少使用可加載模塊:我喜歡我的內核能夠直接和硬件對話,但這只是我自己的偏好。

Copyright © Linux教程網 All Rights Reserved