11

archlinux配置gtx 1650

 3 years ago
source link: https://blog.zcmimi.top/posts/archlinux%E9%85%8D%E7%BD%AEgtx%201650/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

注: 以下全部在root用户下运行

安装所需包

首先安装linux-headers,如果是linux-lts则是linux-lts-headers:

1
pacman -S linux-headers

接着安装nvidia驱动:

1
pacman -S nvidia nvidia-utils nvidia-utils nvidia-settings nvidia-dkms

其中安装nvidia-dkms,就不用对每个内核都安装对应驱动(如linux-lts需要安装nvidia-lts)

查看n卡的BusID,并记住:

1
lspci | egrep 'VGA|3D'

生成配置文件:

1
nvidia-xconfig

修改配置文件/etc/X11/xorg.conf,需要在文件开头补充以下内容:

1
2
3
4
5
6
7
8
9
10
11
Section "Module" #此部分可能没有,自行添加 load "modesetting" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BusID "1:0:0" #此处填刚刚查询到的BusID Option "AllowEmptyInitialConfiguration" EndSection

配置启动器

lightdm

编辑/etc/lightdm/display_setup.sh,写入以下内容:

1
2
3
#!/bin/sh xrandr --setprovideroutputsource modesetting NVIDIA-0 xrandr --auto

添加执行权限:

1
chmod +x /etc/lightdm/display_setup.sh

编辑/etc/lightdm/lightdm.conf,写入以下内容:

1
2
[Seat:*] display-setup-script=/etc/lightdm/display_setup.sh

编辑/usr/share/sddm/scripts/Xsetup,写入以下内容:

1
2
xrandr --setprovideroutputsource modesetting NVIDIA-0 xrandr --auto

编辑/usr/share/gdm/greeter/autostart/optimus.desktop/etc/xdg/autostart/optimus.desktop,写入以下内容:

1
2
3
4
5
6
[Desktop Entry] Type=Application Name=Optimus Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto" NoDisplay=true X-GNOME-Autostart-Phase=DisplayServer

解决画面撕裂问题

编辑/etc/mkinitcpio.conf,修改对应部分:

1
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)

编辑/etc/default/grub,修改对应部分:

1
GRUB_CMDLINE_LINUX_DEFAULT="quiet nvidia-drm.modeset=1" # 此处加nvidia-drm.modeset=1参数

(这里必须是grub引导,其他引导自行百度/谷歌)

生成新的引导文件:

1
grub-mkconfig -o /boot/grub/grub.cfg # 此处配置文件位置有可能不同,请自行修改

或者(如果已经安装了update-grub的话):

1
update-grub

nvidia升级时自动更新引导

创建pacman hooks,让每次更新nvidia包的时候更新grub引导

创建hooks目录:

1
mkdir /etc/pacman.d/hooks

编辑/etc/pacman.d/hooks/nvidia.hook,写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Trigger] Operation=Install Operation=Upgrade Operation=Remove Type=Package Target=nvidia Target=linux # Change the linux part above and in the Exec line if a different kernel is used [Action] Description=Update Nvidia module in initcpio Depends=mkinitcpio When=PostTransaction NeedsTargets Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P'

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK