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

8 linux downgrade kernel arch-linux

我刚刚进行了系统升级,其中包括我的内核。之后,我的wifi坏了。经过一番谷歌搜索后,似乎我不是唯一遇到这种情况的人。

RT2860 驱动程序不能很好地与 2.6-32 内核配合使用。

那么,我该如何降级我的内核呢?我的 pacman 缓存中仍然有旧的,但我不确定如何删除当前的并安装旧的。

我尝试做一个 'pacman -Rsn kernel26[firmware|headers] 但 OSS(声音系统)抱怨它需要 *headers 作为依赖。

只安装旧的 kernel26*(固件、头文件、基础)然后删除当前的是否安全?我该怎么做?:/

Cus*_*zer 5

根据我的经验,降级内核是安全的。由于lirc和新内核版本的问题,我最近不得不做很多事情。安装最新的内核版本后,我的 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、kernel-headers、lirc 和我的 nvidia 驱动程序的两个包。

仔细想想,Archlinux唯一的大缺憾其实就是降级的问题。如果您清除了包缓存,则很难找到所需的二进制包。我从来没有成功地在其中一台镜像服务器上找到我需要的包。

因为 Archlinux 几乎是一个具有最新软件包和频繁发布的前沿发行版,所以我经常需要降级功能。我真的希望 Archlinux 的人在未来的某个时候找到一种方法来使这更容易一些。


Jef*_*rne 0

如果您还没有清理旧内核,它们应该仍然可以在 grub 菜单中找到。我也遇到了这个问题,当我安装新内核时,我的驱动程序也无法工作。一个简单的修复方法是将 grub 菜单上的默认选项设置为正确的内核。

如果您使用 grub 2,这将是检查默认选项的方法。

jeffrey@ubuntu-linux:~$ 头 /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
Run Code Online (Sandbox Code Playgroud)

更改值,保存并运行

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

如果您使用的是较旧的 grub 版本

您应该编辑此文件:/boot/grub/menu.lst

执行相同的步骤,但 grub_default 在该文件中只是简单的“默认”。运行 update-grub 脚本,重新启动,就可以了。