Gentoo Linux Nvidia 显卡驱动
2022-08-21
2分钟阅读时长
由于Gentoo Linux 配置显卡驱动需要额外设置内核,因此记录下配置的内容。
Kernel
Dist Kernel
编辑 x11-drivers/nvidia-drivers
所需要使用的 use 选项,加入 dist-kernel
这一项。
Custom Kernel
依次开启下列选项:
- CONFIG_MODULES
- CONFIG_MTRR
- CONFIG_VGA_ARB
- CONFIG_ACPI_IPMI
- CONFIG_AGP
- 内核版本
- 在 5.15 及以前的需开启
- CONFIG_SYSFB_SIMPLEFB
- CONFIG_FB_SIMPLE
注意开启该选项需要关闭
Simple framebuffer device
- 在 5.15 以后的需开启
- CONFIG_SYSFB_SIMPLEFB
- CONFIG_FB_SIMPLEDRM
- 在 5.15 及以前的需开启
依次关闭下列选项:
- CONFIG_FB_NVIDIA
- CONFIG_FB_RIVA
- CONFIG_DRM_NOUVEAU
Install
Use
推荐添加 tool 选项,如果为 wayland 安装,也可以加入 wayland 选项。
Emerge
用此命令安装驱动 emerge -av x11-drivers/nvidia-drivers
Settings
Modules
输入 ~sudo vim /etc/modprobe.d/blacklist.conf~。
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
Config
Generate Config
生成 nvidia prime config 文件
mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
sudo nvidia-xconfig --prime
CheckID
检查显卡的 PCI 地址 lspci
查找显卡前面的数字,与 /etc/X11/xorg.conf
中的是否相符。
Launch Config
- 若使用启动管理器,则编辑启动管理器的配置
例如使用
sddm
,则vim /usr/share/sddm/scripts/Xsetup
- 若使用窗口管理器,则
vim .xinitrc
然后加入下面的内容。
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
Modprobe
Load in kernel as module
将 nvidia 模块加入内核,由于该驱动是闭源软件,不能直接编译进内核,而必须作为模块加载。
每次重新编译内核之后,都需要重新部署。
emerge -av @module-rebuild
重新加入内核,若第一次加入内核,只需执行最后的命令。
lsmod | grep nvidia
sudo rmmod nvidia
sudo modprobe nvidia
Load at startup
加载 nvidia 模块有多种设置办法。
- 通过 grub 向内核传递参数
输入
sudo vim /etc/default/nvidia
输入内容# Append parameters to the linux kernel command line GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1"
- 在配置文件中设置,让内核自动加载
输入
sudo vim /etc/modules-load.d/nvidia.conf
输入内容nvidia
输入sudo vim /etc/modprobe.d/nvidia-drm.conf
输入内容options nvidia-drm modeset=1
- 在启动图形界面前加载
输入
vim ~~/StartXorg.sh
添加执行权限后,每次用该脚本启动。#!/bin/bash sudo modprobe nvidia_drm nvidia_modeset nvidia && startx