当前位置:首页 » 《关注互联网》 » 正文

ubuntu18.04内核升级(使用编译的方法达到内核6.1.62)

6 人参与  2024年04月04日 13:25  分类 : 《关注互联网》  评论

点击全文阅读



自己的电脑是22年买的thinkbook16+,乘着今年双11给它加了一个外接显卡,在windows上能成功识别并使用,但是在ubuntu18.04上因为无法识别出雷电接口,所以无法使用。后来换成20.04的版本竟然又可以,比较两者的区别后,初步推测是内核版本稍低,遂尝试升级内核,已验证自己的猜测。

安装前的说明:

ubuntu18.04自带的内核版本是5.4.0,经过多方查证,并实际测试发现可以在官网下载的最高内核版本(编译不报错的情况)是5.9的,感谢这位好兄弟的资料。但可惜经测试5.9雷电接口也不识别,只能看向6.x的内核

Ubuntu 18.04 系统,显卡、无线、有线网卡驱动丢失,重装系统,升级内核,HDMI输出,等等工作记录_ubuntu更新网卡驱动_Analeptic的博客-CSDN博客

5.9以上的内核无法在Index of /mainline上,通过下载几个.deb文件,实现对内核的编译升级,(会出现报错如libc6版本低了,不匹配),只能使用编译的方法。

1.查看当前ubuntu的内核版本

uname -r

 ok,确定我们当前ubuntu的内核是5.4.0,接下来去选择内核版本。

2.选择内核版本

前往The Linux Kernel Archives,选择内核版本。

2.1对想升级的内核版本无要求

不听不管,直接点上面的黄色下载按钮,坐等下好

2.2对内核版本有要求

看到tarball了没,点他,然后坐等下好

注意:在相关版本前面不是还有mainline、stable、longterm这些前缀嘛,我认为选stable更好,因为这个版本相对较新,而且较为稳定。

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 libidn11

4.解压

对刚刚下载好的安装包进行解压。如,我下载的是6.1.62,所以是

 tar -xavf linux-6.1.62.tar.xz

5.开始安装

5.1将解压后的文件移动到/usr/src下

sudo mv linux-6.1.62/ /usr/src/cd /usr/src/linux-6.1.62/

5.2安装前的准备

将源码目录净化一下,以防万一

sudo make mrpropersudo make clean

5.3配置内核

sudo make menuconfig

(可能会出现报错,看后面的相关报错的解决方法)

会出现以上的窗口,有需要的可以自己进行配置。我们作为小白,什么都别动,直接选择Exit按回车就行

5.4开始编译安装

sudo make -j16

开始漫长的编译,这段时间去做做其他事吧

注意:建议多执行几次make,这样可以让你看见出现报错的地方。其中我也遇到了一些,解决方法看后面

成功的标志:出现kernel什么ready (#2)   

接着执行

sudo make -j16 INSTALL_MOD_STRIP=1 modules_installsudo make install

这里解释一下加入INSTALL_MOD_STRIP=1的原因。如果不加,编译同样可以成功,grub上也会出现编译好的内核选项,但当你重启选择新编译的内核版本时,可能会出现out of memory,从而导致无法进入系统。

6.更新grub

sudo update-grub

可以看到,我们编译的内核已经在grub中了,然后重启,选择自己新编译的内核。

7.结果

uname -r

可以看到现在我们的内核是6.1.62了,再看看我们需要的雷电接口

ok,也有了。让我们开始接入外界显卡,好好爽爽吧!

报错汇总:

报错1:Your display is too small to run Menuconfig!  It must be at least 19 lines by 80 columns.

解决方法:

把窗口拉大(终端)

报错2:No rule to make target ‘canonical-revoked-certs.pem‘

解决方法:

sudo scripts/config --disable SYSTEM_REVOCATION_KEYS

报错3:BTF: .tmp_vmlinux.btf: pahole (pahole) is not available Failed to generate BTF for vmlinux Try to disable CONFIG_DEBUG_INFO_BTF

解决方法:

sudo apt-get install dwarves

报错4:/bin/sh: 1: lz4c: not found
arch/x86/boot/compressed/Makefile:144: recipe for target 'arch/x86/boot/compressed/vmlinux.bin.lz4' failed

解决方法:

sudo apt-get updatesudo apt-get install liblz4-tool 

报错5:内核编译成功后,重启,选择新内核,出现out of memory

解决方法:

将sudo make modules_install改为sudo make -j16 INSTALL_MOD_STRIP=1 modules_install

11.15 更新:编译更新前的准备(十分重要!!!)

之后,我再次重装系统后,按照上面的步骤编译更新内核,虽然内核是成功升级了(这次内核的版本是6.6.1),但thunderbolt接口还是不识别!!!

后来通过我的测试,发现在编译安装前需要用dpkg -i *.deb的方式将内核升级至5.9版本(我选择的是5.9.16)

1)去Index of /mainline 选择将要下载的内核版本(我选的是5.9.16)

2)使用wget下载4个.deb文件

wget linux-headers-5.9.16-050916_5.9.16-050916.202012211331_all.debwget linux-headers-5.9.16-050916-generic_5.9.16-050916.202012211331_amd64.debwget linux-image-unsigned-5.9.16-050916-generic_5.9.16-050916.202012211331_amd64.debwget linux-modules-5.9.16-050916-generic_5.9.16-050916.202012211331_amd64.deb

3)运行

sudo dpkg -i *.deb

然后等待完成,完成后重启进行检查

等内核更新至5.9后,再使用编译的方法更新至6.6,发现thunderbolt接口可以识别了


点击全文阅读


本文链接:http://zhangshiyu.com/post/90451.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1