前段时间电脑经常出现关机/重启时整个界面卡住,只能按住电源键强制重启的情况,到 Arch Forum 发帖后,发现是 NVIDIA 显卡驱动的问题,需要降级到 535xx。在降级的过程中发现,之前安装 Intel 显卡和 NVIDIA 显卡驱动时,安装了过时的驱动(博客害人,还是要看 wiki),因此这里将整个显卡驱动安装梳理一遍。
1. Arch 显卡驱动安装
1.1 Intel 显卡驱动
参考文档:
安装:
- mesa: OpenGL drivers
- lib32-mesa: OpenGL drivers (32-bit)
- mesa-utils: Essential mesa utilities
- vulkan-intel: Vulkan driver for Intel GPUs
- lib32-vulkan-intel: Vulkan driver for Intel GPUs (32-bit)
对于 Gen 11 及以上的 CPU,由于 xf86-video-intel 缺少对 11 代及以上 CPU 的支持,因此不要安装 xf86-video-intel,安装后可能导致界面卡死的情况。
1.2 NVIDIA 显卡驱动
参考文档:
1.2.1 最新版本安装:
- nvidia: NVIDIA drivers for linux (or nvidia-open)
- nvidia-utils: NVIDIA drivers utilities, include OpenGL implementation and Vulkan driver
- lib32-nvidia-utils: NVIDIA drivers utilities (32-bit), include OpenGL implementation and Vulkan driver
- opencl-nvidia: OpenCL implementation for NVIDIA
- lib32-opencl-nvidia: OpenCL implementation for NVIDIA
- nvidia-settings: Tools for configuring the NVIDIA graphics driver
- nvidia-prime (extra): NVIDIA Prime Render Offload configuration and utilities
1.2.2特定旧版本安装(aur):
- nvidia-535xx-dkms: replacement for nvidia package
- nvidia-535xx-utils
- lib32-nvidia-535-utils
- opencl-nvidia-535xx
- lib32-opencl-nvidia-535xx
- nvidia-535xx-settings
- nvidia-prime (extra)
1.2.3 DRM kernel mode settings
参考文档:Wiki: NVIDIA - DRM kernel mode settings
原因:
- Wayland:使得合成器更加丝滑
- Xorg:运行 rootless Xorg
步骤:
- 在 grub.cfg 中添加内核模块参数
nvidia_drm.modeset=1
(nvidia-util 应该是帮忙做了这件事)
Early loading:
- 修改 mkinitcpio 配置文件
/etc/mkinitcpio.conf
,添加模块nvidia nvidia_modeset nvidia_uvm nvidia_drm
- 重新生成 initramfs 镜像:
sudo mkinitcpio -P
验证:
sudo cat /sys/module/nvidia_drm/parameters/modeset
应该输出Y
ps -o user= -C Xorg
1.3 Xorg 驱动安装
参考文档:
不要安装 xf86-video-intel, xf86-video-nouveau, xf86-video-vesa,而是使用 Xorg 默认的 modesetting。
1.4 NVIDIA 显卡驱动降级
Forum: Repeated kernel problems/freezes since 6.7.6
Arch Forum 中 这篇帖子 指出,NVIDIA driver 550 版本存在问题,会导致关机或重启时界面冻结,需要降级到 535 版本。降级方式直接从 aur 中安装 535xx 版本即可,需要移除对应的最新版本驱动。
安装 nvidia-535xx-settings 时,需要降级依赖 libxnvctrl,即需要先安装 libxnvctrl-535xx (aur)。
1 | # 降级的 pkglog |
1.5 视频硬件加速
参考文档:
安装:
- nvidia-utils
2. 双显卡配置
参考文档:
2.1 optimus-manager 安装
如果是使用混合模式,则不必使用 optimus-manager
安装:
- optimus-manager
- bbswitch
配置:
- Switching method: Bbswitch
- Startup mode: Hybrid
2.2 prime-run 方法
参考文档:
命令:
安装 prime-run
1 | prime-run %command% |
3. 常用命令
1 | # 生成 initramfs |
4. SysRq 配置和使用
参考文档:Wiki: Kernal SysRq
配置:
- 新建 sysctl 配置文件
/etc/sysctl.d/99-sysctl.conf
- 添加配置:
kernel.sysrq = 1
使用:
当界面卡住无响应时可以使用(内核 dump 时无法使用),SysRq 键即为 PrtSc 键。
- 重启:
Alt-SysRq-b
(避免 hard reboot) - 触发 OOM:
Alt-SysRq-f
5. memtest86+
对内存做压力测试。
参考文档:Wiki: Stress testing - MemTest86+
安装:
- 安装 memtest86+-efi 包
- 重新生成 grub.cgd
启动:
- 从 GRUB 的 memtest 选项中进入
6. 其他
6.1 将 xorg-xbacklight 改为 light
参考文档:Wiki: backlight
原因:xorg-xbacklight 不适用于默认的 modesettings 驱动。
1 | sudo pacman -Rs xorg-xbacklight |
6.2 yakuake 外接屏幕不居中的问题
在 AutoStart 中添加环境变量:env QT_SCREEN_SCALE_FACTORS="1.2;1.2" yakuake
由于 QT 升级到了 qt6,原本的
1;1
失效,需要将原本的1;1
变为1.2;1.2
。
6.3 环境变量配置文件
~/.zshrc
~/.bashrc
~/.bash_profile
~/.xprofile
~/.pam_environment
/etc/environment