解决ubuntu下make menuconfig错误问题

在ubuntu系统中,要编译内核,还需要安装一系列相应的工具才行。这篇文章,正是针对这一过程的一次记录,目标是可以通过make menuconfig 或 make xconfig 配置内核参数
我的做法是从make menuconfig开始

$make menuconfig
错误信息:
  *** Unable to find the ncurses libraries orthe
  *** required header files.
  *** 'make menuconfig' requires the ncurseslibraries.
  ***
  *** Install ncurses (ncurses-devel) and tryagain.
  ***
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*
选择Y继续执行,完成后,执行$sudo make menuconfig,OK!!!

进行到这,已经可以通过make menuconfig看到内核参数配置了。不过,如果要用X11模式的makexconfig,却还是不行的

$ sudo make xconfig
错误信息:
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc
  CHECK   qt
*
* Unable tofind 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

除了安装ncurses外,还要安装build-essential 和 kernel-package
看一下安装好了没
$ apt-cache policy   kernel-package
提示信息:
kernel-package:
  已安装:(无)
  候选软件包:12.032
  版本列表:
      12.0320
        500 ftp://linux.xidian.edu.cn/ubuntu/lucid/universe Packages


这个信息就简单多了,没有安装!那么开始安装吧

$ sudo apt-get install kernel-package
提示信息:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树        
正在读取状态信息... 完成        
下列软件包是自动安装的并且现在不需要了:
  linux-headers-2.6.32-21 python-ldblinux-headers-2.6.32-21-generic
  python-tdb samba-ldb-tools libtevent0python-samba libldb0
使用'apt-get autoremove'来删除它们
将会安装下列额外的软件包:
  cvs gettext intltool-debianlibmail-sendmail-perl libsys-hostname-long-perl
  po-debconf
建议安装的软件包:
  gettext-doc linux-source kernel-sourcedocbook-utils xmlto grub grub2
  jfsutils mcelog oprofile reiserfsprogssquashfs-tools xfsprogs quota
  btrfs-tools libmail-box-perl
下列【新】软件包将被安装:
  cvs gettext intltool-debian kernel-packagelibmail-sendmail-perl
  libsys-hostname-long-perl po-debconf
升级了 0 个软件包,新安装了 7 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 4,213kB 的软件包。
解压缩后会消耗掉 14.2MB 的额外空间。
您希望继续执行吗?[Y/n]y


选Y吗?当然,不然做这一步干么!

然后轮到build-essential
查询安装状态
$ apt-cache policy build-essential
提示信息:
build-essential:
  已安装:11.4build1
  候选软件包:11.4build1
  版本列表:
  *** 11.4build1 0
        500 ftp://linux.xidian.edu.cn/ubuntu/ lucid/mainPackages
        100 /var/lib/dpkg/status

已经安装了,没有安装的话输入如下命令:
$ sudo apt-get install   build-essential


待build-essential完成安装后,运行makexconfig,错误信息还和之前一样,我知道,我还是没有完成除错任务。注意到上面我用红色标注的错误提示,没有安装QT3

安装QT库
$ sudo apt-get install libqt3-headers libqt3-mt-dev
注意这里把libqt3-headers和libqt3-mt-dev一起安装了。我试过两个分开安装,但好像关联不好,装好一个要卸掉另一个,总是这样。后来我火大,两个一起装,看你们还闹,果然就安分了
提示信息:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树        
正在读取状态信息... 完成        
下列软件包是自动安装的并且现在不需要了:
  linux-headers-2.6.32-21 python-ldblinux-headers-2.6.32-21-generic
  python-tdb samba-ldb-tools libtevent0python-samba libldb0
使用'apt-get autoremove'来删除它们
将会安装下列额外的软件包:
  comerr-dev krb5-multidev libaudio-devlibaudio2 libcups2-dev libdrm-dev
  libexpat1-dev libfontconfig1-devlibfreetype6-dev libgcrypt11-dev
  libgl1-mesa-dev libglu1-mesa-devlibgnutls-dev libgpg-error-dev libgssrpc4
  libice-dev libjpeg62-dev libkadm5clnt-mit7libkadm5srv-mit7 libkdb5-4
  libkrb5-dev liblcms1-dev libmng-dev libmng1libpng12-dev libpthread-stubs0
  libpthread-stubs0-dev libqt3-compat-headerslibqt3-mt libsm-dev
  libtasn1-3-dev libx11-dev libxau-devlibxcb1-dev libxcursor-dev libxdmcp-dev
  libxext-dev libxfixes-dev libxft-devlibxi-dev libxinerama-dev libxmu-dev
  libxmu-headers libxrandr-dev libxrender-devlibxt-dev mesa-common-dev
  qt3-dev-tools x11proto-core-devx11proto-fixes-dev x11proto-input-dev
  x11proto-kb-dev x11proto-randr-devx11proto-render-dev x11proto-xext-dev
  x11proto-xinerama-dev xtrans-devzlib1g-dev
建议安装的软件包:
  krb5-doc nas libgcrypt11-doc gnutls-docgnutls-bin guile-gnutls krb5-user
  libqt3-mt-psql libqt3-mt-mysqllibqt3-mt-odbc libqt3-i18n qt3-doc
下列【新】软件包将被安装:
  comerr-dev krb5-multidev libaudio-devlibaudio2 libcups2-dev libdrm-dev
  libexpat1-dev libfontconfig1-devlibfreetype6-dev libgcrypt11-dev
  libgl1-mesa-dev libglu1-mesa-devlibgnutls-dev libgpg-error-dev libgssrpc4
  libice-dev libjpeg62-dev libkadm5clnt-mit7libkadm5srv-mit7 libkdb5-4
  libkrb5-dev liblcms1-dev libmng-dev libmng1libpng12-dev libpthread-stubs0
  libpthread-stubs0-dev libqt3-compat-headerslibqt3-headers libqt3-mt
  libqt3-mt-dev libsm-dev libtasn1-3-devlibx11-dev libxau-dev libxcb1-dev
  libxcursor-dev libxdmcp-dev libxext-devlibxfixes-dev libxft-dev libxi-dev
  libxinerama-dev libxmu-dev libxmu-headerslibxrandr-dev libxrender-dev
  libxt-dev mesa-common-dev qt3-dev-toolsx11proto-core-dev x11proto-fixes-dev
  x11proto-input-dev x11proto-kb-devx11proto-randr-dev x11proto-render-dev
  x11proto-xext-dev x11proto-xinerama-devxtrans-dev zlib1g-dev
升级了 0 个软件包,新安装了 60 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 18.7MB 的软件包。
解压缩后会消耗掉 50.9MB 的额外空间。
您希望继续执行吗?[Y/n]y


选Y安装后,再安装建议软件包
$ sudo apt-get install libqt3-compat-headers

执行
$sudo make xconfig
OK!!!

到此为止,不管是make config 或是 make menuconfig 再或是 make xconfig都可以运行了。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值