设为首页 收藏本站
查看: 910|回复: 0

[经验分享] Ubuntu 14.04.2安装内核源码树以及编译

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-6-27 10:19:33 | 显示全部楼层 |阅读模式
一、安装内核源码树

方法1:使用dpkg-dev + apt-get source安装内核源码树
        在下载内核源码之前,先安装dpkg-dev,其中包含你在Debian上生成源代码时需要的开发工具套
件。不仅如此,dpkg-dev中还包含在用来解压Debian源码包并自动打补丁的工具dpgk-source。
1
sudo apt-get install dpkg-dev



然后,运行以下命令下载完整的内核源码:
1
apt-get source linux-image-$(uname -r)



伴随着完整内核源码(linux_x.x.xx.orig.tar.xz)的还有一些可用的内核补丁(linux_x.xx.x-xx.xxx.diff.gz)
和源码控制文件(linux_x.xx.x-xx.xxx.dsc),这些都将被下载并存储到当前目录。在.dsc文件中会指出
如何给内核源码打补丁。
当下载完成,以上的命令将会自动调用工具dpkg-source将下载的内核源码解压到当前的目录中,与此
同时根据.dsc文件来下补丁。
最终完整的内核源码树将会以"linux-x.xx.x"的形式呈现在当前目录中。
wKiom1dtXsaS1gD3AABxlm11s0w844.jpg
上图中的linux-3.13.0为打过补丁后的内核源码树。

方法2:使用git安装内核源码树
        首先安装git(用于从git仓库获取源码)和lsb_release(用于查询Ubuntu的codename):
1
2
sudo apt-get install git
sudo apt-get install lsb_release



然后下载内核源码树到本地:
1
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-$(lsb_release -c | cut -f2).git



wKioL1dvV2WCJhW8AADZ2Tajb-0728.jpg
这个git仓库的速度不是很给力,还是方法1的比较快,至少我这里这样的。
最终会产生一个名为ubuntu-$(lsb_release -c)的目录,在我这里是ubuntu-trusty。

二、编译内核源码树

(1) 安装编译内核必须的开发包
1
sudo apt-get build-dep linux-image-$(uname -r)



(2) 内核的配置、编译。
       我选择使用git下载的代码来编译,理由是我的代码变动可以通过git反映出来。
切换到目录ubuntu-trusty,依次运行下面的命令:
1
2
3
cp /boot/config-3.13.0-24-generic .config # 拷贝内核当前的配置文件
sudo make oldconfig # 在内核当前配置文件上做简单修改(一些不同于当前配置或没有的配置项)
sudo make -j8 # -j8参数可以加速编译,数字根据你自己电脑cpu的情况做出修改



完成编译后查看x86架构的boot目录以及源码根目录新生成的(部分)文件:
wKioL1dvkrvClwUzAAIRfvpHMLk805.jpg

wKiom1dvktDj0TLLAAIpk_vXNN8703.jpg

(3) 内核模块的安装、内核的安装,grub启动菜单的配置
1
2
sudo make modules_install # 安装内核模块
sudo make install # 安装内核:内核映像文件、内核符号表、内核配置文件、grub启动配置



完成内核的安装后可查看/boot/的文件列表,红色框选中的文件是新内核相关文件:
wKioL1dvkt_jszgrAAEZJ3GCa9g614.jpg
      在重启之前,在Ubuntu 14.04.2下需要对grub做简单配置,因为在sudo make install更新grub配
置时,默认选择了新安装的内核,而且不显示grub菜单项,这意味着你无法选择启动的内核。此时,只
需要对grub配置作简单修改就好,如下图将配置项GRUB_HIDDEN_TIMEOUT注释掉
wKiom1dvVRfDjEhZAACYZK7rUIs306.jpg
接着运行命令 sudo update-grub 更新grub的配置文件/boot/grub/grub.cfg,然后重启系统。

(4) 重启系统:
1
sudo reboot



(5) 重启系统后可查看当前的内核版本是不是自己编译的新的内核:
wKioL1dvWRSw3ciNAAASq7Cz6bE440.jpg
嗯,没错,这就是我花了1个小时40分钟左右(大家的机器应该比我的速度更快,我用的一台公司老
的笔记本)编译出的内核。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-235883-1-1.html 上篇帖子: NFS 安装与配置 下篇帖子: Linux下添加删除swap空间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表