安装这个主要在于NVIDIA
的xconf
和lightdm
的lightdm.conf
的配置
如果使用的是gdm
,请参考gdm
的配置,在文章末尾第二个链接中。
我经历的整个流程:
安装NVIDIA
- 安装nvidia驱动,这里要根据NVIDIA的版本选择合适的软件包,
我的是NVIDIA GeForce 850M,运行以下命令之后会自动安装两个包
sudo pacman -S nvidia-lts
- 可选的安装支持32位应用的包
sudo pacman -S lib32-nvidia-utils
-
重启,发现无法启动lightdm
-
ctrl+alt+F2切换到控制台, 登录账户,运行生成配置,指令如下
sudo nvidia-xconfig
- 如果自动生成配置不行的话,用最小配置,之后在自动生成配置,merge到最小配置,以下是最小配置,需要配置busID:
/etc/X11/xorg.conf
Section "Module"
Load "modesetting"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "<BusID for NVIDIA device here>" 修改相应的busID (用 lspci | egrep 'VGA|3D' 来查看)
Option "AllowEmptyInitialConfiguration"
EndSection
- 新建文件
/etc/lightdm/display_setup.sh
,并填写内容如下
sudo vim /etc/lightdm/display_setup.sh
#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
- 对这个文件添加执行权限
chmod +x /etc/lightdm/display_setup.sh
- 配置lightdm的文件,来运行
display_setup.sh
sudo vim /etc/lightdm/lightdm.conf 在其中的[Seat:*]版块添加:
[Seat:*]
display-setup-script=/etc/lightdm/display_setup.sh
- 重新启动
解决屏幕撕裂
要解决,需要开启DRM kernel mode setting设置项
- 在内核选项中添加参数
sudo vim /etc/default/grub
添加`nvidia-drm.modeset=1`到内核参数中
-
编辑/etc/mkinitcpio.conf
添加nvidia nvidia_modeset nvidia_uvm nvidia_drm
到module版块
如图:
-
运行下面mkinit命令,因为我的内核是lts,所以是
linux-lts
,否则就是linux
sudo mkinitcpio -p linux-lts
- 添加pacman hook,以便当nvidia更新时,自动更新mkinitcpio
参考资料:
1. NVIDIA
2. NVIDIA Optimus
3. [SOLVED] Error at Boot After Nvidia Driver Install