ubuntu18.04 Linux内核升级

Linux内核升级

  • Ubuntu18.04安装PREEMPT_RT实时内核
  • 镜像站
  • 安装流程
  • 需要安装的依赖包
  • 内核编译过程
    • 找不到make命令的解决方法 sudo: make: command not found
    • 编译 Linux 内核报错 ( /bin/sh: 1: gcc: not found scripts/Makefile.host:95: recipe for target 'scripts/basic/fixdep' failed )
    • 出现 Unable to find the ncurses package.解决办法
    • 出现`fatal error:` libelf.h: No such file or directory...`fatal error: `openssl/opensslv.h: No such file or directory解决办法
    • 编译内核重启出现:gave up waiting for root device
  • 重启后执行

Ubuntu18.04安装PREEMPT_RT实时内核

安装参考教程:https://www.it610.com/article/1495750252077056000.htm

镜像站

阿里云官方镜像站:http://mirrors.aliyun.com
网易开源镜像站:http://mirrors.163.com
清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn
浙江大学开源软件镜像站:mirror.zju.edu.cn

查看Ubuntu内核,本人的Ubuntu18.04的内核版本是5.4.0-42-generic,更换镜像源(也可忽略)

uname -a
sudo apt install openssh-server openssh-client
sudo apt install openssh-server   #Y
sudo vi /etc/apt/sources.list   #删除全部,请选择您对于的 Ubuntu 版本,更换镜像源
sudo apt update
sudo apt install openssh-server  

安装流程

创建内核文件夹

mkdir Kernel

可以选择国内清华的镜像网站,国外的源下载速度特别慢
linux内核网址:https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/,你可以在此找到与你想要的内核版本,本人选择下载 linux-5.15.55.tar.gz 版本
RT-PREEMPT patch:https://mirrors.tuna.tsinghua.edu.cn/kernel/projects/rt/
需要注意的是补丁与所下载的内核版本要一致,下载完内核和补丁后把文件移到创建的kernel目录下

(已帮下载完成了,需要点击链接:https://download.csdn.net/download/lqf123123/87433025 )

解压,进入到 linux 文件路径下

cd Kernel
tar -zxvf linux-5.15.55.tar.gz
gunzip patch-5.15.55-rt48.patch.gz
mv patch-5.15.55-rt48.patch linux-5.15.55  #将 patch 文件放到 linux-5.15.55文件夹里
cd linux- 5.15.55

执行打补丁

patch -p1 < patch-5.15.55-rt48.patch

需要安装的依赖包

sudo apt-get update
sudo apt-get install make
sudo apt-get install flex -y
sudo apt-get install bison -y
sudo apt-get install libncurses5-dev -y
sudo apt-get install libssl-dev -y
sudo apt-get install libelf-dev -y

内核编译过程

# sudo make clean   #可忽视这一步 (清空 或者用 sudo make mrproper)

sudo cp /boot/config-5.4.0-48-generic .config   #备份,以防修改
sudo make menuconfig 
#general setup -> Timers subsytem->Timer tick handing -> Full dynticks system (选择这项)

#电脑有网卡的要执行下面这项,将 " M " 改为" * ",如果是软路由跳过忽略
#(igc.i255: Device Drivers-> Network device support-> Ethernet driver support-> [*] Intel(R) Ethernet Controller I225-LM/I225-V support)

sudo vi .config    #CONFIG_SYSTEM_TRUSTED_KEYS=""
sudo scripts/config --disable DEBUG_INFO  # 去除DEBUG信息
sudo make -j8  #或 sudo make -j16,根据自己的电脑情况选择编译速度
sudo make -j8 install
sudo make -j8 modules_install

sudo make modules_install
sudo make install
sudo reboot

sudo make menuconfig

#general setup -> Timers subsytem->Timer tick handing -> Full dynticks system 

电脑有网卡的要执行下面这项,将 " M " 改为" * ",如果是软路由忽略
#(igc.i255: Device Drivers->Network device support->Ethernet driver support->[*] Intel(R) Ethernet Controller I225-LM/I225-V support)

找不到make命令的解决方法 sudo: make: command not found

执行如下两个命令:

sudo apt-get update
sudo apt-get install make

编译 Linux 内核报错 ( /bin/sh: 1: gcc: not found scripts/Makefile.host:95: recipe for target ‘scripts/basic/fixdep’ failed )

执行如下两个命令:

sudo apt-get install flex    #Y
sudo apt-get install bison   #Y

出现 Unable to find the ncurses package.解决办法

执行如下命令:

sudo apt-get install libncurses5-dev   #Y

sudo make -j8

出现fatal error: libelf.h: No such file or directory…fatal error: openssl/opensslv.h: No such file or directory解决办法

执行如下两个命令:

sudo apt-get install libssl-dev   #Y
sudo apt-get install libelf-dev   #Y

报错

arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support
sh ./arch/x86/boot/install.sh 5.15.55-rt48 \
	arch/x86/boot/bzImage System.map "/boot"

 *** Missing file: arch/x86/boot/bzImage
 *** You need to run "make" before "make install".

arch/x86/Makefile:266: recipe for target 'install' failed
make: *** [install] Error 1

执行命令:

sudo make bzImage

错误: make[1]: *** No rule to make target 'debian/canonical-revoked-certs.pem', needed by 'certs/x509_revocation_list'. Stop.
执行如下命令:

sudo vi .config 
*修改前:原变量有值
CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
*修改后:将该变量赋空值
# 将该项原有内容删掉即可,如下
CONFIG_SYSTEM_TRUSTED_KEYS=""

sudo make -j8 install

可能遇到问题,也可能不会出现
make[1]: *** No rule to make target 'debian/canonical-revoked-certs.pem', needed by 'certs/x509_revocation_list'. Stop. make: *** [Makefile:1822: certs] Error 2

解决方法:(如果是在Ubuntu中,最好也将 CONFIG_SYSTEM_REVOCATION_KEYS 置空)

查找方法:sudo vi .config,然后采用"/string"查找具体的条目

*修改前:原变量有值
CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-certs.pem"
*修改后:将该变量赋空值
# 将该项原有内容删掉即可,如下
CONFIG_SYSTEM_REVOCATION_KEYS=""

编译内核重启出现:gave up waiting for root device

执行如下两个命令:

sudo make modules_install
sudo make install

看个人情况,需要安装依赖

#sudo make -j8 #安装相关依赖 https://blog.csdn.net/qq_37437983/article/details/108586309


重启后执行

uname -a

此时发现内核已经升级成功,本人多次安装所积累的经验,内核安装升级的友友点个赞或是点个赞关注呗!

你可能感兴趣的:(Linux,linux,ubuntu)