如何 make menuconfig 和 make xconfig

在ubuntu系統中,要編譯內核,還需要安裝一系列相應的工具纔行。這篇文章,正是針對這一過程的一次記錄,目標是可以通過 make menuconfig 或 make xconfig 配置內核參數
--------------------------------------------------------------
參考
apt用法參考 《 
UbuntuHelp:AptGet/Howto

內核編譯參考 《 
配置並編譯內核[更新到linux-2.6.26.2]

《 
Master Kernel Thread

--------------------------------------------------------------
我的做法是從make menuconfig開始
$make menuconfig
錯誤信息:
*** Unable to find the ncurses libraries or the *** required header files. *** \"make menuconfig\" requires the ncurses libraries. *** *** Install ncurses (ncurses-devel) and try again. ***make[1]: *** [scripts/kconfig/dochecklxdialog] 錯誤 1make: *** [menuconfig] 錯誤2
可以看出,是因爲找不到 ncurses 導致的錯誤。那麼嘗試安裝 ncurses
$sudo apt-get install ncurses
提示信息:
正在讀取軟件包列表... 完成正在分析軟件包的依賴關係樹讀取狀態信息... 完成現在沒有可用的軟件包 ncurses , 但是它被其他的軟件包引用了。這可能意味着這個缺失的軟件包可能已被廢棄,或者只能在其他發佈源中找到E: 軟件包 ncurses 還沒有可供安裝的候選者
根據《 
Compiling the Kernel - errors in make menuconfig ARCH=um
》再試:
$sudo apt-get install libncurses*
提示信息:
正在讀取軟件包列表... 完成正在分析軟件包的依賴關係樹讀取狀態信息... 完成注意,根據正則表達式“libncurses*” 選中了 libncurses4注意,根據正則表達式“libncurses*” 選中了 libncurses5注意,根據正則表達式“libncurses*” 選中了 libncurses-ruby1.8注意,根據正則表達式“libncurses*” 選中了 libncurses-ryby1.9注意,根據正則表達式“libncurses*” 選中了 libncurses-dev注意,根據正則表達式“libncurses*” 選中了 libncursesw5-dbg注意,根據正則表達式“libncurses*” 選中了 libncursesw5-dev注意,根據正則表達式“libncurses*” 選中了 libncurses-ruby注意,根據正則表達式“libncurses*” 選中了 libncurses5-dbg注意,根據正則表達式“libncurses*” 選中了 libncurses5-dev注意,根據正則表達式“libncurses*” 選中了 libncursesw5已經不需要下列自動安裝的軟件包:  libchewing3-data ttf-wqy-zenhei scim-chewing thunderbird-locale-zh-tw language-support-translations-zh  libchewing3 xfonts-wqy openoffice.org-l10n-zh-cn openoffice.org-l10n-zh-tw openoffice.org-help-zh-cn  openoffice.org-help-zh-tw language-support-fonts-zh使用‘apt-get autoremove’ 來刪除它們。將會安裝下列額外的軟件包:  libncurses-ruby libncurses-ruby1.8 libncurses-ruby1.9 libncurses4 libncurses5-dbg libncurses5-dev  libncursesw5-dbg libncursesw5-dev libruby1.8 libruby1.9 ruby1.8 ruby1.9建議安裝的軟件包:  rdoc1.8 ri1.8 ruby1.8-examples rdoc1.9 ri1.9 ruby1.9-examples下列【新】軟件包將被安裝:  libncurses-ruby libncurses-ruby1.8 libncurses-ruby1.9 libncurses4 libncurses5-dbg libncurses5-dev  libncursesw5-dbg libncursesw5-dev libruby1.8 libruby1.9 ruby1.8 ruby1.9共升級了0個軟件包,新安裝了12個軟件包,要卸載0個軟件包,有60個軟件未被升級。需要下載8868kB的軟件包。操作完成後,會消耗掉33.9MB的額外磁盤空間。您希望繼續執行嗎?[Y/n]
選擇Y繼續執行,完成後,執行$sudo make menuconfig,OK!!!
進行到這,已經可以通過make menuconfig看到內核參數配置了。不過,如果要用X11模式的make xconfig,卻還是不行的
$ sudo make xconfig
錯誤信息:
HOSTCC  scripts/basic/fixdep  HOSTCC  scripts/basic/docproc  CHECK   qt** Unable to find the QT3 installation. Please make sure that* the QT3 development package is correctly installed and* either install pkg-config or set the QTDIR environment* variable to the correct location.*  HOSTCC  scripts/kconfig/conf.osed  scripts/kconfig/lkc_defs.h \"s/P(\([^,]*\),.*/#define \1 (\*\1_p)/\"  HOSTCC  scripts/kconfig/kconfig_load.o  HOSTCC  scripts/kconfig/kxgettext.o  SHIPPED scripts/kconfig/zconf.tab.c  SHIPPED scripts/kconfig/lex.zconf.c  SHIPPED scripts/kconfig/zconf.hash.c  HOSTCC  scripts/kconfig/zconf.tab.omake[1]: *** 沒有規則可以創建“scripts/kconfig/qconf.o” 需要的目標“scripts/kconfig/.tmp_qtcheck” 。 停止。make: ***[xconfig] 錯誤2
根據《 
配置並編譯內核[更新到linux-2.6.26.2]
》知道在正常步驟下,除了安裝ncurses外,還要安裝build-essential 和 kernel-package
好吧,先開始查詢一下,從kernel-package開始吧,畢竟帶着kernel,估計比較重要
查詢kernel-package信息
$ apt-cache show kernel-package
Package: kernel-packagePriority: optionalSection: miscInstalled-Size: 2192Maintainer: Ubuntu Core Developers Original-Maintainer: Manoj Srivastava Architecture: allVersion: 11.001Depends: perl, dpkg (>= 1.4), dpkg-dev (>= 1.4.0.9), gcc | c-compiler, make (>= 3.80-10), po-debconf, gettext, fileRecommends: libc6-dev | libc-dev, bzip2Suggests: linux-source | kernel-source, libdb3-dev, libncurses-dev, docbook-utilsFilename: pool/main/k/kernel-package/kernel-package_11.001_all.debSize: 510452MD5sum: fd820c2e3970fc8d300aef4a2b9e15caSHA1: 34924f84fe4cd604869bf4717d4c0230b3117291SHA256: 3ff71a3e2e69d5073310e8e83fc982baefec983af7139ed7cc7a4ce6cf42c38aDescription: A utility for building Linux kernel related Debian packages. This package provides the capability to create a debian kernel-image package by just running make-kpkg kernel_image in a kernel source directory tree.  It can also package the relevant kernel headers into a kernel-headers package. In general, this package is very useful if you need to create a custom kernel, if, for example, the default kernel does not support some of your hardware, or you wish a leaner, meaner kernel.  It also scripts the steps that need be taken to compile the kernel, which is quite convenient (forgetting a crucial step once was the initial motivation for this package). Please look at /usr/share/doc/kernel-package/Rationale.gz for a full list of advantages of this package.Bugs: mailto:[email protected]: Ubuntu
好多信息,不知道能不能看得懂,算了,看一下安裝好了沒
$ apt-cache policy  kernel-package
提示信息:
kernel-package:  已安裝: (無)  候選的軟件包:11.001  版本列表:   11.001 0     500 http://cn.archive.ubuntu.com hardy/main Packages    9.001ubuntu15 0      500 http://ubuntu.cn99.com dapper/main Packages
這個信息就簡單多了,沒有安裝!那麼開始安裝吧
$ sudo apt-get install kernel-package
提示信息:
正在讀取軟件包列表... 完成正在分析軟件包的依賴關係樹讀取狀態信息... 完成已經不需要下列自動安裝的軟件包:  libchewing3-data ttf-wqy-zenhei scim-chewing thunderbird-locale-zh-tw language-support-translations-zh  libchewing3 xfonts-wqy openoffice.org-l10n-zh-cn openoffice.org-l10n-zh-tw openoffice.org-help-zh-cn  openoffice.org-help-zh-tw language-support-fonts-zh使用‘apt-get autoremove’ 來刪除它們。將會安裝下列額外的軟件包:  dpkg-dev gettext intltool-debian libtimedate-perl patch po-debconf建議安裝的軟件包:  debian-keyring cvs gettext-doc linux-source kernel-source libdb3-dev docbook-utils diff-doc推薦安裝的軟件包:  build-essential libmail-sendmail-perl libcompress-zlib-perl libmail-box-perl下列【新】軟件包將被安裝:  dpkg-dev gettext intltool-debian kernel-package libtimedate-perl patch po-debconf共升級了0個軟件包,新安裝了7個軟件包,要卸載0個軟件包,有60個軟件未被升級。需要下載3436kB的軟件包。操作完成後,會消耗掉12.8MB的額外磁盤空間。您希望繼續執行嗎?[Y/n]
選Y嗎?當然,不然做這一步幹麼!
然後輪到build-essential
查詢build-essential信息
$ apt-cache show build-essential
提示信息:
Package: build-essentialPriority: optionalSection: develInstalled-Size: 48Maintainer: Ubuntu Core Developers Original-Maintainer: Matthias Klose Architecture: i386Version: 11.3ubuntu1Depends: libc6-dev | libc-dev, gcc (>= 4:4.1.1), g++ (>= 4:4.1.1), make, dpkg-dev (>= 1.13.5)Filename: pool/main/b/build-essential/build-essential_11.3ubuntu1_i386.debSize: 7066MD5sum: dbf21241506cb04fc6f67a93aaaf991bSHA1: aef5b9f76a05ea23c0370eab53ef0d20b4dac1f5SHA256: 7d3b5efbd44c8e8186e33e3b0e9585fc8a86f4b1cd328f10e3c4a594e50f9da5Description-zh_CN: 編譯程序必須軟件包的列表信息  如果您 不打算編譯Debian軟件包,就不需要安裝此軟件包。而且要編譯Debian軟件包,此軟件包也不是必須的。  本軟件包包含一個列表,表中列出了在編譯Debian軟件包時所必須的軟件包。本軟件包依賴於列表中的軟件,這樣,安裝編譯程序必須的軟件包就會很簡單。  如果安裝了此軟件包,在編譯軟件包時,你只需要安裝其特別要求的編譯時依賴關係。反過來說,在確定軟件包的依賴關係的時候,您 完全可以忽略此軟件包所依賴的這些包。  本軟件包並不是定義那些軟件包是編譯必須的;真正的定義在Debian策略手冊中。本軟件包僅包含一個大家都需要的列表。然而,如果此軟件包和手冊發生衝突,以手冊爲準。Bugs: mailto:[email protected]: Ubuntu
查詢安裝狀態
$ apt-cache policy build-essential
提示信息:
build-essential:  已安裝:(無)  候選的軟件包:11.3ubuntu1  版本列表:     11.3ubuntu1 0        500 http://cn.archive.ubuntu.com hardy/main Packages     11.1 0        500 http://ubuntu.cn99.com dapper/main Packages
沒有安裝,那裝上吧
$ sudo apt-get install  build-essential
正在讀取軟件包列表... 完成正在分析軟件包的依賴關係樹讀取狀態信息... 完成已經不需要下列自動安裝的軟件包:  libchewing3-data ttf-wqy-zenhei scim-chewing thunderbird-locale-zh-tw language-support-translations-zh  libchewing3 xfonts-wqy openoffice.org-l10n-zh-cn openoffice.org-l10n-zh-tw openoffice.org-help-zh-cn  openoffice.org-help-zh-tw language-support-fonts-zh使用‘apt-get autoremove’ 來刪除它們。將會安裝下列額外的軟件包:  g++ g++-4.2 libstdc++6-4.2-dev建議安裝的軟件包:  g++-multilib g++-4.2-multilib gcc-4.2-doc libstdc++6-4.2-dbg libstdc++6-4.2-doc下列【新】軟件包將被安裝:  build-essential g++ g++-4.2 libstdc++6-4.2-dev共升級了0個軟件包,新安裝了4個軟件包,要卸載0個軟件包,有60個軟件未被升級。需要下載3979kB的軟件包。操作完成後,會消耗掉15.0MB的額外磁盤空間。您希望繼續執行嗎?[Y/n]
待build-essential完成安裝後,運行make xconfig,錯誤信息還和之前一樣,我知道,我還是沒有完成除錯任務。注意到上面我用紅色標註的錯誤提示,沒有安裝QT3
安裝QT庫
$ sudo apt-get install libqt3-headers libqt3-mt-dev
注意這裏把libqt3-headers和libqt3-mt-dev一起安裝了。我試過兩個分開安裝,但好像關聯不好,裝好一個要卸掉另一個,總是這樣。後來我火大,兩個一起裝,看你們還鬧,果然就安分了
提示信息:
正在讀取軟件包列表... 完成正在分析軟件包的依賴關係樹讀取狀態信息... 完成已經不需要下列自動安裝的軟件包:  libchewing3-data ttf-wqy-zenhei scim-chewing thunderbird-locale-zh-tw language-support-translations-zh  libchewing3 xfonts-wqy openoffice.org-l10n-zh-cn openoffice.org-l10n-zh-tw openoffice.org-help-zh-cn  openoffice.org-help-zh-tw language-support-fonts-zh使用‘apt-get autoremove’ 來刪除它們。將會安裝下列額外的軟件包:  comerr-dev libaudio-dev libcupsys2-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgcrypt11-dev  libgl1-mesa-dev libglu1-mesa-dev libgnutls-dev libgnutlsxx13 libgpg-error-dev libice-dev libjpeg62-dev  libkadm55 libkrb5-dev liblcms1-dev liblzo2-dev libmng-dev libopencdk10-dev libpng12-dev libpthread-stubs0  libpthread-stubs0-dev libsm-dev libtasn1-3-dev libx11-dev libxau-dev libxcb-xlib0-dev libxcb1-dev  libxcursor-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxmu-dev  libxmu-headers libxrandr-dev libxrender-dev libxt-dev mesa-common-dev x11proto-core-dev x11proto-fixes-dev  x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-render-dev x11proto-xext-dev  x11proto-xinerama-dev xtrans-dev建議安裝的軟件包:  doc-base libgcrypt11-doc gnutls-bin gnutls-doc krb5-doc libqt3-i18n qt3-doc推薦安裝的軟件包:  libqt3-compat-headers下列【新】軟件包將被安裝:  comerr-dev libaudio-dev libcupsys2-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgcrypt11-dev  libgl1-mesa-dev libglu1-mesa-dev libgnutls-dev libgnutlsxx13 libgpg-error-dev libice-dev libjpeg62-dev  libkadm55 libkrb5-dev liblcms1-dev liblzo2-dev libmng-dev libopencdk10-dev libpng12-dev libpthread-stubs0  libpthread-stubs0-dev libqt3-headers libqt3-mt-dev libsm-dev libtasn1-3-dev libx11-dev libxau-dev  libxcb-xlib0-dev libxcb1-dev libxcursor-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev  libxinerama-dev libxmu-dev libxmu-headers libxrandr-dev libxrender-dev libxt-dev mesa-common-dev  x11proto-core-dev x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-render-dev  x11proto-xext-dev x11proto-xinerama-dev xtrans-dev共升級了0個軟件包,新安裝了53個軟件包,要卸載0個軟件包,有60個軟件未被升級。需要下載8933kB的軟件包。操作完成後,會消耗掉33.0MB的額外磁盤空間。您希望繼續執行嗎?[Y/n]
選Y安裝後,再安裝建議軟件包
$ sudo apt-get install libqt3-compat-headers
執行
$sudo make xconfig
OK!!!
到此爲止,不管是make config 或是 make menuconfig 再或是 make xconfig 都可以運行了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章