新硬件装Ubuntu 20.04没网?换HWE内核解决网卡驱动问题
2026/9/7 11:08:49 网站建设 项目流程

事情得从一张网卡说起。2025年初我配了台新机器,CPU、主板、显卡都是当时的主流型号,盘算着装个Ubuntu 20.04当日常开发主力系统。为什么还装20.04?因为要跑PetaLinux和Zynq-7000的交叉编译工具链,还要兼容老项目的CUDA环境,20.04在工业软件兼容性上比22.04、24.04稳太多。结果系统装完开机,一切看着正常,唯独上不了网——ip link一敲,全网卡列表里只有孤零零的lo,物理网卡接口压根没出现。我第一反应是网线、交换机、路由器全查了一遍,全都正常,用Windows启动盘试过网卡也没问题。排到后面才意识到,问题出在Ubuntu 20.04自带的5.4内核根本不认识2025年的网卡硬件。

这篇内容适合所有在近两年的新硬件上装老版本Ubuntu、Debian系系统,遇到没有物理网卡接口、上不了网、只有回环地址的读者。我会把整个排查链路、三条修复路线、换内核之后的隐藏雷区全部写清楚。其中多数操作我亲自跑过,部分细节是针对常见硬件组合的通用解法,你可以照着操作。

1. 现象确认:系统起来了,但网卡根本没被内核认出来

很多人在这一步就卡住了,看到ip addr只有一个lo,第一反应是网线没插好或者交换机有问题。其实"只有lo"是一个含义非常明确的信号,先把这个信号解读清楚,后面才能走对方向。

1.1 什么叫"只有lo":看清网络接口的真实状态

Linux系统里lo是loopback接口,也就是本机回环,它永远存在,跟物理网卡没有任何关系。正常情况下,ip link show应该能看到类似enp3s0eth0eno1这样的物理接口,如果一台有有线网卡的机器在系统启动完成后,物理接口完全没有出现,那基本可以断定:内核没有为这片网卡创建网络设备。

我当时的输出是这样的:

$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

没有第二行,没有任何enp开头的接口。注意这里我特意用了ip link show而不是ifconfig -a,因为ifconfig是net-tools的老工具,在新系统上输出可能不完整。以ip命令的输出为准。

另一种情况是接口存在但是状态是DOWN,例如:

2: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN

这种情况的话问题往往在链路层——网线、交换机、对端设备——而不是驱动。NO-CARRIER表示物理层没有检测到载波信号,优先级最高的检查是网线接口和交换机端口。

1.2 排错前先做三次检查,别急着怪驱动

我在排查时给自己定了个规矩:先做三件最基础的检查,全部排除之后,才把矛头指向内核驱动。这三步分别是:

第一步,检查BIOS/UEFI里网卡是否被禁用。有些主板会在安全设置里默认关掉板载网卡,尤其是带双网卡的主板,可能只开了其中一张。重启进BIOS,找到Onboard LAN之类的选项,确认状态是Enabled

第二步,确认网卡硬件本身没有故障。用一个Live CD,比如Ubuntu 24.04的安装U盘,启动后看能不能识别网卡。Live系统自带较新的内核,如果它能看到物理接口并且能上网,说明硬件没问题,问题锁定在Ubuntu 20.04的老内核上。这一步非常关键,等于把问题范围从"A环节有问题"缩小到"这个特定内核有问题"。

第三步,检查网卡在PCI总线层面是否被系统看到。这一步用的是lspci命令:

$ lspci | grep -i ethernet 05:00.0 Ethernet controller: Intel Corporation Device 15f3 (rev 03)

注意看输出末尾,如果是Intel Corporation Device 15f3这种带Device字样的显示,而不是具体的型号名如I225-V,这就说明内核的PCI ID数据库里没有这条硬件信息。再用lspci -nnk看看有没有加载驱动:

$ lspci -nnk | grep -A3 -i ethernet 05:00.0 Ethernet controller [0200]: Intel Corporation Device [8086:15f3] (rev 03) Subsystem: Intel Corporation Device [8086:0000] Kernel driver in use: (none)

Kernel driver in use: (none)一行就是问题核心。PCI设备挂在总线上,但没有任何驱动模块认领它,结果就是系统知道这里有硬件,却无法为它创建网络接口。到这一步,问题从"断网"彻底变成了"缺驱动"——技术上完全确诊了。

2. 隔着四年的"硬件鸿沟":新网卡和老内核之间发生了什么

确诊之后,下一个问题是:为什么2025年的主流网卡,Ubuntu 20.04的内核就是不认?这里涉及Linux驱动模型和内核版本策略的基本原理,搞懂这部分,后面选修复路线时就不会瞎试。

2.1 内核靠PCI ID认网卡,新ID不在老驱动的名单里

Linux内核里的网卡驱动,比如Intel的igc、Realtek的r8169,都维护着一张设备ID列表。驱动加载时,内核会遍历PCI总线上的设备,取出设备的Vendor ID和Device ID,逐一匹配这张列表。匹配上了,就调用驱动的probe函数,初始化硬件并注册网络接口;匹配不上,驱动就假装没看见这个设备。

这里的关键点在于:内核源码里这张ID列表是跟内核版本走的。Ubuntu 20.04的初始内核是5.4,虽然20.04.x点版本会提供HWE(Hardware Enablement)内核,但如果你装的是最早的20.04原始镜像,或者安装时没选HWE内核,那系统用的就是5.4。而像Intel I225-V/I226-V这种2.5G网卡,需要igc驱动,igc是在Linux 5.10才合入主线的;Realtek RTL8125B虽然在5.9之后被r8169部分支持,但5.4版本里的r8169根本不包含这个PCI ID。这就是典型的"4年硬件鸿沟"——硬件厂商按2025年的节奏发布产品,内核社区按自己的节奏把支持代码合入主线,老版本操作系统当然赶不上。

有人可能会问:那为什么很多文档里说5.4内核也能用某款网卡?因为硬件厂商会在官网发布自己的驱动源码,比如Realtek的r8125驱动,可以手动编译安装到老内核上,而不是必须升级内核。这就引出了后面三条修复路线,各有适用场景。

2.2 20.04用户最容易撞上的几款网卡

我把近两年新机上最常见的网卡芯片跟内核支持的对应关系整理成了表格,方便对号入座。

网卡芯片常见品牌/主板主线内核支持情况5.4内核表现推荐修复路线
Intel I225-V/I226-V华硕/微星/技嘉板载2.5GLinux 5.10起内置igc不识别换内核或安装Intel网卡驱动包
Realtek RTL8125B/BG中低价位主板板载2.5GLinux 5.9起r8169部分支持不识别编译官方r8125驱动,或换内核
Realtek RTL8156(USB)USB外接2.5G网卡Linux 5.15+较稳定时好时坏换内核更省心
Intel X550/X710(服务器)服务器板载/PCIe已有ixgbe,但新固件需更新视具体型号优先更新firmware
Mellanox/Aquantia 5G-10G高端主板部分需要atlantic等驱动大概率不识别查厂家驱动,或换内核

看这个表格能发现一个规律:2025年还在卖的主板,有线网卡芯片几乎集中在Intel和Realtek两家,而且2.5G已经成了绝对主流。对于这两家芯片,"换内核"基本能解决90%的问题,因为主线内核的支持都非常成熟。

2.3 还有一个前置矛盾:没有网,就没法apt install

"缺驱动"的解法通常是用包管理器装驱动,比如apt install linux-modules-extra。问题来了:机器现在没有网络,包管理器根本连不上软件源,这成了"没网所以装不了驱动,装不了驱动所以没网"的死循环。

这是整篇文章里最让人抓狂的一步。我当时盯着终端里apt update的报错发呆了几分钟——Temporary failure resolving,心想我装个系统还能被网卡将一军?后来冷静下来,盘了一下手头能用的设备和资源,发现突破口其实不少。下一节我把当时实际验证过的几种"无网络连接通道"都列出来,优先级从高到低。

3. 在没有网络的前提下拉起一条"生命线"

先明确一个概念:这里说的"没有网络"指的是有线网卡没有驱动、物理接口不存在。但机器本身是可以上网的,只要绕过那张不认的板载网卡就行。我在这次实操中试了两条路,一条是手机USB网络共享,另一条是从别的电脑下载离线包,前者解决"立刻能上网"的问题,后者解决"要装的东西依赖关系复杂"的问题。

3.1 首推手机USB网络共享:把手机变成有线网卡

这个方法原理不复杂:Android手机通过USB线连接电脑后,在手机端开启"USB网络共享"(USB Tethering),手机会模拟出一个带网络功能的USB设备,Linux内核里的rndis_hostcdc_ether模块能识别它,并创建出一个usb0enp0s20f0u2之类的接口。Ubuntu 20.04的5.4内核默认编译了这些模块,所以不需要额外装驱动,插上就能用。

具体的操作顺序是这样的:

  1. 用USB线把手机和电脑连起来,手机选择"传输文件"或"仅充电"模式都可以,关键是别选"仅充电且关闭USB调试"之类会把USB数据通道断掉的方式。某些手机上,USB网络共享要求开启USB调试才会虚拟出RNDIS网卡,最好把开发者选项里的USB调试也打开。
  2. 手机进入"设置 → 网络与互联网 → 热点与网络共享",打开"USB网络共享"开关。
  3. 在Ubuntu终端里执行:
ip link show

这时应该能看到一个新出现的接口,名字通常是usb0enp0s20f0u2。如果看不到,执行dmesg | tail -20,看看内核有没有报rndis_host相关的错误。确认接口存在后,用DHCP获取地址:

sudo dhclient usb0

如果桌面版Ubuntu装了NetworkManager,插上手机后它一般会自动接管这个接口,自动获取IP,你甚至不需要敲命令。执行ip addr show usb0,能看到inet 192.168.42.x之类的地址就说明联网成功,ping 8.8.8.8验证一下。

这个方案实测最可靠,基本没有失败率。唯一的坑是:某些手机默认禁用了RNDIS功能,在手机上打开USB网络共享后,电脑端可能出现cdc_ether已经加载但接口反复up/down的情况。这时候可以手动禁用再启用一下USB网络共享开关,或者换一根数据线——别笑,不少USB网卡识别问题真的是劣质数据线引起的,数据线只有充电线路没有数据线路,接口当然出不来。

3.2 备选:从另一台电脑下载离线包

手机USB共享虽然解决了联网问题,但有时候网络带宽不够,或者要下载的包特别大、依赖特别多时,直接从手机传输不稳定,就需要走离线包路线。我当时要用到的是linux-imagelinux-modules-extra,加起来几百MB,直接手机下载再传过去效率太低。

具体做法是:找另一台能正常上网的电脑(Windows、macOS、Linux都行),登录Ubuntu软件包网站或直接用apt download把需要的deb文件下下来,然后用U盘或者手机传过去。如果另一台也是Linux,连依赖关系都可以一起处理:

apt download linux-image-5.15.0-91-generic apt download linux-modules-5.15.0-91-generic apt download linux-modules-extra-5.15.0-91-generic

这里有个非常重要、也是很多人容易犯的错:Ubuntu把相当一部分网卡驱动放在linux-modules-extra-*包里,而不在linux-image-*包里。只下载linux-image会导致内核换了、驱动照样缺失,接口还是出不来。像igcr8169这些驱动,5.15内核里恰好就是放在modules-extra里的。所以离线换内核时,linux-imagelinux-moduleslinux-modules-extra这三个包一个都不能少。如果是服务器版或最小化安装,可能还要补linux-headers,因为后面编译驱动或装NVIDIA闭源驱动时要用。

下载好后,U盘挂载后直接dpkg -i安装:

sudo dpkg -i linux-image-*.deb linux-modules-*.deb linux-headers-*.deb sudo update-grub sudo reboot

3.3 老版本系统的稳网技巧:先固定DNS

联网通道拉起来之后,我踩了一个小坑:手机USB共享能ping 8.8.8.8内网IP,但ping baidu.comTemporary failure in name resolution,这说明网络通了,DNS解析没通。原因是USB共享的DNS配置是NetworkManager自动下发的,如果中途接口重启过,DNS可能丢。

排查时可以先看/etc/resolv.conf,如果里面没有可用的nameserver,手动临时指定一个:

echo "nameserver 223.5.5.5" | sudo tee /etc/resolv.conf

223.5.5.5是国内公共DNS,速度快、连通率高。如果之后升级到systemd-resolved管理的环境,也可以直接用resolvectl dns usb0 223.5.5.5设置。这个动作本质上是"在正式修复驱动之前,先把网络通道弄得稳定一点",省得后面下载包时反复折腾。

4. 三条修复路线,我实测的完整过程

网络通道拉起来之后,接下来的核心问题依然是:如何让主板上那张物理网卡正常工作。我按"工作量从小到大、风险从低到高"的顺序,把三条路线都试了一遍。直接给结论:如果网卡芯片是Intel I225-V/I226-V或Realtek RTL8125B,换内核是最省事、最稳的路。但另外两条路在某些场景下依然有用,所以我还是全部记录,包括每一步命令。

4.1 路线一:驱动其实在,只是没加载

有一种情况是:内核里已经有对应驱动模块,但因为种种原因没有自动加载。最容易发生的场景是装了某些"精简版"Ubuntu,或者之前手动删过内核模块。诊断方法很简单:

sudo modprobe igc

如果命令没有任何输出,然后ip link show里出现了enp开头的接口,那恭喜你,驱动一直都在,只是没加载。为了以后开机自动加载,把它写进模块配置:

echo "igc" | sudo tee /etc/modules-load.d/igc.conf

modprobe报错modprobe: FATAL: Module igc not found,说明内核里压根没有这个模块,直接跳到路线三。"模块存在但没自动加载"的情况,在我见过的机器里很少,更多是"模块不存在"或"存在但PCI ID不匹配"——后者在你的网卡驱动版本太旧时也会遇到,表现为modprobe成功、dmesg也没有报错,但接口出不来,因为驱动里的ID表没有你这款网卡。

4.2 路线二:Realtek等厂商驱动的源码编译

如果网卡是Realtek,走厂商驱动的路线通常能很快搞定。Realtek官方提供r8125驱动源码包,解压后直接编译安装。步骤看起来简单,但有几个前置条件容易被忽略。

首先,编译需要gccmakelinux-headers,在断网状态下这些包不一定齐全。我已经通过手机USB共享把网络拉通了,所以可以提前装好:

sudo apt update sudo apt install build-essential linux-headers-$(uname -r)

源码解压后进入目录,执行./autorun.sh,它会自动完成makeinsmod,并在最后调用depmod -a。如果一切顺利,ip link show就能看到eth0enp5s0。这个驱动编译一次只针对当前内核版本生效,一旦换内核,模块就没了,所以在编译之前或者编译完成之后,最好装上DKMS让它在换内核时自动重编:

sudo apt install dkms sudo ./dkms-install.sh

Realtek源码包里自带dkms脚本,路径和名称可能因版本而异,以解压后的README为准。我当时实测的结论是:r8125驱动能用,但有个小毛病——ethtool查看网卡速率时经常只显示1000Mb/s而不是2500Mb/s,这通常是线缆或者交换机协商问题,不是驱动缺陷,换了根六类线就好了。

厂商源码驱动路线的适用边界很明显:只适合Realtek这种提供官方Linux驱动的厂家。Intel的I225-V虽然也有非官方backport驱动,但质量参差不齐,不如换内核干净。

4.3 路线三:直接换内核,一劳永逸(最终推荐)

换内核是本篇的重点,也是我最终采用的方案。核心思路很简单——把Ubuntu 20.04的5.4内核换成支持新硬件的更新内核,比如5.15。为什么选5.15?因为在Ubuntu 20.04的官方软件源里,5.15就是focal-updates仓库里的HWE内核,安装它不需要添加第三方源,安全性和稳定性都有基本保障。Intel I225-V的igc驱动从5.10进mainline,Realtekr8125在5.9之后进入r8169,所以5.15都能覆盖。

在联网状态下(手机USB共享保持开启),直接:

sudo apt update sudo apt install --install-recommends linux-generic-hwe-20.04

这个命令会安装HWE内核系列的最新版本。如果是离线环境,就回到3.2节的方式,手动下载deb包后用dpkg -i安装。安装完内核后:

sudo update-grub sudo reboot

重启之后执行uname -r确认内核版本已经变成5.15.x,再执行ip link show,正常的物理网卡接口就会出现了。我的机器就是这一步直接解决:接口名是enp5s0,状态UP,NetworkManager自动分配了IP,断网点名道谢的问题从根上消失。

换内核的副作用是需要重新安装NVIDIA闭源驱动等和内核版本强相关的内核模块,这部分在下一章详讲。但单从网卡驱动力度来看,换内核的覆盖面最广,一台机器上同时存在NPU、WiFi网卡、蓝牙、雷电网卡等多种新硬件时,一个5.15内核可能全给你解决了,这是单独编译某一家网卡驱动做不到的。

4.4 实操中容易栽跟头的几个细节

换内核听着就是个apt install的事,但我在实际执行时还是踩了几个坑,单独列出来:

第一个坑是HWE内核包名。很多人一搜教程看到linux-generic-hwe-20.04就装了,但在离线环境下,dpkg -i提示依赖错误,需要把linux-headers-generic-hwe-20.04linux-image-generic-hwe-20.04一起下。实际上linux-generic-hwe-20.04是meta包,它依赖并拉取真正的image/headers包,在apt在线安装时没问题,离线dpkg -i时必须把meta包依赖的全部包手动收集齐。

第二个坑是/boot分区空间不足。有的机器装系统时/boot只分了500MB甚至更小,5.4内核和5.15内核并存时,/boot可能会被撑爆,导致update-grub报错、新内核起不来。解决办法是装新内核前先清理旧内核,或者把/boot分区分大一点。

第三个坑和GRUB有关。如果机器是UEFI启动且开了Secure Boot,新内核如果没有正确签名,会被Secure Boot拦下来。Ubuntu官方仓库的HWE内核是签过名的,一般情况下没问题;但如果是手动从kernel.ubuntu.com下载的mainline内核,在开启Secure Boot的机器上根本启动不了。出现这种情况时,可以进BIOS临时关掉Secure Boot,等系统启动后再决定是否重新开启。

# 换内核后快速验证新内核是否引导成功 uname -r # 确认物理网卡接口 ip link show # 确认网卡驱动确实绑定了 lspci -nnk | grep -A3 -i ethernet

这三条命令的输出,一眼就能确认问题是否解决。

5. 换内核成功之后,顺手排掉几颗暗雷

网卡问题解决后,我本以为万事大吉,结果紧接着就踩了几颗新雷。这些雷并不是换内核操作本身引入的bug,而是"新硬件装老系统"这个组合必然要面对的后遗症,不处理的话一样会让你觉得系统"还是坏的"。

5.1 NVIDIA闭源驱动与内核版本强绑定

NVIDIA闭源驱动不是独立的纯用户态程序,它包含一个内核模块nvidia.ko,这个模块必须针对具体内核版本编译。原来在5.4内核下用apt install nvidia-driver-470装的驱动,换到5.15内核后,模块路径对不上,启动时NVIDIA驱动直接不加载,图形界面可能退回llvmpipe软件渲染,nvidia-smi报错找不到设备。

解决办法是重装驱动:在联网状态下执行:

sudo apt install nvidia-driver-535 sudo reboot

Ubuntu仓库里的NVIDIA驱动包已经配置好了DKMS,安装时会自动为当前内核编译模块。如果你用的是NVIDIA官网的.run安装包,换内核后必须重新运行.run文件重新安装。顺带一提,2025年的新NVIDIA显卡,在Ubuntu 20.04下用535系列驱动是能正常驱动的,但不建议装太老版本的驱动,新卡和老驱动之间兼容性很差。

5.2 linux-firmware也要跟着更新

换内核后网卡接口虽然出现了,但我遇到一个奇怪的现象:WiFi可以搜到信号但连接不上,有线网卡接口能起来但dmesg里报firmware: failed to load。这其实是另一个经典问题:新内核尝试加载新硬件对应的固件,但系统的linux-firmware包还是老版本,固件文件缺失。

Ubuntu把固件单独放在linux-firmware包里,这个包也需要同步升级:

sudo apt update sudo apt install --only-upgrade linux-firmware sudo reboot

linux-firmware包含的是各种硬件设备运行所需的固件文件,和内核模块是分开的两套东西。网卡、WiFi卡、蓝牙、GPU都可能依赖它。如果你装的是纯离线系统,也可以在下载内核包时顺便把新版linux-firmware也下载下来一起安装。

5.3 接口出来了不代表能上网:DHCP与网络管理器的坑

换内核后,物理接口enp5s0出现了,但刚开始ip addr show enp5s0里没有IP地址,只有state DOWN。这时候需要判断网络管理工具是否接管了接口。

Ubuntu 20.04桌面版用NetworkManager,服务器版用netplan + systemd-networkd。最简单的处理方式是:桌面版直接点右上角网络图标,手动把有线网卡打开;服务器版则检查netplan配置:

sudo nano /etc/netplan/01-network-manager-all.yaml

netplan配置文件里如果只有network: {version: 2, renderer: NetworkManager}这么一行,说明网络由NetworkManager接管。在Ubuntu 20.04上换新内核后,如果NM没有自动拉起接口,可以试试:

nmcli device connect enp5s0

如果NM显示设备未托管(unmanaged),用nmcli device set enp5s0 managed yes先改成托管状态,再connect。这些命令在真实环境中十有八九会遇到一两个,属于"驱动就绪后的配置碎活"。

5.4 "后来又断网"的几种非驱动原因

既然聊到断网,顺便提一嘴另一个热门搜索词里反复出现的问题:dns client events 1014 出现后便断网了。这个日志条目在Windows下常见,原因通常是DNS客户端服务无法解析名称,或者局域网内DNS服务器不可达,跟Linux沾边的情况是:系统能ping通IP但无法解析域名,此时先把DNS换成公共DNS试试,多数情况下立刻恢复。

还有一类是"换了交换机经常断网",无论是Linux还是Windows都可能遇到。这跟驱动关系不大,大多是交换机的EEE(节能以太网)或者流控协商出了问题。修复姿势也很简单:在Linux下用ethtool关掉网卡的EEE节能:

sudo ethtool --set-eee enp5s0 eee off

或者在交换机端关闭节能以太网模式。这个经验帮我修好了几台"间歇性断网"的机器,虽然不是驱动问题,但在新硬件配老系统的场景里非常常见,顺手写在这里,免得大家在驱动上瞎折腾半天。

6. 救砖方法论复盘:以后遇到类似问题怎么快速定位

整个过程走完,我把经验沉淀成了一套可以复用的排查方法。下次遇到"装完系统没网"这类问题,不用再从零开始试,按下面这几步走,基本能在半小时内定位并解决。

6.1 五步定位法,先从日志和状态入手

第一步:确认物理网卡是否存在。lspci | grep -i ethernet,没有输出的话要么是BIOS禁用,要么是硬件故障,先回BIOS查。

第二步:确认驱动是否绑定。lspci -nnk | grep -A3 -i ethernet,看Kernel driver in use是不是(none)。如果是none,问题锁定在驱动层面。

第三步:确认接口是否建立。ip link show,如果接口不在,继续走驱动/内核路线;如果接口在但state DOWN,重点查网线、交换机、对端设备。

第四步:确认接口是否有IP地址。ip addr show,如果接口UP但没有inet地址,查DHCP和网络管理器配置。

第五步:确认DNS解析是否正常。ping 8.8.8.8通但ping baidu.com不通,查/etc/resolv.conf

这套方法的好处是每一步都有明确的命令和明确的判断标准,不靠猜,一次到位。

6.2 三条路线的选择决策表

诊断结果推荐路线理由
modprobe能找到模块路线一:配置模块自动加载改动最小,一步到位
Realtek网卡,且驱动源码易得路线二:编译厂商驱动无需换内核,对老系统影响面最小
多种新硬件并存/Intel新网卡路线三:换HWE内核覆盖面广,一次解决多个驱动问题
机器有重要业务,不敢重启先走路线二,维持当前内核换内核必须重启,风险高
离线环境无法下deb手机USB共享联网后走路线三换内核只要一次联网下载

实际项目中,如果机器上没有必须死守5.4内核的软件,我会推荐直接换HWE内核,省心。如果有,那就用厂商驱动软解或者外挂一张老型号网卡。很多工业软件对内核版本有硬性要求,换内核前一定要先查软件兼容性清单。比如某些版本的PetaLinux在5.4下跑得好好的,升到5.15就可能报错,这种时候就宁可让板载网卡吃灰,先插一张旧PCIe网卡顶上。

6.3 下次装机,提前做好这三件事

这次"救砖"经历之后,我给自己定了一套装老系统前的固定流程,分享出来供参考。

第一,装系统前先用新版本Live CD启动一次,确认硬件能被现代内核完整识别,至少确认网卡、显卡、硬盘控制器没有问题,再转头装老版本系统。

第二,如果是做工业开发,必须用20.04时,把linux-modules-extralinux-firmware、新内核deb包提前下载好放到U盘里。装完系统第一件事不是配置界面,而是先把这些包装上,再开始折腾别的。别等断网了再临时找驱动。

第三,备好一个USB有线网卡或者一台能共享网络的手机。USB有线网卡其实是最稳的救砖工具——插上就能被老内核识别,物理接口出现,联网、装驱动、换内核一路畅通。很多用Linux做开发的朋友工具箱里都应该常备一个,关键时刻能救命。

回到文章开头的场景:那台2025年的新机器,现在跑着Ubuntu 20.04 + 5.15 HWE内核,PetaLinux工具链编译正常,Zynq-7000的交叉编译也很顺利,有线网卡稳稳跑在2.5Gbps。但说句实在话,如果当初装系统前就预料到要趟这一圈,我会直接把软件源里的HWE内核提前准备好,省下在BIOS、交换机、驱动、固件之间反复折腾的两天。这篇文章写给所有准备在新硬件上装老系统的朋友——旧系统的兼容性是"省心"的反面,动手之前,把网卡、内核、固件这三件事先想明白。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询