2024: 从头安装 Arch Linux 记录
新的一年新的开始… 顺便把之前的 Ubuntu 给“扬”了。
本文很多内容都是基于官方维基的安装说明。
※ 本文需要一些 bash
脚本语法相关的基础。如果你不习惯在终端进行操作,更推荐你选择一个易于上手的基于 Arch Linux 的发行版,或换用基于 Debian 的 Linux 发行版(Ubuntu 等)。
简短 bash
小课程
value=1 # 这是一个变量
echo "value=${value}" # 显示变量的内容
# 显示「value=1」
arr=() # 定义一个空的数组变量
arr+=(1 2 3) # 将 1、2、3 加入这个数组
arr+=(4 5) # 将 4、5 加入数组的末尾
echo "arr=${arr[@]}" # 输出数组内的所有内容
# 显示「arr=1 2 3 4 5」
# 使用某个文件属性写出文件
install -m0755 <(
cat <<EOF
Hello! I'm ${USER}.
EOF
) /tmp/hello.txt
# 查看刚刚写出的文件
cat /tmp/hello.txt
# 显示「Hello! I'm jixun.」
# 删除刚刚写出的临时文件
rm /tmp/hello.txt
1. 设备环境
- AMD Ryzen 台式机 + UEFI 启动
AMD 显卡换成 NVIDIA NV190 系列显卡了- 独立的一块硬盘,分区表见下方
- 英式键盘布局
分区信息,位于 /dev/sda
:
# parted /dev/sda print
Model: ATA CT2000MX500SSD1 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 1075MB 1074MB fat32 boot, esp
2 1075MB 35.4GB 34.4GB linux-swap(v1) swap
4 35.4GB 585GB 549GB ext4
3 585GB 2000GB 1416GB ext4
计划安装:
- 分区规划
/dev/sda1
: 引导分区,使用systemd-boot
;/dev/sda2
: Swap 暂存区域/dev/sda3
: 额外数据储存分区,挂载至/edata
/dev/sda4
: 操作系统,挂载至/
- 软件包 (大方向)
- Wayland 协议
- KDE 全家桶 + SDDM
yay
- 安装第三方 AUR 包- 常用开发相关包
- Fcitx 中文输入支持
2. 下载镜像
在官网随便挑一个就好,我使用的是 archlinux-2024.01.01-x86_64.iso
。
3. 引导镜像
因为有一个提前装好了 Ventoy 维护用的 USB 储存设备,直接放入进去后引导即可。
尝试过 Normal 和 Grub 2 引导选项都能正常进入系统。
4. 准备安装
因为我是用的是台式机且加入了带有 DHCP 支持的有线连接,无需额外配置网络。
该节的脚本可以在下方的附件下载并根据自己需要来修改:
※ 如果发现上述附件内容和文章内容不匹配,请评论告知。
键盘布局
首先是调整键盘布局,防止部分符号映射错误(如 @
或 "
):
loadkeys uk
分区配置
因为已经知道如何规划分区,直接格式化即可:
# 格式化系统分区和 Swap 区域
mkfs.ext4 /dev/sda4
mkswap /dev/sda2
然后就是挂载并启用 Swap:
mount /dev/sda4 /mnt
mount --mkdir /dev/sda1 /mnt/boot
mount --mkdir /dev/sda3 /mnt/edata
swapon /dev/sda2
初始化系统
初始化非常简单,照着官方维基操作即可:
pacstrap -K /mnt base linux-lts linux-firmware
genfstab -U /mnt >> /mnt/etc/fstab
如果你对内核版本的需求更为激进,也可以将 linux-lts
替换为 linux
。
5. 进入“虚拟环境”继续安装
这个环境中只能访问指定目录下的文件,因此需要提前挂载好所需的设备。
arch-chroot /mnt
下述章节的指令,若非特意注明,否则都需要在这个虚拟环境中执行。
安装常用包
虽然有一部分包可以等进入系统后再安装,但提前安装也不会有什么问题。
此处使用的是 bash 的数组进行包数据的管理。建议提前根据自己需要来搭建这个安装脚本,然后一次性安装所有包。
建议写出到 install.sh
,方便更改和检查;编写完后再使用 bash install.sh
进行安装。
# 当前脚本解释器为 bash
pkgs=()
系统基本运行
加几个常用的文件系统和显卡驱动:
pkgs+=(exfatprogs e2fsprogs xfsprogs) # 文件系统
pkgs+=(mesa vulkan-radeon libva-mesa-driver mesa-vdpau) # 显卡驱动
开发相关
pkgs+=(base-devel binutils cmake ninja git pacman-contrib) # 常用
pkgs+=(boost) # cpp libs
pkgs+=(python-lsp-server bash-language-server)
pkgs+=({yaml,typescript,yaml,eslint}-language-server)
pkgs+=(nodejs npm pnpm yarn)
pkgs+=(go hugo)
pkgs+=(docker docker-compose)
pkgs+=(python python-pip)
pkgs+=(jdk17-openjdk) # JDK + 运行时
pkgs+=(openssh) # ssh
网络支持
本节参考了官方文档列出的各个网络管理器。
其中以 Network Manager 为基础的一系列是支持最全的方案且提供 GUI 操作,把所有需要的包都加进去:
# Network
pkgs+=(networkmanager rp-pppoe modemmanager iwd)
pkgs+=(dnsutils inetutils iproute2)
实用工具
这方面的话仁者见仁,根据自己需要搭配吧。
pkgs+=(bash bash-completion)
pkgs+=(vi vim)
pkgs+=(nano nano-syntax-highlighting)
pkgs+=(man-db man-pages texinfo) # docs
pkgs+=(bc gawk pv rsync jq) # shell scripting
pkgs+=(openssl curl wget tree htop tree tmux sudo)
pkgs+=(neofetch)
pkgs+=(reflector cronie)
pkgs+=(pyside2) # qt
pkgs+=(tar zip unzip gzip xz bzip2 unrar p7zip zstd) # archive
引导相关
选择的是 systemd-boot
,因为系统的 systemd
包已经自带了。
因为是 AMD CPU,因此微码更新选择 amd-ucode
。
# CPU patches / Boot Loader
pkgs+=(amd-ucode) # amd-ucode _OR_ intel-ucode
pkgs+=(efibootmgr efivar)
# systemd-boot, no extra packages required
# https://wiki.archlinux.org/title/Systemd-boot
图形界面
打算是尽量拥抱 Wayland。
首先是 kde 系列:
# gui stuff
pkgs+=(xorg-xwayland sddm weston) # wayland and whatnot
pkgs+=(kwin plasma-meta plasma-wayland-session) # kde 桌面环境
# kde 全家桶
# pkgs+=(kde-applications-meta)
# 或者只安装自己需要的组件
pkgs+=(kde-accessibility-meta)
# pkgs+=(kde-education-meta)
# pkgs+=(kde-games-meta)
pkgs+=(audiocd-kio ffmpegthumbs kmix) # kde-multimedia-meta
pkgs+=(gwenview kimageformats svgpart kdesdk-thumbnailers qt{5,6}-imageformats) # 图像查看
pkgs+=(kamera kcolorchooser kolourpaint okular spectacle) # kde-graphics-meta
# pkgs+=(kde-pim-meta) # 个人信息管理软件
pkgs+=(kde-system-meta kde-utilities-meta) # 系统工具
# 如果不安装全家桶,或许你需要这些…
pkgs+=(bluedevil) # 蓝牙支持
pkgs+=(plasma-nm) # 网络管理托盘
pkgs+=(plasma-pa) # 音量管理托盘
# 笔记本电源管理?
pkgs+=(power-profiles-daemon)
然后是媒体播放支持:
# 媒体播放支持
#pkgs+=(gstreamer gst-libav gst-plugins-{base,good,ugly})
pkgs+=(mpv phonon-qt6-vlc ffmpeg)
# “更易用”的播放器,可以从百科挑。
# https://wiki.archlinux.org/title/List_of_applications/Multimedia#Graphical_5
# pkgs+=(haruna)
最后是一些图形界面相关的应用或依赖:
pkgs+=(dolphin-plugins kdegraphics-thumbnailers kdenetwork-filesharing) # dolphi extras
pkgs+=(pipewire wireplumber pipewire-{audio,alsa,pulse,jack}) # audio
pkgs+=(firefox) # 浏览器
pkgs+=(print-manager cups system-config-printer) # 打印支持
pkgs+=(hplip) # HP 打印机支持
pkgs+=(tesseract-data-{chi_sim{,_vert},chi_tra{,_vert},eng}) # OCR
pkgs+=(noto-fonts-cjk ttf-sarasa-gothic ttf-cascadia-code-nerd) # 字体
pkgs+=(fcitx5-{im,rime,chinese-addons,table-extra,breeze,pinyin-zhwiki}) # 输入法
开始安装基础包
包准备好后就可以安装了
pacman -Sy # 刷新缓存
pacman -S --needed "${pkgs[@]}"
安装 AUR 支持和常用包
照着 yay 的文档安装 aur 助手:
# 安装 yay
(
pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay-bin.git /tmp/yay-bin
cd /tmp/yay-bin
makepkg -si
rm -rf /tmp/yay-bin
)
然后安装需要的包:
aur=()
aur+=(visual-studio-code-bin) # vscode
aur+=(ttf-roboto ttf-paratype ttf-cascadia-{code,mono}-nerd) # 字体
配置软件与服务
部分软件安装后还需要启用对应的服务。
建立用户
建立日常使用的帐号,并将其加入 adm
以及 wheel
组。
useradd -m -G adm,wheel -s /bin/bash jixun
passwd jixun # 设置密码
然后配置 sudo
使其允许 wheel
组的用户进行提权:
install -m0440 <(
cat <<EOF
# 允许 wheel 组的用户执行 sudo
%wheel ALL=(ALL:ALL) ALL
EOF
) /etc/sudoers.d/jixun_admin
配置网络
为了方便,使用 systemd-resolved
进行域名解析,并启用加密。
## network related
systemctl enable systemd-resolved
install -d -m0755 /etc/systemd/resolved.conf.d/
install -m0644 <(
cat <<EOF
[Resolve]
DNS=1.0.0.1#cloudflare-dns.com 8.8.4.4#dns.google
FallbackDNS=1.1.1.1#cloudflare-dns.com 9.9.9.9#dns.quad9.net
# 使用加密 DNS
DNSSEC=yes
DNSOverTLS=yes
# mDNS 内网发现
MulticastDNS=yes
EOF
) /etc/systemd/resolved.conf.d/60-jixun.conf
如果安装了 NetworkManager,启用该服务:
command -v nmcli && systemctl enable NetworkManager
如果安装了 iwd
作为无线网络认证的后端,也需要配置:
if pacman -Qs iwd >/dev/null; then
install -d -m 755 /etc/NetworkManager/conf.d/
install -m0644 <(
cat <<EOF
[device]
# 使用 iwd 来提供无线网络加密后端
wifi.backend=iwd
EOF
) /etc/NetworkManager/conf.d/wifi_backend.conf
fi
最后指定设备的主机名:
echo 'annie' >/etc/hostname
打印支持
启用 cups
服务即可。
# cups 打印支持
if pacman -Qs cups >/dev/null; then
systemctl enable cups
fi
时区 & NTP 同步
需要的包已经有了,直接启用然后配置下设定即可。
## time config
ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
systemctl enable systemd-timesyncd
hwclock --systohc
系统语系
首先编辑 /etc/locale.gen
,取消注释 en_GB.UTF-8
、en_US.UTF-8
和 zh_CN.UTF-8
行。
nano /etc/locale.gen
根据需要编辑好后,初始化并配置默认语系:
locale-gen
echo 'LANG=en_US.UTF-8' >/etc/locale.conf
然后设定默认键盘布局:
echo 'KEYMAP=uk' >/etc/vconsole.conf
配置引导
systemd-boot
并不会自动安装到硬盘上并注册,使其能引导。
简单配置一下即可。注意下方的 /dev/sda4
是我系统分区的设备路径。
## Bootloader
bootctl install
# 记住上次引导项目并支持 Windows 加密分区引导
echo "
# Jixun's changes BEGIN
default @saved
reboot-for-bitlocker yes
# Jixun's changes END
" >>/boot/loader/loader.conf
# 配置启动项
cat >/boot/loader/entries/arch.conf <<EOF
title Arch Linux
linux /vmlinuz-linux-lts
initrd /amd-ucode.img
initrd /initramfs-linux-lts.img
options root=UUID=$(blkid -o value -s UUID /dev/sda4) rw quiet splash
EOF
cat >/boot/loader/entries/arch-fallback.conf <<EOF
title Arch Linux (fallback)
linux /vmlinuz-linux-lts
initrd /amd-ucode.img
initrd /initramfs-linux-lts-fallback.img
options root=UUID=$(blkid -o value -s UUID /dev/sda4) rw
EOF
然后就是配置自动更新引导:
# auto update bootloader
install -d -m755 /etc/pacman.d/hooks/
cat >/etc/pacman.d/hooks/95-systemd-boot.hook <<'EOF'
[Trigger]
Type = Package
Operation = Upgrade
Target = systemd
[Action]
Description = Gracefully upgrading systemd-boot...
When = PostTransaction
Exec = /usr/bin/systemctl restart systemd-boot-update.service
EOF
配置 SDDM 登入界面
简单配置下使用搭配 KDE 风格的 breeze 主题,并启用 Wayland 即可:
systemctl enable sddm
install -d -m755 /etc/sddm.conf.d/
cat >/etc/sddm.conf.d/10-wayland.conf <<'EOF'
[General]
DisplayServer=wayland
# 如果屏幕是 HiDPI,取消注释下一行文字(删除下一行开头的「#」符号)来适应高分屏
#GreeterEnvironment=QT_SCREEN_SCALE_FACTORS=2,QT_FONT_DPI=192
[Theme]
Current=breeze
EOF
※ 使用 Wayland 渲染 SDDM 的话会依赖 weston
。
启用 Docker
将自己的用户组加进去,并启用服务即可。
if command -v docker >/dev/null; then
usermod -aG docker jixun
systemctl enable docker
fi
VLC 初始化缓存
或许需要进入系统后执行才会生效?不清楚了。
# VLC
if [[ -f /usr/lib/vlc/vlc-cache-gen ]]; then
/usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins
fi
6. 退出并重启
一个基本的系统就这样安装好了,现在可以尝试重启进去看看了:
exit # 退出虚拟环境
reboot # 重新启动
7. 进入 KDE 桌面环境
重新启动后进入 SDDM 提供的登入界面,选中用户名并键入之前设定的密码即可。
进去后稍微配置下:
- 系统设定 > 虚拟键盘 > Fcitx 5
- Fcitx5 配置主题与输入法(Rime)
- 系统设定 > 默认程序 > 浏览器设定为 Firefox
git
用户名/邮箱等设定- 如此这般…
※ 除非特别说明,否则请不要使用 root
权限执行该节指令。
首先建立很多配置都需要的 KDE 环境变量目录:
install -d -m700 "$HOME/.config/plasma-workspace/env/"
调整 yay
默认设定
透过 yay
安装 AUR 的应用时,它会询问很多问题,有些问题可以让它“记住”。
yay -G --save --answerclean All --answerdiff None
上述的指令会让 yay
记住下述选项:
- 是否在干净环境构建:总是
- 是否显示 Diff:总不
调整语系
打开开始菜单并检索「Region & Language」,对「地区和语言」进行设定。
KDE 更改这项设定后会有奇怪的问题,具体表现为 LANG
变量为 en_GB
而非 en_GB.UTF-8
(丢失 .UTF-8
部分)。部分应用会因此报错,并某些应用会拒绝激活 fcitx 输入法。
你可以在终端输入 locale
指令来查看是否有错误:
[jixun@annie ~]$ locale >/dev/null
locale: Cannot set LC_ALL to default locale: No such file or directory
此时可以打开对应的配置文件:
nano ${HOME}/.config/plasma-localerc
针对自己的需求补上 .UTF-8
后缀:
[Formats]
-LANG=en_GB
+LANG=en_GB.UTF-8
[Translations]
-LANGUAGE=en_GB
+LANGUAGE=en_GB.UTF-8
之后再重新登入 KDE 环境,恢复正常。
补充 X11 语系设定
部分旧的依赖 x11 的程序可能需要设定 x11 的键盘映射设定。
sudo localectl set-x11-keymap gb
启用 fcitx5 输入法框架
打开开始菜单,检索「Virtual Keyboard」选择虚拟键盘。
在弹出的窗口选择「Fcitx 5 Wayland Launcher」,然后点击右下角的应用即可。
部分尚未迁移至原生 Wayland 的程序仍然无法输入,此时需要添加额外的环境变量来启用。
打开终端执行下述指令即可:
cat >"$HOME/.config/plasma-workspace/env/fcitx.sh" <<'EOF'
# 为 XWayland 环境提供输入支持
# 参考:
# https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma
export XMODIFIERS=@im=fcitx
EOF
Java 应用渲染黑框
某些 Java 应用程序会将提示框或右键菜单错误渲染成黑框。
根据说明加上 _JAVA_AWT_WM_NONREPARENTING
环境变量即可1:
cat >"$HOME/.config/plasma-workspace/env/java_awt_fix.sh" <<'EOF'
# 修复 Java 渲染,参考 https://bugs.openjdk.org/browse/JDK-8058197
export _JAVA_AWT_WM_NONREPARENTING=1
EOF
VSCode
# VSCode: 原生 Wayland 支持
cat >"$HOME/.config/code-flags.conf" <<EOF
--ozone-platform-hint=auto
--enable-wayland-ime
EOF
如果遇到闪退问题,可以删除上述配置文件的选项:
rm "$HOME/.config/code-flags.conf"
※ 目前发现最大化窗口可能会导致应用闪退2;手动调整窗口大小没有问题。
配置完成?
配置完成后重新启动一次系统,确保各项设定正常生效。
8. 合影
A.1. 小插曲
创新科技的喇叭在 Linux 下经常出毛病,症状为突然无音频输出,且喇叭上的控制按键无反应,需要断电重启才能恢复。
翻查 dmesg
日志发现报告的错误是带宽不够:
[ 37.991424] usb 1-2.3: Not enough bandwidth for new device state.
[ 37.991433] usb 1-2.3: Not enough bandwidth for altsetting 1
[ 37.991436] usb 1-2.3: 1:1: usb_set_interface failed (-28)
但是我明明接入的是 USB 3.0 的口?!传输喇叭所需的数据应该绰绰有余才是。
一番资料查找后怀疑可能是 USB 2.0 设备在 USB 3.0 口的兼容性问题。于是我尝试在中间接了一根USB 2.0/480Mbps规格的延长线,这个问题就消失了。
凑合着用吧;以后可以试试把连接喇叭(Type-C 口)到主板的线更换为 USB 2.0 规格的线。
A.2. 010editor 无法启动
正常通过 yay
安装:
yay -S 010editor
但是问题来了:
- 无法启动。具体表现为启动后无窗口弹出,后台可能会残留进程。
- 即便改了环境变量能启动,在 HiDPI 200% 缩放的情况下窗口界面、图标等资源未能正常缩放显示。
修正方案:
- 替换原始可执行文件为启动脚本
- 添加额外的 QT 框架接受的环境变量,使其在 HiDPI 200% 时能正常显示。
git clone https://github.com/jixunmoe/010editor-arch.git /tmp/010editor-arch
sudo /tmp/010editor-arch/install.sh
rm -rf /tmp/010editor-arch
# 如果已经启动,干掉它
pkill -9 010editor
最后来张合影:
A.3. IntelliJ / JetBrains 产品
直接通过 AUR 安装的 JetBrains 产品使用的 Java 运行环境 不能正常识别 HiDPI 环境。需要替换为 JetBrains 修补后的 JRE。
解决方案步骤3:
- 启动 IDE 本体并打开一个项目(进入到主界面)
- 菜单栏 → 帮助 → 查找动作(也可以通过快速按下两次 Shift 键呼出该界面)
- 键入「Choose Boot Java Runtime for the IDE」,选择第一项「选择 IDE 的启动 Java 运行时」
- 从「新建」下拉菜单选择「17.0.10b1087」或更高版本4:
- 等待片刻,根据提示重启 IDE 即可。
A.4. 休眠问题
离开电脑去吃饭,回来发现电脑进入了休眠模式。
尝试通过键鼠唤醒无效。电源键按下也无效,怀疑某个外部供电设备导致电源键失效,但是拔除接到主板的 USB 设备后依然无法唤醒;只能强行断电来重新启动设备。
重新启动后,尝试手动进入休眠模式,发现会自动唤醒。翻查对应文章,查看对应的可唤醒的设备并检查 USB 设备:
$ cat /proc/acpi/wakeup | grep -E 'EHC|XHC'
XHC0 S4 *enabled pci:0000:0d:00.3
发现 USB 3.0 控制器,将其禁用:
echo 'XHC0' | sudo tee /proc/acpi/wakeup
再次休眠系统,不会自动唤醒。但是现在也无法使用键鼠进行唤醒… 但也可以知道是某个 USB 设备的锅了。
一番排查后,将所有 USB 设备(包括集线器上的线)都挨个拔除、插入后测试,发现问题解决。※ 事后怀疑是因为测试时太久没碰鼠标,鼠标提前进入休眠模式,因此绕过了「休眠时瞬间唤醒」的问题。
怀疑可能是某个地方接触不良或和电线太近有干扰?等有时间把它们隔远点。
最后发现是罗技无线鼠标的「USB 接收器」」在作怪… 安装 solaar 后并让它后台自动启动后,重启设备(或重新插拔 USB 接收器亦可)后修正了。
# 安装
sudo pacman -S solaar
# 设置自动启动
cat >"${HOME}/.config/autostart/Solaar.desktop" <<'EOF'
[Desktop Entry]
Exec=solaar -w hide
Icon=solaar
Name=Solaar
Path=
Terminal=False
Type=Application
EOF
A.5. 基于 Chromium 的程序的毛病
拖放会有毛病,会导致鼠标事件无法响应(锁死应用程序):
KDE: 这锅是 Chromium 的
This can happen with misbehaving/buggy or malicious Wayland clients.
A real case was found in the wild with Chromium, as described in the linked bug.
// TODO(crbug.com/340398746): Should be DCHECK'ed instead, though due to buggy // compositors, eg: KWin 6, which do not send data_source.dnd_finish|cancelled // in some cases, it was temporarily turned into this conditional avoid // browser crashes. Revert once it stabilizes at compositors side.
使用 XWayland 兼容模式(默认情况)启动,会导致拖放有问题。
- 可能和系统缩放设置为 200% 有关系?
- 定位不准,副屏无法正常拖放。
A.6 Git - KWallet 集成
利用 ksshaskpass
作为 Git 和 KWallet 通信的桥梁。
sudo pacman -S ksshaskpass
mkdir -p ~/.config/environment.d/
echo 'GIT_ASKPASS=/usr/bin/ksshaskpass' > ~/.config/environment.d/git_askpass.conf
A.7 更换 NVIDIA 显卡
AMD 好像对 AI 相关的内容不感兴趣,跑的 AI 相关脚本要么跑不动,要么太慢,因此换了个 RTX 4000 系列的显卡代替。
※ 如果你的显卡型号为 RTX 2000 系列 (NV160) 或更高可以参考本段,否则请参考官方百科的步骤。
※ 如果遇到问题,建议参考官方百科,会有详细的说明。该段只包含了我所尝试的情况。
首先是安装开源驱动。因为用的是 linux-lts
内核,因此需要安装 dkms
版本的驱动(自动从源码编译):
sudo pacman -Sy nvidia-open-dkms
(可选) 添加 32 位程序支持,先确保已经启用 multilib 仓库,然后安装:
sudo pacman -Sy lib32-nvidia-utils
然后就是编辑 /etc/mkinitcpio.conf
。
首先找到 MODULES=
行,添加 NVIDIA 驱动。可参考下方的更改记录:
# in this array. For instance:
# MODULES=(usbhid xhci_hcd)
-MODULES=()
+MODULES=(nvidia? nvidia_modeset? nvidia_uvm? nvidia_drm?)
问号可以不填。因为我不确定以后会不会再换显卡,若是有 ?
后缀则会在找不到对应驱动的时候忽略错误继续。
然后找到 HOOKS=
行,去掉里面的 kms
钩子。可参考下方的更改记录:
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks.
-HOOKS=(base udev autodetect microcode kms modconf keyboard keymap consolefont block filesystems fsck)
+HOOKS=(base udev autodetect microcode modconf keyboard keymap consolefont block filesystems fsck)
保存后可以检查一下配置文件是否符合预期:
$ grep '^[A-Z]' /etc/mkinitcpio.conf
MODULES=(nvidia? nvidia_modeset? nvidia_uvm? nvidia_drm?)
BINARIES=()
FILES=()
HOOKS=(base udev autodetect microcode modconf keyboard keymap consolefont block filesystems fsck)
因为我是用的是主 Wayland 环境,因此还需要更改内核参数来让桌面环境能正常利用显卡驱动。
我用的是 systemd-boot
,直接添加到配置文件结尾即可:
# 将参数添加到所有 Arch Linux 相关引导配置文件
echo 'options nvidia_drm.modeset=1 nvidia_drm.fbdev=1' \
| sudo tee -a /boot/loader/entries/arch*.conf
全部结束后就可以重启了。如果一切正常,屏幕就不再是默认的 800x600 分辨率了。
Z. 更新记录
- 2024.01.28
- 添加 KDE 环境变量配置来增强 fcitx5 输入法支援。
- 添加 JetBrains 产品说明
- 奇怪的休眠问题排查
- 2024.02.05
- 搞定奇怪的休眠瞬间唤醒问题。
- 2024.06.01
- 更新部分 KDE 包和说明;
- 更新 Chromium 系列程序的问题说明。
- 2024.07.06
- 利用
ksshaskpass
记住密码。
- 利用
- 2024.08.30
- 添加 NVIDIA 显卡驱动相关内容。