Arch Linux - 如何降级我的内核?

Arch Linux - 如何降级我的内核?

我刚刚升级了系统,其中包括我的内核。之后,我的 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

这应该涵盖如何降级软件包用 Pacman。我知道我曾经做过一次(大概两年前),而且效果很好(就我所记得的而言)。

这些有关 Arch 的具体问题最好在 Arch Linux 上提问留言板或抬头仰望维基百科,因为它们是 Arch 专用的,而且您可以在那里找到 Arch Linux 专家。

答案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。起初,这一更改和重新启动修复了我的错误,并且芯片始终保持连接。然而,由于某种未知原因,它......好吧,让我感到困惑。在输入这些内容时,互联网突然连接到我的另一台计算机上。它保持连接,好吧,我很困惑。

相关内容