内核编译
0 必要软件下载
需要下载libncurses5-dev build-essential kernel-package
sudo apt-get install libncurses5-dev build-essential kernel-package
一般来说默认的下载源都是非常慢的,可以去百度一下ubuntu
换源,换成清华源或者阿里源。
1 下载内核
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/linux-3.18.24.tar.xz
2 解压缩并移动
tar -Jxvf linux-3.18.24.tar.xz -C /usr/src/
3 移动至上述目录
cd /usr/src/linux-3.18.24/
4 生成.config文件/内核功能选择
生成配置文件有两种办法:
- 直接复制当前内核的配置文件
- 自己生成内核的配置文件
复制当前
cp/boot/config-`uname-r` .config
自己生成
其实有比较多的方式,这边还是推荐make menuconfig
make menuconfig
接下来会出现一个界面,具体每个选项的含义可以参照CSDN或者ppt上面的说明,可以直接选在下方的save
来产生默认的配置。
5 make
编译内核
make clean bzImage modules
上述步骤大概会需要2-3小时。其中make可以加参数-j n
来加快编译。n可以是电脑线程个数(一般而言,英特尔的cpu一个核心可以开启两个线程,所以线程数是核心数的两倍)
编译模块:
make modules_install
进行内核安装
make install
6 更改grub
按照ppt或者网上的方式,至少在我ubuntu14.04修改是不起作用的。
建议使用如下方式进行更改:
查看可用内核,记下需要启动的内核的标号(从0开始标号的)
grep -Ei 'submenu|menuentry ' /boot/grub/grub.cfg | sed -re "s/(.? )'([^']+)'.*/\1 \2/"
大致的输出结果如下:
需要启动的是3.18.24
, 所以标号为4
更改默认启动内核
vi /etc/default/grub
将上述第六行改为"1>x"(x为之前内核的标号)
更新grub
update-grub
重启
reboot
重启之后通过uname -r
来查看内核版本。