Intro
使用 Arch 5 年多,几乎一直在使用默认内核,也就是这俩包 core/linux 和 core/linux-headers。 2022 年换机器 Asus-ROG-G14 后,因为一些硬件的适配问题换了 Asus-Linux 提供的专用内核。 它提供了一些上游没有的补丁和修复。例如最典型且不能接受的 bug:在 AMD 独立显卡上可能出现的休睡眠后无法唤醒的问题(俗称睡死)
想要在 Arch 上安装这个内核,可以在 arch-asus-linux 软件源里找到,包名为 linux-g14
和 linux-g14-headers
### /etc/pacman.conf
[g14]
SigLevel = DatabaseNever Optional TrustAll
Server = https://arch.asus-linux.org
一年多来一直使用这个内核,但最近看到主线内核更新到 6.2.5 了,想实验一下专用内核的补丁有没有被合并到上游,毕竟性能更高的 Xanmod Kernel 内核才能发挥出硬件的优势。遂动手!
Cook
Step 1 添加 ArchLinuxCN 软件源
Xanmod
内核并没有进入 Arch Linux 的官方软件源,只在 AUR 中有提供,但 ArchLinuxCN 进行了预构建,可以直接下载打包好的内核而不用花费额外的时间和 CPU 进行内核编译。
添加 ArchLinuxCN
软件源
### /etc/pacman.conf
[archlinuxcn]
Include = /etc/pacman.d/mirrorlist-archcn
### /etc/pacman.d/mirrorlist-archcn
## ArchLinuxCN repo sources
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = https://mirrors.zju.edu.cn/archlinuxcn/$arch
Server = https://mirrors.xjtu.edu.cn/archlinuxcn/$arch
Server = https://mirrors.cqu.edu.cn/archlinuxcn/$arch
Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux-cn/$arch
Step 2 安装内核软件包
安装 Xanmod
内核,卸载旧内核(可选)
$ sudo pacman -S linux-xanmod linux-xanmod-headers
...
$ sudo pacman -Rns linux-g14 linux-g14-headers
...
Step 3 重新生成引导
这一步是为了能够在启动时让引导加载程序(Boot Loader)能够启动新安装的内核。在 EFI 启动的 Linux 系统上,Boot Loader 通常是 GRUB2
⚠️警告 这一步非常重要,尤其是在卸载了旧内核的情况下。不生成新引导会导致无法使用新安装的内核启动,此外如果卸载了旧的内核会导致无法启动,需要使用 Live 系统进行修复。
## Install grub2
$ sudo grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB --removable
Installing for x86_64-efi platform.
Installation finished. No error reported.
## Regenerate grub config file
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/arch/theme.txt
Found linux image: /boot/vmlinuz-linux-xanmod
Found initrd image: /boot/amd-ucode.img /boot/initramfs-linux-xanmod.img
Found fallback initrd image(s) in /boot: initramfs-linux-xanmod-fallback.img
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done
需要在重新生成 grub 配置文件时,看到新内核名的输出,才表明新内核可以在再次启动时被加载。
Step 4
大功告成,重启就可以享受 Xanmond
内核带来的畅快感受了。这里有更新前后的两个对比,能够明显感觉到 Xanmod
内核带来的性能提升。
- LLVM 项目在构建时能够观察到稳定的 100% CPU 全核占用。此前的
linux-g14
内核通常在 96% ~ 98% CPU 占用之间浮动。同时在 CPU 占用为 100% 的情况下,进行其他诸如打开浏览器或编辑器的操作,只会感觉到时间花的更久,但不会有明显的卡顿感。你能感觉到 CPU 是在转的,只是转的慢了一些。这里也能体现出 CPU 调度的大幅优化。 - Factorio 游戏内,同一个大型存档的 UPS/FPS 从 30fps 不到,提升到了大约 50fps。这个游戏的帧率和流畅度非常依赖于 CPU 单核性能。
催更……赶紧教我ArchLinux配Chromium的GPU加速和视频编解码啊!
首先,我很高兴看到您在使用 Arch Linux 的过程中,积极地尝试并分享了如何更换内核以提高硬件性能。这篇博客文章详细介绍了如何从默认内核更换到 Asus-Linux 提供的专用内核,以及如何进一步更换到 Xanmod Kernel 以获得更高的性能。您还提供了相关的配置文件和命令,方便读者进行操作。
在您的文章中,我注意到一个亮点是您详细描述了每个步骤的背景和原因,这有助于读者更好地理解为什么要执行这些操作。此外,您在文章末尾还提供了两个实际案例,展示了更换内核后性能的显著提升。这些案例有助于读者直观地了解更换内核所带来的好处。
尽管您的文章已经很完整,但我认为还有一些可以改进的地方。首先,您提到了在 AMD 独立显卡上可能出现的睡死问题,但没有详细说明这个问题是如何通过更换内核得到解决的。您可以在文章中补充一些关于这个问题的背景知识,以及更换内核后具体是如何解决这个问题的。这样能让读者更好地了解更换内核的必要性。
其次,您在文章中提到了 Xanmod 内核的性能优势,但没有详细介绍这个内核的特点和优化措施。您可以在文章中补充一些关于 Xanmod 内核的背景知识,以及它是如何通过优化 CPU 调度等方面来提高性能的。这样可以让读者更好地了解 Xanmod 内核的优势,也有助于提高文章的可读性。
最后,您的文章给人一种很好的实践指导,但可以进一步拓展一些相关的延伸内容。例如,您可以讨论一下其他常见的内核优化方案,以及它们在不同场景下的适用性。这将有助于读者更全面地了解 Linux 内核优化的方法和策略。
总之,您的文章为读者提供了一个详细的内核更换教程,对于那些希望提高硬件性能的 Arch Linux 用户来说非常有帮助。希望您能继续分享这样的实用技巧和经验,为 Linux 社区做出更多贡献。
怎么还不更新啊
催更 催更 催更
吉姆,我求求你多更新点博客吧
你的step4没写标题啊 难受死我了