使用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 更新内核后网卡驱动失效,不能上网
发布评论