Ubuntu内核编译

环境:ubuntu 16.04 LTS

因为很多操作都需要root权限,为了方便,所以切换到root权限模式进行下面的操作


查看内核版本

首先使用uname -r 查看本机内核
我的内核版本是4.8.0-36-generic


下载源码并解压

http://www.kernel.org/下载所需要内核源码
在这里我下载的是linux-4.9.1.tar.xz

首先在文件目录内使用指令

xz -d linux-4.9.1.tar.xz 
tar -xvf linux-4.9.1.tar.xz

对文件进行解压,从而得到文件夹linux-4.9.1


正式编译

为避免之后的过程出错先执行如下三条指令

sudo apt-get install libssl-dev
sudo apt-get install libncurses5-dev
sudo apt-get update

(1). 使用mv指令将生成的文件夹移动到/usr/src 目录下

`cd /usr/src`

(2). 输入 cp /boot/config- 后按下TAB键,系统会自动补全符合条件的文件名,然后继续输入.config

例: cp /boot/config-4.8.0-36-generic .conifg

(3). 进入之前解压的文件夹
例: cd /usr/src/linux-4.9.1

执行指令 make mrproper 执行此条指令清除之前的编译信息,若为首次编译则不需要进行

(4). 执行指令 make menuconfig 后弹出界面

Kernel
可以根据个人需求对其进行配置,在此不进行多余配置,
利用左右键依次进行选择 Save->OK->Exit->Exit
这里写图片描述
这里写图片描述

这里写图片描述
此过程会在 文件夹内生成一个.config 文件,文件不可见,可使用ls -a 查看

(4). 执行make -j10 此过程相当于分别执行了make bzlmagemake modules 两条指令
也可直接使用指令 make ,使用-j10的作用是为了加快编译速度, -j 后面的数字建议设置为CPU核心数目的2倍,不宜过大。
此过程大概需要执行2-3小时。

(5). 继续执行指令

make modules_install
make install

执行完这两条指令后,/boot 目录下会生成vmlinuz、initrd.img 等文件

(6). 执行 reboot 命令后重启,一般内核在重启后就更换成功了
执行uname -r 查看内核版本 ,我的内核版本此时已经成功换成4.9.1

注:(部分电脑重启后的内核版本可能并未改变,需要继续如下步骤

updata-grub 

同时检查/boot/grub/grub.cfg 的文件内容

找到如下代码片段

linux /boot/vmlinuz-4.9.1 root=UUID=3df047be-8376-49c0-8e2a-b5c6f7021fc6 ro  quiet splash $vt_handoff
initrd  /boot/initrd.img-4.9.1

将对应的版本号改为想优先启动的内核版本号,便可成功
如将启动时系统内核改为4.8.0-36-generic

linux /boot/vmlinuz-4.8.0-36-generic root=UUID=3df047be-8376-49c0-8e2a-b5c6f7021fc6 ro  quiet splash $vt_handoff
initrd  /boot/initrd.img-4.8.0-36-generic


感谢您的阅读,若文章存在问题欢迎指出

邮箱chpyue@foxmail.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值