linux——编译内核(ubuntu18.04+linux-5.6.4)

废话补多少,直接开始
这里提醒一句,如果是用虚拟机的话,可以先快照保存一下当前状态,防止编译失败,可以直接倒回到当前状态

linux——编译内核(ubuntu18.04+linux-5.6.4)

    • 1. 下载Linux源代码
    • 2.保存一下引导文件
    • 3.安装依赖包
    • 4.解压缩源代码
    • 5.清理以前编译内核的中间残留文件
    • 6.配置内核信息
    • 7.编译内核
    • 8.编译模块
    • 9.把内核映像和System.map拷贝到/boot/下
    • 10.修改grub配置文件
    • 11.重启,启动grub就可以看到自己新的内核

1. 下载Linux源代码

linux内核官方网站:www.kernel.org
(下载稳定版本的,我当时下载的是5.6.4,我后面的操作都是基于5.6.4做的,自己记得对应自己下载的版本。这时我后来截的图,所以版本不一样)
linux——编译内核(ubuntu18.04+linux-5.6.4)_第1张图片

2.保存一下引导文件

/boot/grub/grub.cfg 保存一下

3.安装依赖包

sudo apt-get install libncurses5-dev openssl libssl-dev
sudo apt-get install build-essential openssl
sudo apt-get install pkg-config
sudo apt-get install libc6-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install libelf-dev
sudo apt-get install zlibc minizip
sudo apt-get install libidn11-dev libidnll

4.解压缩源代码

到下载的目录解压缩

tar -xavf linux-5.6.4.tar.xz -C /usr/src 

以下命令除特殊提到,都是在/usr/src/linux-5.6.4目录下

5.清理以前编译内核的中间残留文件

sudo su   //进入root模式
make mrproper   

6.配置内核信息

编译内核之前要选配置信息,但配置信息不太好选,所以用当前内核的配置信息

cp /boot/config-`uname -r` ./.config 
make menuconfig    //对内核选项进行配置

//load->(.config)OK->SAVE->(.configbak)OK->EXIT
linux——编译内核(ubuntu18.04+linux-5.6.4)_第2张图片
linux——编译内核(ubuntu18.04+linux-5.6.4)_第3张图片
linux——编译内核(ubuntu18.04+linux-5.6.4)_第4张图片
linux——编译内核(ubuntu18.04+linux-5.6.4)_第5张图片

7.编译内核

make clean   //因为之前运行过make mrproper命令,所以可有可无
make bzImage   //编译内核

检验当前步骤是否成功看/usr/src/linux-5.6.4/arch/x86/boot/bzImage是否生成
linux——编译内核(ubuntu18.04+linux-5.6.4)_第6张图片

8.编译模块

make modules    //编译模块
make INSTALL_MOD_STRIPE=1 modules_install  //安装模块
mkinitramfs /lib/modules/5.6.4 -o /boot/initrd.img-5.6.4-generic  //基于刚才编译的模块,做一个内存的根文件系统(5.6.4是我编译的内核版本)

检验编译安装模块是否成功,此书/lib/modules/下应该生成一个KERNEL_VERSION(5.6.4)目录
linux——编译内核(ubuntu18.04+linux-5.6.4)_第7张图片

到此为止,构建内核完成

9.把内核映像和System.map拷贝到/boot/下

cp /usr/src/linux-5.6.4/arch/x86/boot/bzImage /boot/vmlinuz-5.6.4-generic  
cp /usr/src/linux-5.6.4/System.map  /boot/System.map-5.6.4
ln -s /boot/System.map-5.6.4 /boot/System.map

10.修改grub配置文件

cd /boot/grub
chmod 777 grub.cfg
update-grub2

11.重启,启动grub就可以看到自己新的内核

uname -r

在这里插入图片描述

你可能感兴趣的:(Linux,linux,内核,经验分享)