• Ubuntu安装hwe内核解决硬件太新的问题


    概要

    有些时候安装Ubuntu的时候如果你自己的硬件太新可能会导致部分驱动不支持,比如13代i9搭配Z790M主板,可能导致有些硬件不能工作。我去硬件官网找驱动,结果发现官方仅提供Windows10和Windows11版本驱动顿时人都傻了。但是天无绝人之路,如果出现这种问题也不是完全没有办法,主要还是看Linux内核的适配情况,原则上Intel和AMD发布新CPU和芯片组之后,Linux内核组也会适时跟进的。

    今天的主角就是hwe内核(hardware enablement kernel)。一般安装的Ubuntu都是初始内核,不能很好地支持新硬件,导致诸如内置网卡、声卡等不工作。我们可以通过一些方法安装hwe内核,从而最好地支持新硬件的运行。

    今天的文章基于Ubuntu-22.04,同时提供18.04和20.04的相关操作方法,其它Linux发行版请自行研究。

    整体架构流程

    首先,确认你是不是需要hwe内核,如果你出现了一些驱动问题:网卡或声卡不工作,那你可以安装hwe内核碰碰运气(非100%支持,具体可以看对应内核的change log)。
    其次,如果你的Ubuntu联网了,那就会很简单,有网络就会方便很多。如果没网络也可以用其他方法替代,这个后面说。
    最后,备份数据,防止出现意外!

    技术名词解释

    • kernel
      内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分。
      在Ubuntu中,内核时必不可少的。
    • hwe
      从上游社区及时引入 Ubuntu LTS 版本并测试调整,形成适应新硬件的、功能更强的新内核,即“硬件启用(HWE,HardWare Enablement)内核”。
    • 驱动
      驱动,计算机软件术语,是指驱动计算机里软件的程序。驱动程序全称设备驱动程序,是添加到操作系统中的特殊程序,其中包含有关硬件设备的信息。此信息能够使计算机与相应的设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。

    技术细节

    1.查看当前内核

    这里只供演示,因为我已经安装hwe内核了(6.2.0-xx-generic),所以看到的是hwe内核,如果你没有安装hwe内核,一般看到的都是版本稍微低一些的内核(5.15.x-xxx-generic)。

    uname -a
    Linux anold-Lenovo-TianYi-100-14IBD 6.2.0-32-generic #32~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 18 10:40:13 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
    
    • 1
    • 2

    2.网卡正常工作

    网络正常的话说明网卡驱动正常工作了,这是最理想的情况,我还碰到过网卡不能正常工作的情况,那个麻烦点。

    apt-cache search linux-generic
    linux-generic-hwe-20.04 - Complete Generic Linux kernel and headers (dummy transitional package)
    linux-generic-hwe-20.04-edge - Complete Generic Linux kernel and headers (dummy transitional package)
    linux-generic-hwe-22.04 - Complete Generic Linux kernel and headers
    linux-generic-hwe-22.04-edge - Complete Generic Linux kernel and headers
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    我是Ubuntu-22.04的版本,我选择linux-generic-hwe-22.04。一定要看清楚你的Ubuntu版本,不要安装错了。

    sudo apt update
    sudo apt install linux-generic-hwe-22.04
    
    • 1
    • 2

    不需要多余的操作,apt会自动安装好一切并切换到新内核。切记,需要一段时间,不要打断流程,否则可能导致系统崩溃。

    建议使用显示器直连,SSH可能断掉。

    3.自带网卡不能正常工作

    这个时候你有两种方法,第一种就是使用外置网卡(推荐USB网卡);第二种就是手动下载hwe内核安装。hwe内核在Ubuntu官网可以找到(deb包),安装方式也简单,这里不讨论。

    4.其它版本的hwe内核

    这里补充说下Ubuntu-18.04和Ubuntu-20.04,正好我手上也有这两台设备,虽然硬件不算新。

    1.Ubuntu-18.04

    这个版本的Ubuntu应该是目前市面上用的最多的版本了,所以才专门说一下。

    apt-cache search linux-generic
    linux-generic-hwe-18.04 - Complete Generic Linux kernel and headers
    linux-generic-hwe-18.04-edge - Complete Generic Linux kernel and headers
    
    • 1
    • 2
    • 3

    老样子,安装linux-generic-hwe-18.04

    sudo apt update
    sudo apt install linux-generic-hwe-18.04
    
    • 1
    • 2

    由于Ubuntu-18.04出来的很早,那个时候还没出I9 13900K处理器和Z790这种芯片组,所以我没有遇到过驱动问题。如果你确实遇到了,请安装试一下,如果不行就把操作系统版本升上去!

    2.Ubuntu-20.04

    目前市面上Ubuntu-20.04正逐步取代18.04成为主流,这里也重点说一下。

    uname -a
    Linux insigma 5.15.0-83-generic #92~20.04.1-Ubuntu SMP Mon Aug 21 14:00:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
    apt-cache search linux-generic
    linux-generic-hwe-20.04 - Complete Generic Linux kernel and headers
    linux-image-unsigned-5.4.0-26-generic - Linux kernel image for version 5.4.0 on 64 bit x86 SMP
    linux-modules-5.4.0-26-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
    linux-modules-extra-5.4.0-26-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
    linux-generic-hwe-20.04-edge - Complete Generic Linux kernel and headers
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    老样子,安装linux-generic-hwe-20.04

    sudo apt update
    sudo apt install linux-generic-hwe-20.04
    
    • 1
    • 2

    5.备份+重启

    再重复一遍:操作内核有巨大风险,请备份数据,丢失不容易找回!

    小结

    1、我试过i9 13900K+Z790M可以,比它旧的设备应该都可以。
    2、不建议使用太新的设备,一旦驱动出问题处理起来很麻烦。因为Linux可怜的占有量+免费开源的模式,导致生态比Windows差了十几条街。最主要的问题是各硬件厂商出于自身成本的考虑,很多根本不提供Linux版本的驱动,哪怕像我这样有一定动手能力的人想源代码编译也做不到,可以说是巧妇难为无米之炊了!
    3、动内核需谨慎,数据无价,注意备份!

  • 相关阅读:
    WordPress建站入门教程:小皮面板phpstudy如何安装PHP和切换php版本?
    前端excel写入信息并下载
    Java基础:集合类之ArrayList、HashMap简介
    PyTorch搭建AlexNet网络模型
    不止于观测|阿里云可观测套件正式发布
    MySQL insert 死锁问题记录
    uniapp——自定义组件插槽及使用
    个推微服务网关架构实践详解
    Django项目引入NPM和gulp管理前端资源
    springboot利用redis过期事件处理过期订单
  • 原文地址:https://blog.csdn.net/jiexijihe945/article/details/133314540