乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Linux 內核配置方式詳解

       guitarhua 2011-12-30

      Linux 內核配置方式詳解

      上一篇 / 下一篇  2011-05-30 22:55:32 / 個人分類:Linux

      在做Virtualization這段時間,編譯過多次Linux kernel,編譯Kernel過程中配置config這一步是相對來說比較復雜的。對編譯內核過程中的配置這一步做詳細的說明吧,總結一下,多數內容源于網上的多篇文章

      首發(fā)在我的博客:http://renyongjie668.blog.163.com/blog/static/1600531201143010295156/

      首先,配置時可能出現的選項,對其選擇先來個說明吧。

      Typically, your choices for each option are shown in the format [Y/m/n/?] The capitalized   letter is the default, and can be selected by just pressing the Enter key. The four choices are:

              y    Build directly into the kernel.

              n    Leave entirely out of the kernel.

              m   Build as a module, to be loaded if needed.

                  Print a brief descriptive message and repeat the prompt.

      y表示(相應功能將直接編譯進內核),m表示模塊(相應功能將編譯為一個模塊,在需要時加載),以及n表示(相應功能不會包含進內核)。則(對該配置項)打印出簡要的描述信息并重復剛才的選擇提示。

      其次,我使用的最多的兩個配置命令分別是:make muneconfigmake oldconfig

      make oldconfigmake config類似,但是它的作用是在現有的內核設置文件基礎上建立一個新的設置文件,只會向用戶提供有關新內核特性的問題,在新內核升級的過程 中,make oldconfig非常有用,用戶將現有的配置文件.config復制到新內核的源碼中,執(zhí)行make oldconfig,此時,用戶只需要回答那些針對新增特性的問題。

      make menuconfig基于終端的一種配置方式,提供了文本模式的圖形用戶界面,用戶可以通過光標移動來瀏覽所支持的各種特性。使用這用配置方式時,系統(tǒng)中必須安裝有ncurese庫。


      在內核樹的根目錄中,有一個
      .config文件,它記錄了內核的配置選項,可直接對它進行修改,再運行。在.config文件中,每個配置和選項的值只能為”y””m”兩者之一,如果不需要這個特性不再支持她,那么可以將對應的選項用”#”注釋掉。實際上,如果你手頭有合適的.config文件,可以運行make oldconfig 直接按.config的內容來配置$ sudo make oldconfig

      對內核的配置都是圍繞.config來展開的. 即便開始.config文件不存在,進行配置后會創(chuàng)造它.

      一般來說,內核配置保存于/usr/src/linux-*/.config文件中。在/boot/config-<版本>有其備份。請保留它以備后用。

       

      常見的幾種配置方式:

      為了完成內核的配置,必須切換到root用戶,然后轉入內核源碼目錄(就是你下載新內核的目錄)

      #cd /usr/src/linux/linux-2.6.38

      然后執(zhí)行下面命令之一:

      #make config

      #make oldconfig

      #make menuconfig

      #make gconfig

      #make defconfig

      #make allyesconfig

      #make allmodconfig

       

      1.make config

      基于文本的最為傳統(tǒng)的也是最為枯草的一種配置方式,但是它可以使用任何情況,這種方式會為每一個內核支持的特性向用戶提問,如果用戶回答“y”,則把特性編譯進內核;回答“m”,則它特性作為模塊進行編譯;回答“n”,則表示不對該特性提供支持

      如果回答每個問題前,必須考慮清楚,如果在配置過程中犯了錯誤給了錯誤的回答,就只能按“ctcl+c”強行退出了

       

      2.make oldconfig

      make oldconfigmake config類似,但是它的作用是在現有的內核設置文件基礎上建立一個新的設置文件,只會向用戶提供有關新內核特性的問題,在新內核升級的過程 中,make oldconfig非常有用,用戶將現有的配置文件.config復制到新內核的源碼中,執(zhí)行make oldconfig,此時,用戶只需要回答那些針對新增特性的問題

      make silentoldconfig : Like above, but avoids cluttering the screen with questions already answered.和上面oldconfig一樣,但在屏幕上不再出現已在.config中配置好的選項。

       

      3.make menuconfig

      基于終端的一種配置方式,提供了文本模式的圖形用戶界面,用戶可以通過光標移動來瀏覽所支持的各種特性。使用這用配置方式時,系統(tǒng)中必須安裝有ncurese庫,否則會顯示“Unable to find the Ncurses libraies”的錯誤提示

       

      4.make xoncifg

      基 于X Winodws的一種配置方式,提供了漂亮的配置窗口,不過只有能夠在X Server上使用root用戶欲行X應用程序時,才能夠使用,它依賴于QT,如果系統(tǒng)中沒有安裝QT庫,則會出現“Unable to find the QT installation”的錯誤提示

       

      5.make gconfig

      make xocnifg類似,不同的是make gconfig依賴于GTK

       

      6.make defconfig

      按照默認的配置文件arch/i386/defconfig對內核進行配置,生成.config可以用作初始化配置,然后再使用make menuconfig進行定制化配置

       

      7.make allyesconfig

      盡量多地使用“y”設置內核選項值,生成的配置中包含了全部的內核特性

      make allnoconfig :除必須的選項外,其它選項一律不選. (常用于嵌入式系統(tǒng)).

      8.make allmodconfig

      盡可能多的使用“m”設置內核選項值來生成配置文件

       

      下載好Linux內核源代碼后,在源代碼的根目錄執(zhí)行

      make localyesconfig或者make localmodconfig

      然后系統(tǒng)就會根據你的硬件自動生成一個適應你的硬件的.config (內核的配置文件)

      make localmodconfig會執(zhí)行lsmod命令查看當前系統(tǒng)中加載了哪些模塊(Modules)并最后將原來的.config中不需要的模塊去掉,僅保留前面lsmod出來的這些模塊,從而簡化了內核的配置過程。 

      這樣做確實方便了很多,但是也有個缺點:該方法僅能使編譯出的內核支持當前內核已經加載的模塊。因為該方法使用的是lsmod的結果,如果有的模塊當前沒有加載,那么就不會編到新的內核中。

      There’s an additional “make localyesconfig” target, in case you don’t want to use modules and/or initrds.

       

      幾條好的建議:

      1. 除非您使用初始化ramdisk (initrd),否則絕不要把掛載根文件系統(tǒng)必需的驅動程序(硬件驅動以及文件系統(tǒng)驅動)編譯成模塊!而如果您確實使用初始化ramdisk,請為ext2FS支持選項選擇Y,因為ramdisk使用該文件系統(tǒng)。您還需要initrd支持。
      2. 如果您系統(tǒng)中有網卡,將它們的驅動編譯成模塊。這樣,您就能夠在/etc/modules.conf中用別名定義哪一塊網卡第一,哪一塊第二,等等。如果您將驅動程序編譯進了內核,它們加載的順序將取決于當初它們鏈接進內核的順序,而這不一定是您想要的。
      3. 最后,如果您不清楚某個選項的含義,請閱讀其幫助!而如果該幫助信息依然不能解決您的困惑,請保留該選項原來的樣子。(configoldconfig中可以按鍵訪問幫助。)

      配置最終結束后,請保存您的配置并退出。

       

      參考資料:

      http://www./tech/elebuild/simplify-linux-kernel-config-rapid-compile-method-collect/

      http://man./linux/Mandrakelinuxref/compiling-conf.html

      http://www./os/article-5d18.html

      編譯 Linux2.6 內核總結: http://www./u/13991/showart.php?id=79823

      編譯內核:http://my./space.php?uid=25806768&do=blog&id=302764

      內核_.config 內核配置及Makefile:http://www.cnblogs.com/parrynee/archive/2010/05/13/1734689.html

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多