linux 编译内核,换内核流程和方法

 

 

1:

先找一个合适版本的内核,下载,解压到系统中的任意一个目录

The Linux Kernel Archives

这个内核版本,如果要绝对稳定或者安全,那么最好是和当前系统的内核大、中版本相同,

如,

我的系统版本如果为 5.15.38

那么我最好是换成相近的系列,如 5.15.123

尽量别上 6

否则可能出问题

假设解压到的目录就为 ~/5.15.123/

 

2:

第一步内核下载完,之后,安装一系列的环境和支持库

具体来说是:

sudo apt-get update
sudo apt-get install make
sudo apt-get install gcc g++ libncurses5-dev build-essential kernel-package libssl-dev libc6-dev bin86 flex bison qttools5-dev libelf-dev

对,这就差不多了。

安装这些,可能要点时间,因为包太多,也很大,但是不怕,应该不会有错误。

 

3:

安装完环境和支持库

开始处理配置文件,

先进入内核代码目录,然后从当前系统拷贝一个配置文件到当前目录,目的是为了给编译过程一个和当前系统相近的配置

命令

cp -v /boot/config-$(uname -r) .config

拷贝过来之后,当前目录下就有了个配置文件,叫做 .config 是隐藏的。

确认方式 1 显示隐藏文件,2 用命令 ls -a .config 可以看到文件存在

之后输入

make menuconfig

用途是配置加载生成配置文件。

 界面挺好看的,但是其实我们都不用管,直接 exit 就行了

然后用 gedit 打开  .config 文件,手动修改配置,先修改如下

CONFIG_SYSTEM_TRUSTED_KEYS=''
CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE=2048
CONFIG_SYSTEM_REVOCATION_KEYS=""

这三条配置是系统证书相关的配置,其实我们用不着

然后关闭一条配置如下

CONFIG_DEBUG_INFO_BTF=n

如有则关,没有不加

最后注释调一条配置

#CONFIG_X86_X32=y

这里不用担心 x86 的注释了,是不是就只生成arm 了,其实 上面 x64 部分还开着呢

 

 

4:

配置文件生成了之后,这里剩下的就是开始编译了

命令如下

make -j$(nproc)

这是一条统一编译命令,编译所有内容,双核情况下,预计需要编译2小时,四核时间砍半,单核时间翻倍

如果不想一步到位,那么可以选择单独编译

make -j$(nproc) bzImage

make -j$(nproc) modules

我没单独编译过,所以,不知道效果

编译完成之后,能看到编译命令正确结束,我这编完了,看不到了

 

 

5:

最后,就是替换系统模块,

方法就两条命令

make modules_install

make install

两条命令都不能少,并且都需要 sudu 权限,就是 root 权限,否则行为未授权。

第一条安装驱动,第二条安装内核,

很多教程里面我看就只让执行第二条命令,结果引导时系统起不来,原因就是和内核匹配的驱动不在,

所以,先安装驱动,后安装内核

 

 

6:

前面五步都处理完,

直接 reboot 就好了,不会有问题,内核重编完成。

后续文件不要清理,自己改内核的时候直接改,然后直接重编,重装,没有问题。

中间文件太多,也没办法,

如果清理了的话,下次重编还要2 小时。

 

posted @ 2023-07-30 13:27  穷到底  阅读(565)  评论(0编辑  收藏  举报