给ubuntu换内核
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/
下载内核源码
有两种方式,一种方式是直接从官网:https://www.kernel.org/直接下载,另一种方式是通过git进行下载。
首先,在官网内核版本分为三种:
- mainline:主线版本,最新的
- stable:稳定版本
- longterm:长期支持版本
对于内核版本后面有个rc的,表示这个版本开始不会往里面添加新的功能和内容,只会在其基础上解决bug(有些驱动除外)。
如果你搞不懂这几个版本区别,就下载一个stable版本准没错。
现在我们着重说说如何通过git进行下载内核源码:
没有安装git的先安装git,命令如下
sudo apt-get install git
之后新建一个目录用于存放获取的linux内核源码,进入到该目录下,执行如下命令来获取最新的linux内核版本
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
这样就可以直接把内核源码下载到所在目录下,很方便。
注:
如果需要下载的不是当前最新版本的内核,也可以通过git进行下载其他版本的内核源码,不过在下载其他版本的内核源码的前提是已经通过以上git命令下载过内核源码。
首先,当通过以上git命令下载好内核源码后,应该会有个linux-stable目录,先进入此目录中,然后执行如下命令查看其他内核源码版本列表
git branch -a
然后通过以下命令切换到其他内核源码版本的分支
git checkout 版本名称(在git branch中的列表中的名称)
这样就可以切换到其他版本的linux内核源码了。切换后就直接是目标版本的源码了,也就是说,当执行上面的命令时,git会把其他版本中内容不同的文件替换到本地上,就不用再重新下载一次内核源码了。
配置内核
下载完成后,通过如下命令可以将当前系统使用的内核配置文件复制到我们下载的最新内核源码目录中,我们要使用这个配置文件进行编译内核
cp /boot/config-x.xx.xxxx-generic 下载的源码目录/.config
如果需要修改配置,可通过
make menuconfig
进行修改配置,不过对于menuconfig,好像还会需要其他的库,我印象是ncurses库,如果需要则通过apt-get libncurses5-dev安装这个库即可。
注:
如果不想使用当前系统使用的配置文件,内核中也提供了不同平台默认的配置文件,这些配置文件放在:
内核源码目录/arch/目标平台类型/configs/
如果你编译的是arm版本的内核,那目标平台类型就是arm,如果编译的是x86版本的内核,目标平台类型就是x86。在这个目录里,那些默认的配置文件格式一般为XXXXX_defconfig,找到对应的默认配置后,使用命令将其放到内核源码目录下并改名为.config
cp XXXXX_defconfig 内核源码目录/.config
内核源码目录下的.config是内核编译的基础,其注明了哪些模块需要编译哪些模块不需要编译,又有哪些模块需要编译成模块(以模块进行加载,并不加入到内核镜像中),编译时就是按照里面的列表进行编译的。
编译内核
先安装必要的工具:
sudo apt-get install build-essential
在内核源码目录中依次执行以下命令:
make -jx(x是编译时使用的线程数量,如-j2或-j3等。使用线程能加快编译速度)
make modules_install (把安装modules到/lib/modules/目录中)
make bzImage (将内核编译成bzImage类型的内核)
make install (安装内核)
整个过程会比较久,我大概编译了2,3个小时(虚拟机只配了一个CPU。。。),在编译过程中有可能使用旧的配置文件会导致编译失败,这时可以使用内核源码中默认的配置文件试试。
make install帮我们做了引导所需要做的工作,基本上make install后重启就直接进入到最新的内核中了,当然,这部分工作我们也可以手动去做,接下来我们说说如何去做引导这部分所需要的工作。
第一步,我们要将编译完成的bzImage复制到/boot/中,并改个名字,比如我的内核版本是4.2.0-rc1,我执行的命令就是
cp 内核源码目录/arch/x86/boot/bzImage /boot/vmlinuz-4.2.-rc1
注意编译好的bzImage保存的位置是在内核源码目录/arch/目标平台类型/boot/中,我这里的目标平台类型是x86。
第二步,将内核源码目录下的System.map文件复制到/boot/中,同样需要改个名字:
cp 内核源码目录/System.map /boot/System.map-4.2.-rc1
第三步,生成新版本的initrd.img文件
cd /lib/modules/4.2.-rc1/
update-initramfs -c -k 4.2.-rc1
第四步,让grub引导自动查找新内核
update-grub
最后重启一下,选择自己的新内核进入就可以了,如果希望系统自动进入最新编译的内核,则需要修改grub的配置文件,其配置文件是/boot/grub/grub.cfg,修改此文件中的set default="X"(X是最新内核对应在grub中的编号)。
给ubuntu换内核的更多相关文章
- 删除ubuntu旧内核
ubuntu的内核经常升级,而老内核并不自动卸载.时间长了,就有一大堆内核垃圾,需要我们手动去清理. 先用uname -a 查看当前内核版本: xzc@xzc-HP-ProBook-4446s:~$ ...
- linux 解决Ubuntu编译内核uImage出现问题“mkimage” command not found - U-Boot images will not be built问题
解决Ubuntu编译内核uImage出现问题“mkimage” command not found - U-Boot images will not be built问题 http://www.lin ...
- Ubuntu 更换内核
Ubuntu 更换内核步骤: 下载内核源码,例如wget https://git.kernel.org/torvalds/t/linux-4.17-rc2.tar.gz 按照需要的环境,sudo ap ...
- ubuntu升级内核后vmware-player启动失败
在虚拟机软件中,vmware player是对硬件支持很好的,通过它可以很方便的使用网银.单片机开发等等工作.但是最近ubuntu每次升级内核后,vmware都会启动失败,提示:Before you ...
- ubuntu下内核源码树的建立
参考的博文: http://www.360doc.com/content/12/0604/12/8890849_215794364.shtml http://www.cnblogs.com/pd520 ...
- Ubuntu升级内核
看到微软开源.兼容.豁达,很高兴,今天研究一下Docker,查看Ubuntu内核版本,发现2.3有点低,不符合当前版本. 最低内核版本要求3.10. 升级Ubuntu内核. 首先 下载内核 网站htt ...
- windows7使用Source insight上远程修改ubuntu共享内核源码
由于本人阅读喜欢使用source insight.前段时间接触了linux核代码,而这份代码只能放在ubuntu服务器上编译,刚开始的时候是在windows上修改,完了之后再copy到服务器上去编译, ...
- Ubuntu 升级内核
1. 升级下 sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove 2 ...
- ubuntu 换源
经过自己一番折腾后,发现用这个方法换源最简单.直接. sudo vi /etc/apt/sources.list 把sources.list里面的内容全部替换为一下内容 deb http://mirr ...
随机推荐
- Neutron中插件与代理的总结
1.总结:
- OkHttpUtils简单的网络去解析使用
先添加依赖: implementation 'com.google.code.gson:gson:2.2.4' implementation 'com.zhy:okhttputils:2.0.0' 网 ...
- 章节七、2-Linked List
package introduction9; import java.util.ArrayList; import java.util.LinkedList; import java.util.Lis ...
- 章节三、5-Getters-Setters和this关键字part01
我们新建第一个Car类: package introduction; public class Car { //颜色 private String color; //生成商 private Strin ...
- (网页)a标签下载
HTML <a> download 属性 <a href="/images/myw3schoolimage.jpg" download="w3logo& ...
- 简易付弹窗问题FAQ
情景:按返回键后,使用快捷键弹到数据统计页面. 适用门店类型:单纯收银. 解决方案:操作步骤下 1. 系统修复-更多-快捷键设置 . 2. ...
- Scala隐式转换
package big.data.analyse.scala import java.io.File import scala.io.Source /** * 隐式转换 * Created by zh ...
- 高性能JavaScript模板引擎 artTemplate
下载地址 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...
- win10显示许可证即将过期,但在激活界面显示的仍是已激活问题解决
win10开机显示"许可证即将过期"怎么办? 很多win10用户在开机的时候遇见了"许可证即将过期"请转到设置种激活windows的问题,但是查询自己的win1 ...
- Sudoku 小项目
Sudoku 小项目 - 软工第二次作业 Part 1 · 项目相关 Github 地址: https://github.com/TheSkyFucker/Sudoku 项目的更多信息以及所有开发文档 ...