-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path60-graphics-intel-nvidia.sh
39 lines (33 loc) · 2.66 KB
/
60-graphics-intel-nvidia.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# packages
AddPackage nvidia-dkms # NVIDIA kernel modules - module sources
AddPackage nvidia-prime # NVIDIA Prime Render Offload configuration and utilities
AddPackage opencl-nvidia # OpenCL implemention for NVIDIA
# mkinitcpio - enable intel and nvidia modules
# this drop-in replaces kms hook, because the latter can result in nvidia not working correctly, after a kernel rebuild
cat >"$(CreateFile /etc/mkinitcpio.conf.d/00-modules_intel_nvidia_hybrid.conf)" <<EOF
MODULES=(i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm)
EOF
# modprobe - configure nvidia
cat >"$(CreateFile /etc/modprobe.d/nvidia.conf)" <<EOF
options nvidia "NVreg_DynamicPowerManagement=0x02"
options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_EnableGpuFirmware=0
EOF
# add udev rules, so nvidia GPU could enter D3Cold state, when not in use and the laptop is on battery
cat >"$(CreateFile /etc/udev/rules.d/80-nvidia.rules)" <<EOF
# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"
# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on"
# Enable runtime PM for NVIDIA VGA/3D controller devices on adding device
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"
EOF
# systemd enable
CreateLink /etc/systemd/system/multi-user.target.wants/nvidia-persistenced.service /usr/lib/systemd/system/nvidia-persistenced.service
CreateLink /etc/systemd/system/systemd-suspend.service.wants/nvidia-resume.service /usr/lib/systemd/system/nvidia-resume.service
CreateLink /etc/systemd/system/systemd-suspend.service.wants/nvidia-suspend.service /usr/lib/systemd/system/nvidia-suspend.service
CreateLink /etc/systemd/system/nvidia-powerd.service /dev/null
CreateLink /etc/systemd/system/systemd-hibernate.service.wants/nvidia-hibernate.service /usr/lib/systemd/system/nvidia-hibernate.service
CreateLink /etc/systemd/system/systemd-hibernate.service.wants/nvidia-resume.service /usr/lib/systemd/system/nvidia-resume.service