我刚刚升级了系统,其中包括我的内核。之后,我的 wifi 就坏了。在谷歌搜索后,似乎我不是唯一遇到这种情况的人。
RT2860 驱动程序与 2.6-32 内核兼容不佳。
那么,我该如何降级我的内核?我的 pacman 缓存中仍有旧内核,但我不确定如何删除当前内核并安装旧内核。
我尝试执行“pacman -Rsn kernel26[firmware|headers]”,但 OSS(声音系统)抱怨它需要*headers 作为依赖项。
只安装旧 kernel26*(固件、标头、基础)然后删除当前版本是否安全?我该怎么做? :/
答案1
根据我的经验,降级内核是安全的。最近我不得不这么做很多次,因为利克和新内核版本。安装最新内核版本后,我的 Hauppauge PVR-250 遥控器就无法正常工作了。实际上,我几个小时前才安装的 ;)。
重新安装旧内核版本:
先决条件:实际上,您必须在任何地方找到旧内核的二进制包。如果您没有,那么您就很倒霉了(如果您不想自己编译旧包的话)。
哦,你问我在哪里可以得到旧包?维基链接,发布在另一个答案中。我通常坚持搜索 pacman 软件包缓存 (/var/cache/pacman/pkg)。我还始终有此目录的最新备份,因此如果我清除缓存,不会丢失任何软件包。
如果您有旧内核包,则可以使用 来安装它pacman -U package-name.pgk.tar.gz
。之后您很可能会收到依赖性错误。此错误中列出的每个包也必须降级。因此,返回包缓存,在旧版本中找到指定的包,然后尝试通过再次调用 pacman 来安装它,这次使用旧内核和新找到的包(pacman -U package-name.pgk.tar.gz other-package.pkg.tar.gz
)。
您必须重复这些步骤,直到 pacman 运行成功。之后,您应该能够重新启动系统,并且新(实际上是旧)内核将被加载。如果 pacman 告诉您无法删除与旧内核不兼容的软件包,则您必须pacman -Rd conflicting-package.pkg.tar.gz
在安装旧内核之前手动删除它( )。但请小心执行此步骤,否则可能会破坏您的系统。
就我而言,我必须降级 7 个软件包,包括内核、glibc、内核头、lirc 和我的 nvidia 驱动程序的两个软件包。
我认为,Archlinux 唯一的大缺陷实际上是降级问题。如果你清除了软件包缓存,那么找到所需的二进制软件包可能真的很难。我从来没有在镜像服务器上成功找到我需要的软件包。
因为 Archlinux 是一个相当先进的发行版,包含最新的软件包和频繁的版本,所以我经常需要降级功能。我真的希望 Archlinux 的伙计们将来能找到一种方法让这个功能变得更容易一些。
答案2
答案3
如果您尚未清理旧内核,它们应该仍可在 grub 菜单中找到。我也遇到过这个问题,当我安装新内核时,我的驱动程序也无法正常工作。一个简单的解决方法是将 grub 菜单上的默认选项设置为正确的内核。
如果您使用的是 grub 2,这可以是检查默认选项的方法。
jeffrey@ubuntu-linux:~$ head /etc/default/grub
如果您更改了此文件,请随后运行“update-grub”来更新 /boot/grub/grub.cfg。
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
您可以非常轻松地更改 grub_default 值,0 表示第一个选项,2 应该是以前使用的内核。
gksudo gedit /etc/default/grub
更改值,保存并运行
sudo update-grub
如果你使用的是较旧的 grub 版本
您应该编辑这个文件:/boot/grub/menu.lst
执行相同的步骤,但 grub_default 在此文件中只是普通的“默认”。运行 update-grub 脚本,重新启动,一切就绪。
答案4
我还注意到我的 rt2860 芯片和内核 2.6.32 存在问题。运行 dmesg 时,我收到以下错误:
--> Error 2 opening /etc/Wireless/RT2860STA/RT2860STA.dat
我还注意到芯片已从 ra0 重命名为 wlan0。起初,这一更改和重新启动修复了我的错误,并且芯片始终保持连接。然而,由于某种未知原因,它......好吧,让我感到困惑。在输入这些内容时,互联网突然连接到我的另一台计算机上。它保持连接,好吧,我很困惑。