ubuntu18.04 更新内核后网卡驱动失效,不能上网

编程知识 更新时间:2023-05-03 02:13:08

使用Ubuntu系统,切忌千万不要随便更新内核,因为内核更新后,很多模块可能会失效。我就是因为将Ubuntu 18.04的内核升级到5.3.0-59-generic后,发现无法上网,有线/无线网络均无法访问。作为一枚菜鸟,查找了很多解决方案,倒腾了两天,终于可以上网了。

内核升级的问题

1. 内核信息

首先,分析了一下导致不能上网的原因,将问题归结到升级内核导致的,可以通过以下命令,查看内核的版本信息

uname -a

我的内核信息如下:

Linux Phyllis 5.3.0-59-generic #47~18.04.1-Ubuntu SMP Thu May 7 13:10:50 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

这是我更新后的内核信息,

2. 网卡信息

然后,查了一下网卡信息,命令如下

lspci |grep -i Eth

我的网卡信息如下:

00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)

这里,I219-LM就是我的网卡信息。

2. 网络查询

接下来,我查询了一下我的网络信息,

ifconfig -a

我的网络信息如下:
只有lo,没有eth0。查了资料说,这种情况属于网卡驱动无效,所以需要重新安装网卡驱动。

3. 网卡驱动安装

由于Intel没有直接对应I219-LM的网卡驱动,但是有个通用的网卡驱动e1000e是适用于I219-LM网卡的,如图所示,列出了e1000e-3.8.4.tar.gz适用的网卡型号,里面就包含I219-LM

e1000e-3.8.4.tar.gz的下载地址为:intel网卡驱动下载链接

安装网卡驱动

1) 移动文件

将基本驱动程序tar文件移到您选择的目录中。例如,“/home/username/e1000e”或“/usr/local/src/e1000e”。
进入root用户,

sudo -i
2)解压文件

e1000e-3.8.4.tar.gz是一个压缩包,使用以下命令进行解压:

tar xvf e1000e-3.8.4.tar.gz
3)进入src目录

更改到驱动程序src目录,其中 e1000e-3.8.4是驱动tar的版本号,

cd e1000e-3.8.4/src/
4)编译驱动程序模块

编译驱动程序模块,

make install

The binary will be installed as:
/lib/modules//updates/drivers/net/ethernet/intel/e1000e/e1000e.ko
The install location listed above is the default location. This may differ for various Linux distributions.

5)加载模块

使用modprobe命令加载模块。要检查驱动程序的版本并加载它,请执行以下操作:

modinfo e1000e
modprobe e1000e [parameter=port1_value,port2_value]

另外,在加载新模块之前,确保从内核中删除任何旧的e1000e驱动程序

rmmod e1000e; modprobe e1000e
6)为接口分配IP地址

通过输入以下地址将IP地址分配给接口,
其中是modprobe之后在dmesg中显示的接口名称:

 ip address add <IP_address>/<netmask bits> dev <ethX>
7)验证接口是否工作

验证接口是否工作。输入以下内容,其中IP\ U address是与正在测试的接口位于同一子网上的另一台计算机的IP地址:

ping <IP_address>

注意:对于某些发行版,如(但不限于)Red Hat Enterprise Linux 7和Ubuntu,一旦安装了驱动程序,您可能需要更新initrd/initramfs文件,以防止操作系统加载旧版本的e1000e驱动程序。在Red Hat发行版上使用dracut实用程序:

dracut --force

对于 Ubuntu:

update-initramfs -u

我只运行了前五步,但是貌似可以。

4. 网络查询

此时再次查询多出的网口信息,

ifconfig -a

多了一个eno1网口,
运行命令

ifconfig eno1 up

然后,修改配置文件 interfaces,

vim /etc/network/interfaces

加入

auto eno1
iface eno1 inet static

再运行一句(这个看大家都没说,我也是看一个人这么介绍的,死马当活马医吧,谁让我是个小白),

sudo dhclient eno1

重启网络

sudo service networking restart

然后,重启电脑,就可以连接网络了。如若不成功的话,可能跟内核版本有关。

5. 内核降级

一般上述如若上述过程未成功,可能就需要启用原来的旧内核(不推荐这一步,但是实在不想重装系统可以尝试一下,尽量仔细小心)。
查看现有的内核数,

apt-cache search linux-image

此时,返回电脑中的内核信息,
通过之前的查询,我的Linux内核的版本为5.3.0-59-generic 。现在,我要对内核版本降级,使用版本为5.3.0-53-generic的内核。
也可以用下列命令,查询计算机的内核镜像信息,

dpkg --get-selections |grep linux-image

1)编辑grub文件

编辑grub文件,

vim /etc/default/grub

将GRUB_DEFAULT的值改为,

GRUB_DEFAULT=“Advanced options for Ubuntu>Ubuntu, with Linux linux-image-5.3.0-53-generic”

对grub文件进行更新

update-grub

采用下列命令,删除当前内核版本信息

rm -rf /boot/vmlinuz-5.3.0-59-generic

2)重启电脑,再次查看内核版本

重启电脑,再次查看内核版本,

uname -a

此时,内核版本就变成了5.3.0-59-generic

Linux user 5.3.0-53-generic #47~18.04.1-Ubuntu SMP Thu May 7 13:10:50 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

重启电脑,查看网络是否连接上。
由于,linux内核更新可能导致很多驱动无效,所以尽量不要更新内核。可以设置禁止更新内核,

apt-mark hold linux-image5.3.0-53-generic

禁用自动更新内核,

/etc/apt/apt.conf.d/10periodic

6. 免责声明

上述我都试过了,暂时没有出现什么系统问题。但是,由于当时采用方式太多,不能保证能够成功 。具体问题具体分析吧!
倒腾了两天,看了各种解决方案,眼花缭乱的。也不知道,为啥别人都那么顺,我安装网卡驱动就遇到一堆问题。也只能死马当活马医了,毕竟重装系统之后,装软件那些也耗时耗力的。

一些好的解决方案分享一下:
https://blog.csdn/u010500490/article/details/76459139?utm_medium=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.wap_blog_relevant_pic&depth_1-utm_source=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.wap_blog_relevant_pic
https://wwwblogs/minseo/p/13065321.html

更多推荐

ubuntu18.04 更新内核后网卡驱动失效,不能上网

本文发布于:2023-04-30 01:44:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/05164ff1b4eca2fda36584d137025ec0.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:内核   网卡驱动

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 112721文章数
  • 28684阅读数
  • 0评论数