Ubuntu 20.04 LTS 安装好后,发现 WIFI 可以正常连接,有线网络连图标都没有显示。经过诊断发现是有线网卡驱动未正确问题。最后通过手动安装网卡驱动得以解决。这里记录一下。

我的主板是 微星B460M MORTAR WIFI ,驱动 R8125。类似型号安装应也差不多。

怎么看网卡驱动是否安装?

ifconfig查看网络设备情况。

ifconfig 没有,可以用 sudo apt install net-tools 安装。

如果一切正常,你或许看到的是类似这样的。

> ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        ....

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.123.57  netmask 255.255.255.0  broadcast 192.168.123.255
        ....

enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.123.64  netmask 255.255.255.0  broadcast 192.168.123.255
        ....

其中,

  • lo 开头的,表示本地连接
  • wl 开头的,表示无线局域网 (wlan Wireless Local Area Network)
    • p3s0描述了无线局域网的 PCI 接口位置: bus=3, slot=0
  • en 开头的,表示以太网(ethernet)
    • p2s0 描述了以太网的 PCI 接口位置: bus=2, slot=0

PCI 全称(Peripheral Component Interconnect),即外设部件互连标准

如果没有en开头的这个,说明网卡驱动存在问题。 我们可以利用lspci -v | grep Ethernet 具体的查看一下网卡的型号,如:

> lspci -v | grep Ethernet
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 04)

驱动安装

Realtek官网 下载好驱动,如对应上面的输出RTL8125 2.5GbE Controller,我找到了该驱动。

下载好后,经入下载后的文件夹,开始准备安装了。

  1. 准备环境。

    sudo apt-get install --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential dkms
    
  2. 解压源码到 /usr/src

    sudo tar xvf r8125-9.004.01.tar.bz2 -C /usr/src
    

    按照其中README.md的方法安装后也可使用,但重启后需要重新安装。

  3. 添加一个 dkms.conf/usr/src/r8125-9.004.01/ 目录下,内容如下:

    PACKAGE_NAME=Realtek_r8125
    PACKAGE_VERSION=9.003.02
    
    DEST_MODULE_LOCATION=/updates/dkms
    BUILT_MODULE_NAME=r8125
    BUILT_MODULE_LOCATION=src/
    
    MAKE="'make' -C src/ all"
    CLEAN="'make' -C src/ clean"
    AUTOINSTALL="yes"
    
  4. 编译 dkms

    sudo dkms add -m r8125 -v 9.004.01
    sudo dkms build -m r8125 -v 9.004.01
    sudo dkms install -m r8125 -v 9.004.01
    sudo depmod -a
    sudo modprobe r8125
    
  5. 操作完成后,你就可以通过ifconfig 看到en开头的有线网连接了。

  6. 如果后续有升级,需要先删除,再安装新的。

    sudo dkms remove r8125/9.004.01 --all
    

另外,我遇到过一次升级内核,把这个驱动弄没了,这时再编译安装一次就好了。

相关链接