当前位置: 代码迷 >> 综合 >> Centos8 or RHEL8 编译安装kernel5.9.1,编译成rpm格式
  详细解决方案

Centos8 or RHEL8 编译安装kernel5.9.1,编译成rpm格式

热度:60   发布时间:2024-03-07 15:04:31.0

前言:

换了电脑,系统默认是win10,作为linux爱好者,怎么能容忍windows躺在我的硬盘里面,所以就果断换了linux(Centos8/RHEL8),但是换了之后问题多多:

      1、没有网卡驱动

      2、没有显卡驱动

安装系统这种文章太多,不值得写,但是国内我没有找到内核编译并且打包成rpm的,所以就自己动手写一下了。打包成rpm的好处就是可以使用dnf进行包管理,不用做过多的干涉。便于安装和卸载。重新编译内核安装之后,完美解决网卡和显卡驱动的问题。

1、创建用户:

创建单独的用户空间,以便于处理垃圾文件

useradd kerbuild

2、下载内核:

#切换到刚刚创建的用户环境su - kerbuild#开始下载内核,当然你可以使用wget进行下载。axel https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz#由于国内下载比较慢,所以使用多线程下载工具axel。#解压内核文件:tar -xvf linux-5.9.1.tar.xz 
cd linux-5.9.1

3、安装必须的包

dnf install ncurses-devel make gcc bc openssl-devel elfutils-libelf-dev rpm-build flex bison screen 
#安装rpm开发环境 
dnf groupinstall 'RPM Development Tools' 
#安装开发环境 
dnf groupinstall 'Development Tools' 
#当然可能安装过程中你还会缺少,那就自行解决

4、拷贝当前内核配置文件

# 查看当前正在使用的内核 
uname -r 
#列出内核配置文件 
ls /boot/config-*#找到你正在使用的那个内核配置文件#拷贝配置文件 
cp -v /boot/config-4.18.0-193.28.1.el8_2.x86_64 .config

5、Make menuconfig

#打开之后直接保存即可#执行以下命令配置内核,一般来说不会有问题,如果提示有问题,那就按照提示解决就行 
make menuconfig 
#打开配置对话框之后,直接按方向键右,找到<Save>之后回车,保存配置文件即可,保存后找到<Exit>直接退出就行。

6、修改.config配置文件

vim .config 
#1、 搜索:pem 找到CONFIG_SYSTEM_TRUSTED_KEYS 配置项将其置为空,这个是一个安全问题,需要修改回默认项。
#2、 搜索:CONFIG_DEBUG_INFO_BTF 改为n 
#3、修改后为: CONFIG_SYSTEM_TRUSTED_KEYS="" CONFIG_DEBUG_INFO_BTF=n

7、编译rpm

make -j `cat /proc/cpuinfo | grep processor| wc -l` rpm-pkg 
#-j 后面是你的cpu核心数

 

8、安装

#等待内核编译完成后会输出rpm所在的具体位置 
dnf install kernel-5.9.1-1.x86_64.rpm kernel-headers-5.9.1-1.x86_64.rpm kernel-devel-5.9.1-1.x86_64.rpm

9、安装nvidia驱动

需要注意的是,下载最新的驱动,并且如果之前安装过的话,要先卸载。由于这种文章太多,大家自己找找就行。

9.1,驱动卸载

#1、切换到l3 
init3 
#2、卸载 root用户运行以下命令就可以卸载 
nvidia-uninstall