手动下载和安装内核是一个高级操作,需要从官方源或其他可信源手动下载和安装内核
(1)选择合适的内核版本,可以访问官方操作系统网站或内核开发者网站,以获取可用的内核版本信息。
(2)下载内核源代码: 一旦确定了要安装的内核版本,可以通过以下方式之一获取内核源代码:
官方操作系统网站提供的下载链接
内核开发者网站的代码仓库或下载链接
wget https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.x.x.tar.gz
1.解压源码包
tar -xzvf linux-5.x.x.tar.gz
2.配置内核运行
进入解压后的内核源代码目录,并使用现有的内核配置文件作为基础配置。可以复制系统中 /boot/config-$(uname -r) 文件到内核源代码目录,并命名为 .config(可选)
cp /boot/config-$(uname -r) /path/to/linux-5.x.x/.config
3.在内核源代码目录下执行
make menuconfig
点击一下load ,再exit
4.编辑内核
make -j 8
5.安装内核模块
make modules_install
6.安装内核
make -j 8 install
7.重启验证
reeboot
uname -r
运行make -j 时,可能会出现版本过低的错误
解决办法:安装更高版本GCC
[root@localhost ~]#wget http://buildlogs-seed.centos.org/c7-devtoolset-10.x86_64/cbs/devtoolset-10-runtime-10.0-0.el7.x86_64.rpm --no-check-certificate
[root@localhost ~]#yum install devtoolset-10-runtime-10.0-0.el7.x86_64.rpm -y
[root@localhost ~]#wget http://buildlogs-seed.centos.org/c7-devtoolset-10.x86_64/cbs/devtoolset-10-binutils-2.35-5.el7.2.x86_64.rpm --no-check-certificate
[root@localhost ~]#yum install devtoolset-10-binutils-2.35-5.el7.2.x86_64.rpm -y
[root@localhost ~]#wget http://buildlogs-seed.centos.org/c7-devtoolset-10.x86_64/cbs/devtoolset-10-gcc-10.2.1-11.1.el7.x86_64.rpm --no-check-certificate
[root@localhost ~]#yum install devtoolset-10-gcc-10.2.1-11.1.el7.x86_64.rpm -y
[root@localhost ~]#wget http://buildlogs-seed.centos.org/c7-devtoolset-10.x86_64/cbs/devtoolset-10-libstdc++-devel-10.2.1-11.1.el7.x86_64.rpm --no-check-certificate
[root@localhost ~]#yum install devtoolset-10-libstdc++-devel-10.2.1-11.1.el7.x86_64.rpm -y
[root@localhost ~]#wget http://buildlogs-seed.centos.org/c7-devtoolset-10.x86_64/cbs/devtoolset-10-gcc-c++-10.2.1-11.1.el7.x86_64.rpm --no-check-certificate
[root@localhost ~]#yum install devtoolset-10-gcc-c++-10.2.1-11.1.el7.x86_64.rpm -y
[root@localhost localhost-6.0.16]#scl enable devtoolset-10 bash
make modules_install
报错1:
arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support
sed: can't read modules.order: No such file or directory
make: *** [Makefile:1479: __modinst_pre] Error 2
解决方案:
这个报错原因是 `CONFIG_X86_X32 enabled but no binutils support`,选择重新编译binutils或者禁用CONFIG_X86_X32,我选择禁用,编辑.config文件,将CONFIG_X86_X32=y改为CONFIG_X86_X32=n。重新运行`make -j4`,不再报此处错误。
报错2:
make[1]: *** No rule to make target 'debian/canonical-certs.pem', needed by 'certs/x509_certificate_list'. Stop.
解决方案:
编辑.config文件,修改CONFIG_SYSTEM_TRUSTED_KEYS
修改CONFIG_SYSTEM_TRUSTED_KEYS,将其赋空值。
修改前:原变量有值
CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
修改后:将该变量赋空值,将该项原有内容删掉即可,如下:
CONFIG_SYSTEM_TRUSTED_KEYS=""
修改CONFIG_SYSTEM_REVOCATION_KEYS(可选),如果CONFIG_SYSTEM_REVOCATION_KEYS的值不为空的话,也将其赋空值。
修改前:原变量有值
CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"
修改后:将该变量赋空值
CONFIG_SYSTEM_REVOCATION_KEYS=""