From 005b69920f10c649237192fe79a0e63e05d2279c Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Wed, 9 Dec 2015 15:18:40 -0800 Subject: [PATCH] xf86-video-nvidia: package to allow multiple nvidia drivers --- .../x11/driver/xf86-video-nvidia/package.mk | 22 +- .../scripts/make_nvidia_udev.py | 55 ++++ .../xf86-video-nvidia/udev.d/96-nvidia.rules | 307 ++++++++++++++++++ 3 files changed, 377 insertions(+), 7 deletions(-) create mode 100755 packages/x11/driver/xf86-video-nvidia/scripts/make_nvidia_udev.py create mode 100644 packages/x11/driver/xf86-video-nvidia/udev.d/96-nvidia.rules diff --git a/packages/x11/driver/xf86-video-nvidia/package.mk b/packages/x11/driver/xf86-video-nvidia/package.mk index cfb55e642c..51af0ddcca 100644 --- a/packages/x11/driver/xf86-video-nvidia/package.mk +++ b/packages/x11/driver/xf86-video-nvidia/package.mk @@ -45,12 +45,14 @@ make_target() { cd kernel make module CC=$CC SYSSRC=$(kernel_path) SYSOUT=$(kernel_path) + $STRIP --strip-debug nvidia.ko cd .. } makeinstall_target() { mkdir -p $INSTALL/$XORG_PATH_MODULES/drivers - cp -P nvidia_drv.so $INSTALL/$XORG_PATH_MODULES/drivers + cp -P nvidia_drv.so $INSTALL/$XORG_PATH_MODULES/drivers/nvidia-main_drv.so + ln -sf /var/lib/nvidia_drv.so $INSTALL/$XORG_PATH_MODULES/drivers/nvidia_drv.so mkdir -p $INSTALL/$XORG_PATH_MODULES/extensions # rename to not conflicting with Mesa libGL.so @@ -62,19 +64,25 @@ makeinstall_target() { mkdir -p $INSTALL/usr/lib cp -P libnvidia-glcore.so.$PKG_VERSION $INSTALL/usr/lib cp -P libnvidia-ml.so.$PKG_VERSION $INSTALL/usr/lib - ln -sf libnvidia-ml.so.$PKG_VERSION $INSTALL/usr/lib/libnvidia-ml.so.1 + ln -sf /var/lib/libnvidia-ml.so.1 $INSTALL/usr/lib/libnvidia-ml.so.1 cp -P tls/libnvidia-tls.so.$PKG_VERSION $INSTALL/usr/lib # rename to not conflicting with Mesa libGL.so cp -P libGL.so* $INSTALL/usr/lib/libGL_nvidia.so.1 mkdir -p $INSTALL/lib/modules/$(get_module_dir)/nvidia - cp kernel/nvidia.ko $INSTALL/lib/modules/$(get_module_dir)/nvidia + ln -sf /var/lib/nvidia.ko $INSTALL/lib/modules/$(get_module_dir)/nvidia/nvidia.ko + + mkdir -p $INSTALL/usr/lib/nvidia + cp kernel/nvidia.ko $INSTALL/usr/lib/nvidia mkdir -p $INSTALL/usr/bin - cp nvidia-smi $INSTALL/usr/bin - cp nvidia-xconfig $INSTALL/usr/bin + ln -s /var/lib/nvidia-smi $INSTALL/usr/bin/nvidia-smi + cp nvidia-smi $INSTALL/usr/bin/nvidia-main-smi + ln -s /var/lib/nvidia-xconfig $INSTALL/usr/bin/nvidia-xconfig + cp nvidia-xconfig $INSTALL/usr/bin/nvidia-main-xconfig mkdir -p $INSTALL/usr/lib/vdpau - cp libvdpau_nvidia.so* $INSTALL/usr/lib/vdpau/libvdpau_nvidia.so.1 - ln -sf libvdpau_nvidia.so.1 $INSTALL/usr/lib/vdpau/libvdpau_nvidia.so + cp libvdpau_nvidia.so* $INSTALL/usr/lib/vdpau/libvdpau_nvidia-main.so.1 + ln -sf /var/lib/libvdpau_nvidia.so $INSTALL/usr/lib/vdpau/libvdpau_nvidia.so + ln -sf /var/lib/libvdpau_nvidia.so.1 $INSTALL/usr/lib/vdpau/libvdpau_nvidia.so.1 } diff --git a/packages/x11/driver/xf86-video-nvidia/scripts/make_nvidia_udev.py b/packages/x11/driver/xf86-video-nvidia/scripts/make_nvidia_udev.py new file mode 100755 index 0000000000..9e7695e926 --- /dev/null +++ b/packages/x11/driver/xf86-video-nvidia/scripts/make_nvidia_udev.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +import os +import requests +from lxml import html + +__cwd__ = os.path.dirname(os.path.realpath(__file__)) +__rules__ = __cwd__ + '/../udev.d/96-nvidia.rules' +__package__ = __cwd__ + '/../package.mk' + +# Get the Nvidia driver version currently being used +for line in open(__package__, 'r'): + if "PKG_VERSION" in line: + __version__ = line.split('=')[1].replace('"','').strip() + break + +url = 'http://us.download.nvidia.com/XFree86/Linux-x86_64/' + __version__ + '/README/supportedchips.html' +page = requests.get(url) +tree = html.fromstring(page.content) + +# These are the tables we want to use (gpu's supported by the current driver) +# NVIDIA GeForce GPUs = 1 +# NVIDIA Quadro GPUs = 2 +# NVIDIA NVS GPUs = 3 +# NVIDIA Tesla GPUs = 4 +# NVIDIA GRID GPUs = 5 + +ids = [] +for table in range(1, 6): + ids = ids + tree.xpath('//html/body/div[@class="appendix"]/div[@class="informaltable"][' + str(table) + ']/table/tbody/tr[starts-with(@id, "devid")]/td[2]//text()') + +# If three IDs are listed, the first is the PCI Device ID, the second is the PCI Subsystem Vendor ID, and the third is the PCI Subsystem Device ID. +# We only want the PCI Device ID (the first value) +unique_ids = [] +for id in ids: + unique_ids.append(id.split()[0].lower()) + +# Sort and remove duplicate ID's +unique_ids = sorted(set(unique_ids)) + +# Write the rules to the file +with open(__rules__, 'w') as f: + f.write('ACTION!="add|change", GOTO="end_video"\n') + f.write('SUBSYSTEM=="pci", ATTR{class}!="0x030000", GOTO="end_video"\n\n') + for id in unique_ids: + f.write('ATTRS{vendor}=="0x10de", ATTRS{device}=="0x' + str(id) + '", GOTO="configure_nvidia"\n') + f.write('ATTRS{vendor}=="0x10de", GOTO="configure_nvidia-legacy"\n') + f.write('GOTO="end_video"\n\n') + f.write('LABEL="configure_nvidia"\n') + f.write('ENV{xorg_driver}="nvidia", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xorg-configure@nvidia.service"\n') + f.write('GOTO="end_video"\n\n') + f.write('LABEL="configure_nvidia-legacy"\n') + f.write('ENV{xorg_driver}="nvidia", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xorg-configure@nvidia-legacy.service"\n') + f.write('GOTO="end_video"\n\n') + f.write('LABEL="end_video"\n') diff --git a/packages/x11/driver/xf86-video-nvidia/udev.d/96-nvidia.rules b/packages/x11/driver/xf86-video-nvidia/udev.d/96-nvidia.rules new file mode 100644 index 0000000000..25a3f99ec2 --- /dev/null +++ b/packages/x11/driver/xf86-video-nvidia/udev.d/96-nvidia.rules @@ -0,0 +1,307 @@ +ACTION!="add|change", GOTO="end_video" +SUBSYSTEM=="pci", ATTR{class}!="0x030000", GOTO="end_video" + +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06c0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06c4", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06ca", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06cd", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06d1", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06d2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06d8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06d9", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06da", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06dc", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06dd", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06de", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x06df", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dc0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dc4", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dc5", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dc6", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dcd", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dce", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dd1", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dd2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dd3", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dd6", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dd8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dda", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0de0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0de1", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0de2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0de3", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0de4", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0de5", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0de7", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0de8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0de9", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dea", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0deb", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dec", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0ded", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dee", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0def", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0df0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0df1", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0df2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0df3", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0df4", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0df5", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0df6", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0df7", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0df8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0df9", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dfa", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0dfc", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0e22", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0e23", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0e24", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0e30", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0e31", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0e3a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0e3b", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0f00", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0f01", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0f02", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fc0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fc1", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fc2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fc6", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fc8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fc9", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fcd", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fce", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fd1", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fd2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fd3", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fd4", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fd5", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fd8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fd9", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fdf", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fe0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fe1", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fe2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fe3", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fe4", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fe9", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fea", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fec", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fee", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fef", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0ff2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0ff3", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0ff6", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0ff8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0ff9", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0ffa", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0ffb", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0ffc", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0ffd", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0ffe", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x0fff", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1001", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1004", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1005", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1007", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1008", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x100a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x100c", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1021", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1022", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1023", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1024", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1026", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1027", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1028", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1029", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x102a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x102d", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x103a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x103c", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1040", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1042", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1048", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1049", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x104a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x104b", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x104c", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1050", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1051", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1052", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1054", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1055", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1056", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1057", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1058", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1059", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x105a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x105b", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x107c", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x107d", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1080", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1081", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1082", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1084", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1086", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1087", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1088", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1089", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x108b", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1091", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1094", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1096", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x109a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x109b", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1140", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1180", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1183", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1184", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1185", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1187", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1188", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1189", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x118a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x118e", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x118f", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1193", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1194", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1195", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1198", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1199", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x119a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x119d", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x119e", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x119f", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11a0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11a1", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11a2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11a3", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11a7", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11b4", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11b6", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11b7", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11b8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11ba", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11bc", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11bd", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11be", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11bf", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11c0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11c2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11c3", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11c4", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11c5", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11c6", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11c8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11cb", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11e0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11e1", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11e2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11e3", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11fa", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x11fc", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1200", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1201", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1203", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1205", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1206", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1207", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1208", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1210", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1211", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1212", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1213", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1241", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1243", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1244", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1245", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1246", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1247", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1248", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1249", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x124b", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x124d", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1251", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1280", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1281", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1282", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1284", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1286", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1287", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1288", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1289", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1290", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1291", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1292", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1293", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1295", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1296", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1298", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1299", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x129a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x12b9", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x12ba", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1340", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1341", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1344", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1346", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1347", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x137a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x137d", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1380", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1381", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1382", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1390", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1391", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1392", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1393", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1398", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1399", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x139a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x139b", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x139c", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13b0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13b1", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13b2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13b3", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13b9", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13ba", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13bb", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13bc", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13c0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13c2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13d7", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13d8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13d9", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13da", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13f0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13f1", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13f2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13f3", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13f8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13f9", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x13fa", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1401", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1402", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1407", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1617", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1618", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x1619", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x161a", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x17c2", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x17c8", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x17f0", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", ATTRS{device}=="0x17fd", GOTO="configure_nvidia" +ATTRS{vendor}=="0x10de", GOTO="configure_nvidia-legacy" +GOTO="end_video" + +LABEL="configure_nvidia" +ENV{xorg_driver}="nvidia", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xorg-configure@nvidia.service" +GOTO="end_video" + +LABEL="configure_nvidia-legacy" +ENV{xorg_driver}="nvidia", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xorg-configure@nvidia-legacy.service" +GOTO="end_video" + +LABEL="end_video"