3958 字
20 分钟
Fedora 一些随便的解

RedHat/Fedora LOGO 版权由红帽所有;封面来自于 Reckless 毛子
侵权则删。

前言#

WARNING

本文章没有适用性,主要针对本人使用。
如果能帮到您,万分荣幸!

按照惯例,贴一下 Fastfetch(这次是无 Logo 版)

ne0w0r1d@Ne0-Cyrene
-------------------
OS: Fedora Linux 43 (KDE Plasma Desktop Edition) x86_64
Host: ROG Zephyrus M16 GU603ZM_GU603ZM (1.0)
Kernel: Linux 6.18.6-cachyos1.fc43.x86_64
Uptime: 5 hours, 41 mins
Packages: 3495 (rpm), 37 (flatpak), 5 (linglong)
Shell: bash 5.3.0
Display (AUOC199): 2560x1600 @ 1.25x in 16", 165 Hz [Built-in]
DE: KDE Plasma 6.5.5
WM: KWin (Wayland)
WM Theme: Breeze
Theme: Breeze (Dark) [Qt], Breeze-Dark [GTK2], Breeze [GTK3]
Icons: breeze-dark [Qt], breeze-dark [GTK2/3/4]
Font: Noto Sans (10pt) [Qt], Noto Sans (10pt) [GTK2/3/4]
Cursor: breeze (24px)
Terminal: konsole 25.12.1
CPU: 12th Gen Intel(R) Core(TM) i7-12700H (20) @ 4.70 GHz
GPU 1: NVIDIA GeForce RTX 3060 Mobile / Max-Q [Discrete]
GPU 2: Intel Alder Lake-P Integrated Graphics Controller @ 1.40 GHz [Integrated]
Memory: 4.41 GiB / 7.47 GiB (59%)
Swap: 4.72 GiB / 23.47 GiB (20%)
Disk (/): 275.35 GiB / 911.57 GiB (30%) - xfs
Disk (/run/media/ne0w0r1d/Ne0_Cifera): 690.49 GiB / 931.45 GiB (74%) - exfat
Local IP (wlo1): 192.168.2.54/24
Battery (ASUS Battery): 80% [AC Connected]
Locale: zh_CN.UTF-8

2025 年 1 月末,我抛弃了自己最喜欢的发行版 openSUSE Tumbleweed Slowroll,转向了 IBM | RedHat Fedora GNU/systemd-linuxd-rs 43 KDE Plasma Desktop Edition

并为此去 bugzilla 🇫 了红帽(因为 Kate 缺翻译,而且就 Fedora 缺翻译)。而对比刚发布 Fedora 43 的时候,一堆 Python ABI Break Change 导致我的达芬奇无法正常使用,这一次也正好可以使用了。

那这个文章就来说说我是如何调教我的 IBM | RedHat Fedora GNU/systemd-linuxd-rs 43 KDE Plasma Desktop Edition 的。

从 openSUSE 跳槽 Fedora 的原因#

其实很简单,大伙也都知道,openSUSE 的 NVIDIA-Open 驱动是一款内核更新就会炸的静态版本。但自带签名,驱动没法用那一定是一款我的问题。

但我不真不想在 N 卡驱动没更新的时候要等半个月不能更新内核的痛苦中而导致无法滚动更新。

而且我的滚动更新是一款交给 PackageKit 自动更新的滚动更新。这样可能就会导致我下次开机可能就是黑屏,以至于我有时候真不想更新内核

而 Fedora 是 RedHat Akmod,带来的好处就是个跟着内核更新可以自动编译(只要内核用的编译器是 GCC/LLVM 不开链接时优化就没问题)。

而且 Fedora 是可以自己换内核的,CachyOS 也有为 Fedora 打造专属优化的内核,而且带有 scx、asus-linux、ananicy 功能。

但可惜 Fedora 的 BTRFS 默认不支持快照我也懒得折腾支持了,所以我就只能用 XFS 保证硬盘性能了。

好了扯了那么多也该说说 Fedora 的一些问题了。

删除沟槽的 Fedora Flatpak 私货仓库,并启用 Flathub#

沟槽的红帽不知道为啥不使用 Flathub,而是用自己的 Flatpak 仓库当作默认的软件分发渠道。

作为 IBM | RedHat Fedora GNU/systemd-linuxd-rs 43 KDE Plasma Desktop Edition 用户而不是 IBM | RedHat Fedora GNU/systemd-linuxd-rs 43 Kinoite Atomic Desktop 用户。我大可直接删除 Fedora Flatpak。

CAUTION

如果你是 IBM | RedHat Fedora GNU/systemd-linuxd-rs Atomic Desktops 用户。
千万不要删除 Fedora Flatpak。
系统的各项依赖使用的是来自 Fedora Flatpak 的。

KDE Discover 操作#

打开 Discover - > 设置 -> 添加 Flathub -> 将 Flathub 放在最顶上 -> 禁用 Fedora Flatpak -> 删除 Fedora Flatpak Discover 设置

Inhuman Desktop 操作#

不提供,自己找。

命令行操作#

使用 flatpak 命令进行管理.

Terminal window
flatpak remotes # 列出仓库
名称 选项
flathub system,filtered
flatpak remote-delete $REPONAME # 删除仓库,将 REPONAME 改成你不想保留的仓库

删除 ibus#

ibus-libs 的话没法卸载,红帽有意捆绑保留,但可以通过 rpm 强力清除,这里按下不表,但是其他的直接通过 sudo dnf rm ibus ibus-chewing ibus-gtk3 ibus-gtk4 卸载

编解码器#

众所周知,红帽是美国公司,受美国《专利法》和《数字千年版权法》保护。

视频、音频、图片的正常输出,都需要进行编解码器的更换。

首先!一定要启用 RPMFusion 仓库!这是一个第三方仓库,用于发布 Fedora 和 EL 系不想发或者不能发布的软件。而下文的 NVIDIA 驱动,也要通过 RPMFusion 仓库进行。

启用 RPMFusion 仓库#

可能用 KDE Plasma 欢迎向导或 Inhuman Desktop Tour 没法打开所有的仓库,建议直接安装 RPM 包。

Free:

Terminal window
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

NonFree:

Terminal window
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

更换组建、Mesa、安装额外编解码器#

跟着以下步骤进行安装即可

Terminal window
sudo dnf swap ffmpeg-free ffmpeg --allowerasing # 更换 FFmpeg 包
sudo dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin # 多媒体包,并包含 GStreamer 插件的 PackageKit
sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld # 更换 Free World 版本 Mesa VAAPI,避免无法硬件加速
sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld # 更换 Free World 版本 Mesa VDPAU,避免无法硬件加速
sudo dnf in libheif-freeworld # 安装 libheif-freeworld 以提供 libheif 支持
sudo dnf install intel-media-driver # 安装 IMD 以启用 Intel QSV 支持

NVIDIA 用户须知#

如果你是 N 卡用户,想在 FireFox 和 Chrome 进行硬件解码,将会在下文阐述。

NVIDIA 驱动(安全启动)#

安装前准备#

启用 RPMFusion 仓库#

请前往 编解码器 - 启用 RPMFusion 仓库自行启用

生成密钥,并 Enroll MOK(不止 NVIDIA 驱动,所有 RPMFusion 内的 akmods 驱动均能用)#

首先请使用以下命令安装依赖。

Terminal window
sudo dnf install kmodtool akmods mokutil openssl

使用 kmodgenca -a 生成适用于 akmods 的密钥

并执行 sudo mokutil --import /etc/pki/akmods/certs/public_key.der

然后输入导入密码,重启电脑,进行 Enroll。

安装#

使用 RPMFusion 的仓库安装:

Terminal window
sudo dnf in akmod-nvidia xorg-x11-drv-nvidia-cuda xorg-x11-drv-nvidia-cuda-libs

安装完后重启。

启用 FireFox 和 Google Chrome 硬件解码#

安装 libva-nvidia-driver 即可,安装完后可查看vainfo

如果输出了如下内容,则为成功安装

vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: VA-API NVDEC driver [direct backend]

注意事项#

Nvidia kernel module missing, falling back to nouveau( NVIDIA 内核模块丢失,正在回退至 Nouveau)#

WARNING

该行为一般是在双系统/更新 BIOS/微软安全启动密钥更新的情况下出现。
本文不推荐关闭安全启动。

首先,把安全启动关闭。

然后再执行一次 sudo mokutil --import /etc/pki/akmods/certs/public_key.der ,设置密码,重启,输入密码,打开安全启动即可。

如果安全启动是正常的话,请执行一次 sudo akmods --force

nvidia-smi 功率不正确#

启用 nvidia-powerd 服务即可。如果想让显卡在特定条件下不休眠,可以顺带启动 nvidia-nvidia-persistenced 服务

CachyOS 内核+CachyOS 配置文件(带安全启动)#

安装前准备#

检查特性集#

Terminal window
ld.so --help | grep "(supported, searched)"
 x86-64-v3 (supported, searched)
 x86-64-v2 (supported, searched)

CachyOS 主线内核需要 支持 x86_64V3,而如果你恰巧只有一个 V2,请安装 kernel-cachyos-ltskernel-cachyos-server,但请注意,只有 V3 支持 BORE 调度器。

SELinux#

请执行如下命令,可让 SELinux 放行内核模块:

Terminal window
sudo setsebool -P domain_kernel_load_modules on

安装#

启用 COPR#

毕竟属于第三方内核,不归红帽管,所以需要自行启用 CachyOS 的 COPR

WARNING

COPR 是红帽的社区构建服务,专注于 RPM 系发行版。
用户内容需要自己鉴别,红帽和本文并不负责

Terminal window
sudo dnf copr enable bieszczaders/kernel-cachyos # GCC 版本,推荐 NVIDIA + 安全启动用户使用
sudo dnf copr enable bieszczaders/kernel-cachyos-lto # LTO 版本,推荐 Non-NVIDIA 用户用户使用

当然,大伙也可以使用 mozixun 的灵车内核,同样,推荐 N 卡用户关闭安全启动或者非 N 卡用户使用。

TIP

相较于 CachyOS 官方移植内核,mozixun 的内核使用了 O3+Full-LTO+Polly+ 默认 PREEMPT_LAZY 编译,理论上来说极限性能会比官方移植内核强。
但与之对应的问题是,CachyOS 官方移植内核,会从 linux-next backport 一些对我而言很有必要的东西,如早期的 NTSync(现在都支持了),以及 asus-armouy(6.19 才支持)。

Terminal window
sudo dnf copr enable mozixun/CachyOS-Kernel-LTO-x64-Normal # X86-64v2
sudo dnf copr enable mozixun/CachyOS-Kernel-LTO-x64-v3 # X86-64v3 - AVX2
sudo dnf copr enable mozixun/CachyOS-Kernel-LTO-x64-v4 # X86-64v4 - AVX512

安装#

CachyOS 官方移植#

GCC 版本

Terminal window
sudo dnf in libcap-ng libcap-ng-devel procps-ng procps-ng-devel kernel-cachyos kernel-cachyos-devel-matched

LTO 版本

Terminal window
sudo dnf in kernel-cachyos-lto kernel-cachyos-lto-devel-matched

Mozixun 灵车版#

Terminal window
sudo dnf in kernel-cachyos-lto kernel-cachyos-lto-core kernel-cachyos-lto-devel kernel-cachyos-lto-devel-matched kernel-cachyos-lto-modules # 其他显卡
sudo dnf in kernel-cachyos-lto-nvidia-open # NVIDIA 开放内核模块,请关闭安全启动

签名#

因为 Fedora 的 GRUB-BLS 存在 shimlock 机制,会检测内核是否签名,故需要自己签名。

首次使用签名#

TIP

参考:《GitHub Gist - mikaeldui/CachyOS Kernel for Fedora with Secure Boot.md》

  1. 安装依赖
Terminal window
sudo dnf install pesign openssl kernel-devel mokutil keyutils
  1. 允许自己的用户签名内核
Terminal window
sudo echo "$USER" | sudo tee -a /etc/pesign/users
sudo /usr/libexec/pesign/pesign-authorize
  1. 生成签名用的证书(推荐放在主目录)
Terminal window
openssl req -new -x509 -newkey rsa:2048 -keyout "key.pem" \
-outform DER -out "cert.der" -nodes -days 36500 \
-subj "/CN=CachyOS Secure Boot/" # /CN=CachyOS Secure Boot/ 中的 CachyOS Secure Boot 可以自己定义,但一定要自己记住,后面要用,本人叫 NewCachy,key.pem/cert.der 也同理,别改后缀,但是一定要记住名字,也要记住位置
openssl pkcs12 -export -out key.p12 -inkey key.pem -in cert.der # key.pem/cert.der 是上面生成证书的文件名字,key.p12 也同理,这是输出文件,名字自定,后缀别改,记住位置和名字
sudo certutil -A -i cert.der -n "CachyOS Secure Boot" -d /etc/pki/pesign/ -t "Pu,Pu,Pu" # CachyOS Secure Boot 中的 CachyOS Secure Boot 可以自己定义,但一定要自己记住,后面要用,本人叫 NewCachy,要跟上面的 OpenSSL 生成的密钥 CN 一样,cert.der 上面生成证书的文件名和位置
  1. 导入证书
Terminal window
sudo pk12util -i key.p12 -d /etc/pki/pesign # 用上面的生成的 p12 文件
sudo mokutil --import "cert.der" # 导入上面生成的公钥文件,输入完密码重启
  1. 签名内核
Terminal window
cd /boot # 进入引导目录
sudo pesign --certificate 'CachyOS Secure Boot' \ # 这里的 CachyOS Secure Boot 需要自己注意上面定义的证书名字
--in vmlinuz-6.18.6-cachyos1.fc43.x86_64 \ # 可输入 vmlinuz- 然后补全,反正中间一定是 cachyos1,内核版
--sign \
--out vmlinuz-6.18.6-cachyos1.fc43.x86_64.signed # 输出的内核文件,也可以自动补全后加入 .signed
sudo mv vmlinuz-6.18.6-cachyos1.fc43.x86_64.signed vmlinuz-6.18.6-cachyos1.fc43.x86_64 # 替换内核,善用自动补全

自动签名和自动设置启动项钩子#

毕竟总不可能每次安装内核手动签名内核吧,而且自启动选项有时候可能也没法改动,故可以设置如下的钩子,请放在 /etc/kernel/postinst.d/

自动签名 00-signing#

#!/bin/sh
set -e
KERNEL_IMAGE="$2"
MOK_KEY_NICKNAME="CachyOS Secure Boot" # 这个是上面设置的密钥名字,不再赘述
if [ "$#" -ne "2" ] ; then
       echo "Wrong count of command line arguments. This is not meant to be called directly." >&2
       exit 1
fi
if [ ! -x "$(command -v pesign)" ] ; then
       echo "pesign not executable. Bailing." >&2
       exit 1
fi
if [ ! -w "$KERNEL_IMAGE" ] ; then
       echo "Kernel image $KERNEL_IMAGE is not writable." >&2
       exit 1
fi
echo "Signing $KERNEL_IMAGE..."
pesign --certificate "$MOK_KEY_NICKNAME" --in "$KERNEL_IMAGE" --sign --out "$KERNEL_IMAGE.signed"
mv "$KERNEL_IMAGE.signed" "$KERNEL_IMAGE"

然后使用:sudo chown root:root /etc/kernel/postinst.d/00-signing ; sudo chmod u+rx /etc/kernel/postinst.d/00-signing设置文件权限

自动设置启动项 99-default#

#!/bin/sh
set -e
grubby --set-default=/boot/$(ls /boot | grep vmlinuz.*cachy | sort -V | tail -1)

然后使用: sudo chown root:root /etc/kernel/postinst.d/00-signing ; sudo chmod u+rx /etc/kernel/postinst.d/00-signing 设置文件权限。

注意事项#

Bad Shim#

WARNING

该行为一般是在双系统/更新 BIOS/微软安全启动密钥更新的情况下出现。
也有可能是更新后没有自动签名。
本文不推荐关闭安全启动。

首先,把安全启动关闭。

然后再执行一次 sudo mokutil --import $KEY ,设置密码,重启,输入密码,打开安全启动即可。($KEY 是指密钥文件,相对位置和绝对位置均可)

如果是没有被 Windows Update 毒害,没有更新 BIOS 和微软安全启动密钥。

则需要考虑重新签名内核,请直接使用 签名 - 首次使用签名 - 5. 签名内核 的方式手动签名一次。(确保 MOK 存在,刚刚更新就炸了一次 shim,可能跟 PackageKit 有关,也有可能跟安装后脚本权限有关)

无法使用 NVIDIA 驱动#

  • 官方 GCC 内核 + 安全启动:请参考上面的安装 NVIDIA 驱动,以及检查一下签名是否掉了,然后如果 Nouveau 进去 SDDM 后(GDM 不熟),进入 TTY 重新导入,重新使用 sudo akmods --force
  • 官方 LTO 内核:请使用 GCC 内核
  • Mozixun LTO 内核:请使用官方 GCC 内核或关闭安全启动使用 Mozixun 的 LTO NVIDIA-OPEN 内核

使用了 CachyOS 内核后其他方面的性能调优#

通用调优#

首先安装如下套件:

Terminal window
sudo dnf in ananicy-cpp cachyos-ananicy-rules cachyos-settings scx-scheds-git scxctl scx-manager --allowerasing # 因为需要更换 ZRAM 方案,所以需要 allowerasing
  • ananicy-cpp:一个用于自动调节可执行程序nice值的守护进程。nice值表示了在为特定可执行程序分配CPU资源时的优先级。1
  • cachyos-ananicy-rules:CachyOS 的 ananicy-cpp 规则
  • cachyos-settings:CachyOS 的性能调优文件
  • scx-scheds-git:SCX 调度器主线版本,一个可拓展调度器框架,允许在不修改内核代码的情况下通过 BPF(Berkeley Packet Filter)或 eBPF 来实现自定义调度策略,具有少量的性能提升效果。2
  • scxctl:SCX 调度器的 CLI 控制器
  • scx-manager: SCX Loader 的 GUI 控制

然后启用一下 ananicy-cpp 服务,打开 scx-manager 选择合适的调度器方案即可。

笔记本调优#

默认的 tuned 配置文件对我而言会严重限制性能,所以直接用 Bazzite 的配置文件即可,tuned 配置文件在 /etc/tuned/profiles

  • balanced-bazzite.conf/tuned.conf(平衡)
#
# tuned configuration
#
[main]
summary = General non-specialized tuned profile with added Bazzite tweaks
include = balanced
[audio]
# See 17c869d
timeout=0
[sysctl]
# The swappiness parameter controls the tendency of the kernel to move
# processes out of physical memory and onto the swap disk.
# 0 tells the kernel to avoid swapping processes out of physical memory
# for as long as possible
# 100 tells the kernel to aggressively swap processes out of physical memory
# and move them to swap cache
vm.swappiness = 180
vm.watermark_boost_factor = 0
vm.watermark_scale_factor = 125
vm.dirty_bytes = 268435456
vm.dirty_background_bytes = 134217728
vm.page-cluster = 0
[sysfs]
/sys/devices/system/cpu/amd_pstate/cpb_boost=enabled
/sys/devices/system/cpu/intel_pstate/no_turbo=0
[script]
script=${i:PROFILE_DIR}/script.sh

对应的脚本 balanced-bazzite.conf/script.sh

#!/bin/bash
. /usr/lib/tuned/functions
start() {
[ "$(/usr/bin/systemctl is-enabled scx_loader.service)" = "enabled" ] && /usr/bin/scxctl switch -m auto
return 0
}
stop() {
return 0
}
process $@
  • balanced-battery-bazzite.conf/tuned.conf (电池平衡,需要前者)
#
# tuned configuration
#
[main]
summary = Balanced profile biased towards power savings changes for battery with added Bazzite tweaks
include = balanced-bazzite
[cpu]
energy_performance_preference=balance_power
boost=1
[audio]
timeout=10
[video]
panel_power_savings=1
  • throughput-performance-bazzite/tuned.conf(高吞吐量性能)
#
# tuned configuration
#
[main]
summary = General non-specialized tuned profile with added Bazzite tweaks
include = throughput-performance
[cpu]
boost=1
[audio]
# See 17c869d
timeout=0
[sysctl]
# The swappiness parameter controls the tendency of the kernel to move
# processes out of physical memory and onto the swap disk.
# 0 tells the kernel to avoid swapping processes out of physical memory
# for as long as possible
# 100 tells the kernel to aggressively swap processes out of physical memory
# and move them to swap cache
vm.swappiness = 180
vm.watermark_boost_factor = 0
vm.watermark_scale_factor = 125
vm.dirty_bytes = 268435456
vm.dirty_background_bytes = 134217728
vm.page-cluster = 0
[sysfs]
/sys/devices/system/cpu/amd_pstate/cpb_boost=enabled
/sys/devices/system/cpu/intel_pstate/no_turbo=0
[script]
script=${i:PROFILE_DIR}/script.sh

对应的脚本 throughput-performance-bazzite/script.sh

#!/bin/bash
. /usr/lib/tuned/functions
start() {
[ "$(/usr/bin/systemctl is-enabled scx_loader.service)" = "enabled" ] && /usr/bin/scxctl switch -m gaming
return 0
}
stop() {
return 0
}
process $@
  • powersave-bazzite/tuned.conf
#
# tuned configuration
#
[main]
include = powersave
[sysfs]
/sys/devices/system/cpu/intel_pstate/no_turbo=1
/sys/devices/system/cpu/amd_pstate/cpb_boost=disable
[video]
radeon_powersave=dpm-balanced, auto
panel_power_savings=0
[script]
script=${i:PROFILE_DIR}/script.sh

对应脚本 powersave-bazzite/script.sh

#!/bin/bash
. /usr/lib/tuned/functions
start() {
[ "$USB_AUTOSUSPEND" = 1 ] && enable_usb_autosuspend
[ "$(/usr/bin/systemctl is-enabled scx_loader.service)" = "enabled" ] && /usr/bin/scxctl switch -m powersave
enable_wifi_powersave
return 0
}
stop() {
[ "$USB_AUTOSUSPEND" = 1 ] && disable_usb_autosuspend
disable_wifi_powersave
return 0
}
process $@
  • powersave-battery-bazzite/tuned.conf(需要前者)
#
# tuned configuration
#
[main]
summary = Optimize for low power consumption with added Bazzite tweaks
include = powersave-bazzite
[video]
radeon_powersave=dpm-battery, auto
panel_power_savings=3

SELinux#

玲珑#

用玲珑的时候可能会出现 AVC 拒绝警告,这个可以通过自己设置规则完成

Terminal window
sudo ausearch -c 'll-box' --raw | audit2allow -M my-llbox # 生成规则
sudo semodule -i my-llbox.pp # 应用规则

Howdy#

新建howdy.te文件

module howdy 1.0;
require {
type lib_t;
type xdm_t;
type v4l_device_t;
type sysctl_vm_t;
class chr_file map;
class file { create getattr open read write };
class dir add_name;
}
#============= xdm_t ==============
allow xdm_t lib_t:dir add_name;
allow xdm_t lib_t:file { create write };
allow xdm_t sysctl_vm_t:file { getattr open read };
allow xdm_t v4l_device_t:chr_file map;

然后

Terminal window
sudo checkmodule -M -m -o howdy.mod howdy.te
sudo semodule_package -o howdy.pp -m howdy.mod
sudo semodule -i howdy.pp

Howdy Pam.d 配置#

在自己的桌面/锁屏/登录管理器中,以及 system-auth 里面加入这两句话

auth sufficient pam_unix.so try_first_pass likeauth nullok
auth sufficient pam_howdy.so

realtime 设置#

除了可以使用 scx 完成设置之外,也可以使用如下方案进行

首先安装 realtime-setup 并启用 realtime 服务,加入实时用户组。

Terminal window
sudo dnf in realtime-setup
sudo systemctl enable realtime-setup.service
sudo systemctl enable realtime-entsk.service
sudo usermod -aG realtime $(whoami)

然后重启

OTD#

跟 openSUSE 不同,去 OpenTabletDriver 的仓库下载 RPM 安装即可。Fedora 的仓库内有 dotNET 运行时安装包。

END#

至于达芬奇和做音乐的事儿后面再说!现在差不多也说完了遇到了问题,如果还有别的问题的话,我再补充?

Footnotes#

  1. Arch Linux CN Wiki - 性能优化

  2. Arch Linux CN Wiki - Scx-scheds

Fedora 一些随便的解
https://ne0w0r1d.top/posts/fedora-issues/
作者
Ne0W0r1d 新界
发布于
2026-02-01
许可协议
CC BY-NC-SA 4.0