Linux网卡驱动不匹配(离线)解决办法,删除网卡驱动,安装匹配的驱动

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

 

1、查看网卡型号

# 查看网卡型号
lspci | grep net

备注:网卡型号为 RTL8125

2、查看网卡驱动

lspci -k

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

3、卸载原有的r8169的驱动

3.1查看原始r8169驱动文件所在的位置

# 查看驱动位置
modinfo r8169 | grep filename

删除或者移动r8169.ko,卸载驱动(很多次才成功)

sudo rm -rf <找到的path>/r8169.ko
mv r8169.ko r8169.ko.backup 

 

# 卸载驱动
sudo rmmod r8169
​
# 查看是否卸载成功
sudo lsmod | grep r8169

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

lspci -k

 

4、找一台有网的电脑下载螃蟹卡的驱动下载对应系统网卡的驱动版本(r8125)

https://www.realtek.com/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

这样就大功告成了,这个时候你回到桌面右上角看,就会有 有线网络图标 了

7、到了这里,如果开始安装的时候没有去配置网卡信息,正常来说是可以使用的了。

 

但是,由于我是新安装的系统,缺少gcc make dkms等packages,所以可能需要离线安装一下。下面是安装过程。

Ubuntu-离线安装基本依赖(gcc、make、dkms等)

由于ubuntu系统刚刚安装完毕,还未配置网卡,无法实现网络在线安装依赖,所以需要离线安装相关的依赖,然后再配置相关的无线网卡!网上的教程很多都是需要自己单独下载文件,然后按照顺序进行安装,这样比较麻烦,所以本文直接利用自己当初的启动U盘,找到需要的依赖直接进行安装即可!

查看U盘对应的设备名称

sudo fdisk -l

# 以下就是需要挂载的U盘
Disk /dev/sdc: 14.9 GiB, 15938355200 bytes, 31129600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcad4ebea

Device     Boot Start      End  Sectors  Size Id Type
# 系统给U盘分配的设备文件名
/dev/sdc4  *      256 31129599 31129344 14.9G  c W95 FAT32 (LBA)

挂载U盘

sudo mkdir /mnt/usb
sudo mount -t vfat -o iocharset=utf8 /dev/sdc4 /mnt/usb/
1
2
查看U盘内的文件

cd /mnt/usb/ && ls
1
 boot     EFI        md5sum.txt   preseed                      ubuntu
 casper   install    pics         README.diskdefines
 dists    isolinux   pool        'System Volume Information'
1
2
3
所有的基本依赖文件都在pool/main下!

gcc离线安装
cd pool/main/ && find -name gcc*
1
查询的结果如下,gcc相关的文件都在g目录下

./g/gcc-7
./g/gcc-7/gcc-7_7.4.0-1ubuntu1~18.04.1_amd64.deb
./g/gcc-8
./g/gcc-defaults
./g/gcc-defaults/gcc_7.4.0-1ubuntu2.3_amd64.deb
1
2
3
4
5
注意:直接安装gcc对应的deb文件会提示缺少相关的依赖,因此需要先安装其需要的依赖!以下的安装顺序可能会有偏差,可根据实际情况作出调整!

/g/gcc-8中所有的lib文件:

sudo dpkg -i lib*.deb
1
pool/main/l/linux/下的deb文件:

sudo dpkg -i linux-libc-dev_4.15.0-76.86_amd64.deb
1
/g/glibc中所有的lib文件:

sudo dpkg -i lib*.deb
1
/g/gcc-7文件夹中的文件:

sudo dpkg -i lib*.deb
sudo dpkg -i g*.deb
1
2
/g/gcc-8文件夹中的文件:

sudo dpkg -i lib*.deb
1
make离线安装
cd /mnt/usb/pool/main/m/make-dfsg
sudo dpkg -i make_4.1-9.1ubuntu1_amd64.deb
1
2
dkms离线安装
cd /mnt/usb/pool/main/d/dkms
sudo dpkg -i dkms_2.3-3ubuntu9.7_all.deb

还要去下载一个gcc的安装包。

.下载gcc7.5整合依赖包

依赖实在是太多太繁琐了,我直接整理一波好吧

总共有18个需要安装,如下:

百度云地址:

链接:https://pan.baidu.com/s/1sHYZMW2-B3A84yD0erFpAA?pwd=lh3f 
提取码:lh3f 

 这个安装完后就可以使用了。

 

 

 

 

 

 

 

 

 

 

 

 

 

相关推荐

  1. Linux】如何查看网卡驱动

    2023-12-13 10:08:23       31 阅读
  2. Linux下I2C设备驱动:I2C设备和驱动匹配过程

    2023-12-13 10:08:23       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-13 10:08:23       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-13 10:08:23       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-13 10:08:23       82 阅读
  4. Python语言-面向对象

    2023-12-13 10:08:23       91 阅读

热门阅读

  1. 顺序表

    顺序表

    2023-12-13 10:08:23      79 阅读
  2. ClickHouse中select final和optimize table final的区别

    2023-12-13 10:08:23       71 阅读
  3. 百度爬虫

    2023-12-13 10:08:23       71 阅读
  4. 12月11日总结

    2023-12-13 10:08:23       66 阅读
  5. 12月8日总结

    2023-12-13 10:08:23       52 阅读
  6. 每日博客

    2023-12-13 10:08:23       71 阅读
  7. 1213

    2023-12-13 10:08:23       76 阅读
  8. 阅读笔记《有效需求分析》2

    2023-12-13 10:08:23       80 阅读
  9. 12月13日总结

    2023-12-13 10:08:23       74 阅读
  10. 12月12日总结

    2023-12-13 10:08:23       67 阅读
  11. 每日总结

    2023-12-13 10:08:23       70 阅读
  12. Linux部署mosquitto及其配置

    2023-12-13 10:08:23       73 阅读
  13. pandas 遍历

    2023-12-13 10:08:23       69 阅读
  14. Qt打包

    2023-12-13 10:08:23       77 阅读
  15. 12.12总结

    2023-12-13 10:08:23       75 阅读
  16. get请求数组参数,格式转换

    2023-12-13 10:08:23       92 阅读
  17. 【异步】CompletableFuture

    2023-12-13 10:08:23       70 阅读
  18. 深入了解RPM包管理与Nginx源码包管理

    2023-12-13 10:08:23       73 阅读
  19. clickhouse sql优化笔记

    2023-12-13 10:08:23       59 阅读
  20. 逃逸分析案例

    2023-12-13 10:08:23       79 阅读