linux 3 内核编译环境,在ubuntu12.04下使用make-kpkg完美编译安装3.3.4内核

折腾了两天,总算完美地编译3.3.4内核!

以前,去很多论坛上逛后,开始对自己编译内核感兴趣,于是,就踏上编译内核的探索之路!再此过程中,发现很多论坛给出的帖子,多多少少有些不够完美。大部分都是能编译也能用新内核,但是对于kernel-headers产生的问题(如不能使用vmware/virtualbox等虚拟机软件、不能使用内核提供的头文件等),我是没有搜到完美的解决办法。折腾了两天,总算把kernel-headers产生的问题解决了。

编译系统环境:ubuntu 12.04 LTS正式版

一、获取源代码,配置编译环境

首先,你得去内核官网www.kernel.org下载最新的内核(我用的是3.3.4),解压到家目录~/;

其次,根据你的系统,安装编译依赖的软件包,ubuntu12.04下只要安装libncurses5-dev软件包就可以了(安装命令:sudo

apt-get install libncurses5-dev)。

安装编译工具make-kpkg:

sudo apt-get install kernel-package

二、配置内核

配置命令:sudo make menuconfig

附件:

a4c26d1e5885305701be709a3d33442f.pnga.jpg [ 70.2 KiB | 被浏览 5033 次 ]

如果已有配置好的配置文件,直接拷到内核文件夹来,更名为.config。如果不知道怎么配置内核,可以上百度、谷歌,上边有很多有关一般配置内核方法,实在不知道怎么配置(或者英语不过关,看不懂那些鸟语),可以直接到/boot目录下拷贝系统自带配置文件,考过来,更名为.config。根据自己的机器配置,选择相关选项,具体如何选择,这里不再赘述。配置好后保存。

三、编译

命令:sudo make-kpkg --initrd kernel_headers kernel_image

-jn(n=你的cpu核心数的2倍,用以打开多线程编译,提高cpu利用率,加快编译速度)

这条命令要执行很长一段时间,根据机器的配置不同,所花时间也不同,耐心等待!

四、安装

在上条命令执行完后,会在当前目录的上一层目录产生两个*.deb文件,这就是咱编译了半天得到的安装包。回到上一层目录:cd

..

用命令:sudo dpkg -i *.deb来安装这两个.deb包,即可安装我们刚刚编译好的内核

五、kernel-headers

至此,重启电脑,选择3.3.4内核启动ubuntu。如果你删除了编译文件夹,kernel-headers就不能用。不删除呢,编译好的内核代码很占空间(大概4~6G),而且也没有用了。通过与系统自带内核相关文件对比,发现/lib/modules/3.3.4/下的build链接文件是链接到~/linux3.3.4,也就是内核源代码文件夹。猜测它的主要作用是告诉系统Kbuild文件在哪儿。于是就手动更改,使kernel-headers能正常使用。

解决方法:将内核编译文件夹下的Kbuild拷贝到/usr/src/linux-headers-3.3.4/下,删除/lib/modules/3.3.4/下的build链接文件,用命令:sudo

ln -s /usr/src/linux-headers-3.3.4/Kbuild

build重新建立build链接文件。这样你就可以删除很站空间的编译内核文件夹,而且kernel-headers能使用。至此,你可以卸载系统自带的内核,使用自己编译的内核,畅游ubuntu

12.04世界!

总结:在前人的基础上,使用make-kpkg简化编译过程;通过手动重建build文件,解决删除编译内核文件夹带来的kernel-headers不能用的问题。用这个编译方法,你还可以把自己编译的安装包应用于debian/ubuntu类的衍生系统,前提是在配置时要选择更多的驱动程序,才能支持更多的硬件。

附件:

a4c26d1e5885305701be709a3d33442f.png

原文链接:http://forum.ubuntu.org.cn/viewtopic.php?t=373067

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值