操作系统-内核编译

内核编译

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来查看内核版本。

猜你喜欢

转载自blog.csdn.net/LordTech/article/details/109141920
今日推荐