admin 管理员组

文章数量: 1184232

新装的Linux没法有线联网,查了一下是网卡型号和驱动不匹配的原因。(如果是没有驱动,可以查看网卡型号,然后跳到下载驱动那里看)网上驱动不匹配的解决方法基本都是联网的终端命令,但是驱动不匹配没网,因此写一篇不需要联网的方法。
条件:一台可以联网的电脑(用来下载驱动)、Ubuntu电脑、u盘(传驱动)、Ubuntu系统盘(里面有dkms、gcc等)
先查看驱动

lspci -k

在kernel modules那里显示驱动版本

再查看网卡

lspci | grep net

会显示device的型号
在我这里,驱动版本是r8169,而显卡是8125,因此是显卡和驱动不匹配
首先要卸载之前的r8169驱动,不然重启还是默认r8169

查看驱动位置

modinfo r8169 | grep filename

根据位置删除r8169.ko

sudo rm -rf  替换为上一步找到的位置/r8169.ko

卸载驱动(很多次才成功)

sudo rmmod r8169

卸载后看一下是否卸载成功,如果kernel modules里没有r8169就成功了

lspci -k

找一台有网的电脑下载螃蟹卡的驱动

www.realtek/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software

选择Linux的r8125下载,后面的version是版本号也要记住,我下载的是r8125 v9.011.01
下载后通过u盘拷到Ubuntu电脑
由于是新装的ubuntu,可能没有dkms,可以从ubuntu的安装u盘中找到他们并安装(dkms依赖gcc、make等需要把他们一起安装)
可以参考这篇文章:离线安装dkms
将下载好的驱动解压(注意驱动号和版本号,要替换成自己下载的,后面也是)

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

进入到/usr/src/配置dkms

cd /usr/src/r8125-9.010.01
touch dkms.conf

输入:

PACKAGE_NAME=Realtek_r8125
PACKAGE_VERSION=9.010.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"

编译dkms并挂载r8125

sudo dkms add -m r8125 -v 9.010.01
sudo dkms build -m r8125 -v 9.010.01
sudo dkms install -m r8125 -v 9.010.01
sudo depmod -a
sudo modprobe r8125

问题:
如果最开始没有卸载r8169,可能会出现:modprobe: ERROR: could not insert ‘r8125’: Exec format error
解决:
先按照上文的方法卸掉r8169
把r8125卸载,从来一遍挂载编译

sudo dkms remove r8125/9.010.01 --all

cd /usr/src/r8125-9.010.01
sudo dkms add -m r8125 -v 9.010.01
sudo dkms build -m r8125 -v 9.010.01
sudo dkms install -m r8125 -v 9.010.01
sudo depmod -a
sudo modprobe r8125

参考:极智开发、YuanbaoQiang

本文标签: 网卡驱动 离线 解决办法 不匹配 Linux