自己装了一台台式机,用的微星B460M迫击炮主板,插入网线后无法识别有线连接。最后发现时因为主板有线网卡的型号和系统中网卡的驱动不匹配,更换驱动后问题解决。
查看并删除原驱动
查看网卡型号
在终端输入以下命令查看网卡芯片:
lspci | grep net
显示
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 04)
,其中的Ethernet controller:
后的部分为网卡型号,在这里我的网卡型号的瑞昱的RTL8125。查看网卡驱动
在终端输入以下命令查看网卡驱动:
lspci -k
这个命令会列出系统所有的pci设备的硬件和驱动信息,找到Ethernet相关的行,比如我这里显示的是:
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 04) Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7c82 Kernel driver in use: r8169 Kernel modules: r8169
其中第一行显示的就是网卡的型号,与步骤1中显示的相同,
Kernel driver
显示的是驱动信息,这里显示的是r8169。因为网卡型号和驱动不匹配,导致了无法使用有线网上网。卸载原有驱动
依次执行以下命令:
查看驱动文件所在的位置,其中的
r8169
请自行替换为自己的网卡驱动名称。modinfo r8169 | grep filename
备份或直接删除驱动文件,下面两个命令执行其中一个即可,其中的
path
请用上一步查找到的文件路径替换,r8169
请用自己的驱动名称替换。mv path/r8169.ko path/r8169.ko.backup #备份 rm path/r8169.ko #直接删除
卸载驱动。其中的
r8169
请自行替换。rmmod r8169
查看是否删除成功,如果无显示或者显示结果没有r8169则表明删除成功。
lsmod | grep r8169
安装正确的驱动
因为网卡型号为RTL8125,下面来装它的驱动r8125。
尝试直接安装
下载驱动
sudo pacman -S r8125 #Manjaro系统 sudo apt-get install r8125 #Ubuntu系统
尝试挂载
sudo modprobe r8125
但是我这里报错,原因好像是下载的驱动包与系统内核不兼容。。
使用DKMS安装驱动
安装dkms
sudo pacman -S dkms #Manjaro系统 sudo apt-get install dkms #Ubuntu系统
到驱动官网下载自己对应的压缩包,然后到下载目录打开终端(或者在终端中cd到下载目录),然后执行以下命令,将驱动解压到
/use/src
,这里以r8125举例,请自行替换压缩文件的名称:sudo tar xvf r8125-9.004.01.tar.bz2 -C /usr/src
在
/use/src
的对应文件夹中创建一个新文件,名称为dkms.conf
,比如我这里就要在/usr/src/r8125-9.004.01
中创建。在dkms.conf
中输入以下内容:PACKAGE_NAME=Realtek_r8125 PACKAGE_VERSION=9.004.01 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"
其中的
PACKAGE_NAME
、PACKAGE_VERSION
、BUILT_MODULE_NAME
等号后的内容自行替换为自己下载驱动和版本。编译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 #挂载驱动
其中的
r8125
和9.004.01
请自行替换为对应的驱动和版本号。- 执行
lspci -k
查看驱动是否安装成功(其实不用,成功的话网络应该会自己变成有线连接)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。