ubuntu make menuconfig error

主機環境:
ubuntuphp

--------------------------------------------------------------

在ubuntu系統中,要編譯內核,還須要安裝一系列相應的工具才行。這篇文章,正是針對這一過程的一次記錄,目標是能夠經過 make menuconfig 或 make xconfig 配置內核參數

--------------------------------------------------------------
參考
apt用法參考 《 UbuntuHelp:AptGet/Howto
內核編譯參考 《  配置並編譯內核[更新到linux-2.6.26.2]
           《 Master Kernel Thread

--------------------------------------------------------------
個人作法是從make menuconfig開始

$make menuconfig
錯誤信息:linux

 *** 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] 錯誤 1
make: *** [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.o
sed < scripts/kconfig/lkc_proto.h > 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.o
make[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-package
Priority: optional
Section: misc
Installed-Size: 2192
Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Manoj Srivastava <srivasta@debian.org>
Architecture: all
Version: 11.001
Depends: perl, dpkg (>= 1.4), dpkg-dev (>= 1.4.0.9), gcc | c-compiler, make (>= 3.80-10), po-debconf, gettext, file
Recommends: libc6-dev | libc-dev, bzip2
Suggests: linux-source | kernel-source, libdb3-dev, libncurses-dev, docbook-utils
Filename: pool/main/k/kernel-package/kernel-package_11.001_all.deb
Size: 510452
......
好多信息,不知道能不能看得懂,算了,看一下安裝好了沒

$ 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-essential
Priority: optional
Section: devel
Installed-Size: 48
Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Matthias Klose <doko@debian.org>
Architecture: i386
Version: 11.3ubuntu1
Depends: 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.deb
Size: 7066
......

查詢安裝狀態
$ 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 均可以運行了。c++

相關文章
相關標籤/搜索