(详细)安装nvidia闭源驱动并且正确配置,arch linux + lightdm + deepin desktop

安装这个主要在于NVIDIAxconflightdmlightdm.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 (用 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版块
    如图:
    (详细)安装nvidia闭源驱动并且正确配置,arch linux + lightdm + deepin desktop_第1张图片

  • 运行下面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

你可能感兴趣的:(Linux)