问题描述
某次ubuntu 20.04内核更新后,无线网卡(WIFI)图标消失了。usb网卡插到电脑上后也不亮了。
伴随着nvidia显卡驱动也没了,成了默认的X.Org X server nouveau,因此屏幕显示分辨率、刷新率都不可调了。
我的USB无线网卡型号:Edimax EW-7811Un (虽然官方说它不能用于5.3以上ubuntu版本内核,但实测可以用于5.13.0-37-generic)
我的ubuntu 20内核版本:5.13.0-39-generic
原因
ubuntu内核更新后,原有网卡、显卡驱动都会失效。退回原来的内核版本即可。
解决办法
查看本机内核:
uname -a
uname -r
比如我是5.13.0-39-generic。输入以下指令可以查看本机有的所有内核:
dpkg --get-selections | grep linux-image
其中显示 install 的就是当前系统可用的内核。比如我有5.13.0-39-generic和5.13.0-37-generic都显示可用。我的目标是退回5.13.0-37-generic内核。有以下两种方法:
1、开机时grub选择对的内核版本
双系统开机时的grub界面都会让你选择ubuntu还是windows,其实这里的第二项advanced选项也可以选择内核版本。
可以看到我这里可以手动选择进入5.13.0-39或者5.13.0-37内核。当然默认的Ubuntu选项是5.13.0-39。通过修改 /etc/default/grub 文件也可以调整grub的配置:
sudo gedit /etc/default/grub
GRUB_DEFAULT=“1>2” #原来是0。对应的是进入开机界面后grub的选项。0代表第一项,这里1>2指的是advanced->第三个内核
# GRUB_TIMEOUT_STYLE=hidden #是否显示grub界面
GRUB_TIMEOUT=10 #grub界面的等待时间(s)
#也可以添加以下两行,使得grub的默认值为上一次的选择
GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved
# 更新grub配置
sudo update-grub
但是这种方法只是使得grub界面的黑条默认停在想要的那都一项(而不是第一行的Ubuntu)。只要是注释掉了GRUB_TIMEOUT_STYLE=hidden,每次开机还是会有grub界面弹出来一段时间让你手动选择(或者等这段时间过去它自动选择默认项)。而由于windows双系统的存在,grub又不能隐藏。因此这种方法还是可能选错内核版本(比如选了第一项Ubuntu)。
2、删除多余的内核
删除不需要的5.13.0-39内核,只留5.13.0-37内核。可以这样做:
#找出系统已经安装的内核版本
dpkg --get-selections|grep linux
#卸载不需要的内核
sudo apt-get remove linux-image-5.13.0-39-generic
sudo apt-get remove linux-modules-5.13.0-39-generic
sudo apt-get remove linux-headers-5.13.0-39-generic
sudo apt-get remove linux-unsigned-image-5.13.0-39-generic
#更新grub
sudo update-grub
#再次查看安装了的内核,应当没有删除的内核了(deinstall)
dpkg --get-selections|grep linux
还可以关闭内核自动更新(我还没试):
#关闭自动更新
sudo apt-mark hold linux-image-5.13.0-37-generic