From 005b69920f10c649237192fe79a0e63e05d2279c Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Wed, 9 Dec 2015 15:18:40 -0800 Subject: [PATCH 1/6] 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" From bae6dcc1cd8e344debe1488ac831b2783d297ca2 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Wed, 9 Dec 2015 15:19:02 -0800 Subject: [PATCH 2/6] xf86-video-nvidia-legacy: package to allow multiple nvidia drivers --- ...rg-nvidia.conf => xorg-nvidia-legacy.conf} | 0 .../xf86-video-nvidia-legacy/package.mk | 26 ++++++++++++------- 2 files changed, 17 insertions(+), 9 deletions(-) rename packages/x11/driver/xf86-video-nvidia-legacy/config/{xorg-nvidia.conf => xorg-nvidia-legacy.conf} (100%) diff --git a/packages/x11/driver/xf86-video-nvidia-legacy/config/xorg-nvidia.conf b/packages/x11/driver/xf86-video-nvidia-legacy/config/xorg-nvidia-legacy.conf similarity index 100% rename from packages/x11/driver/xf86-video-nvidia-legacy/config/xorg-nvidia.conf rename to packages/x11/driver/xf86-video-nvidia-legacy/config/xorg-nvidia-legacy.conf diff --git a/packages/x11/driver/xf86-video-nvidia-legacy/package.mk b/packages/x11/driver/xf86-video-nvidia-legacy/package.mk index f8b5cf135f..e3f4af2b37 100644 --- a/packages/x11/driver/xf86-video-nvidia-legacy/package.mk +++ b/packages/x11/driver/xf86-video-nvidia-legacy/package.mk @@ -45,16 +45,18 @@ 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-legacy_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 - cp -P libglx.so* $INSTALL/$XORG_PATH_MODULES/extensions/libglx_nvidia.so + cp -P libglx.so* $INSTALL/$XORG_PATH_MODULES/extensions/libglx_nvidia-legacy.so mkdir -p $INSTALL/etc/X11 cp $PKG_DIR/config/*.conf $INSTALL/etc/X11 @@ -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 + cp -P libGL.so* $INSTALL/usr/lib/libGL_nvidia-legacy.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-legacy + cp kernel/nvidia.ko $INSTALL/usr/lib/nvidia-legacy 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-legacy-smi + ln -s /var/lib/nvidia-xconfig $INSTALL/usr/bin/nvidia-xconfig + cp nvidia-xconfig $INSTALL/usr/bin/nvidia-legacy-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-legacy.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 } From 390da478ac096ad853bee98b2676e0dc6af448a9 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Wed, 9 Dec 2015 15:19:50 -0800 Subject: [PATCH 3/6] xorg-server: allow using multiple nvidia drivers --- packages/x11/xserver/xorg-server/package.mk | 5 +++++ .../xorg-server/scripts/xorg-configure | 20 +++++++++++++++++++ .../system.d/xorg-configure@.service | 4 ++-- .../xserver/xorg-server/udev.d/97-xorg.rules | 6 ------ 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/packages/x11/xserver/xorg-server/package.mk b/packages/x11/xserver/xorg-server/package.mk index 22f960198c..83f9dddd96 100644 --- a/packages/x11/xserver/xorg-server/package.mk +++ b/packages/x11/xserver/xorg-server/package.mk @@ -148,6 +148,11 @@ post_makeinstall_target() { mkdir -p $INSTALL/usr/lib/xorg cp -P $PKG_DIR/scripts/xorg-configure $INSTALL/usr/lib/xorg + . $ROOT/packages/x11/driver/xf86-video-nvidia/package.mk + sed -i -e "s|@NVIDIA_VERSION@|${PKG_VERSION}|g" $INSTALL/usr/lib/xorg/xorg-configure + . $ROOT/packages/x11/driver/xf86-video-nvidia-legacy/package.mk + sed -i -e "s|@NVIDIA_LEGACY_VERSION@|${PKG_VERSION}|g" $INSTALL/usr/lib/xorg/xorg-configure + . $ROOT/packages/x11/xserver/xorg-server/package.mk if [ ! "$OPENGL" = "no" ]; then if [ -f $INSTALL/usr/lib/xorg/modules/extensions/libglx.so ]; then diff --git a/packages/x11/xserver/xorg-server/scripts/xorg-configure b/packages/x11/xserver/xorg-server/scripts/xorg-configure index 32f0384b2a..738d84e7d3 100755 --- a/packages/x11/xserver/xorg-server/scripts/xorg-configure +++ b/packages/x11/xserver/xorg-server/scripts/xorg-configure @@ -73,6 +73,26 @@ logger -t Xorg "### creating needed directories and symlinks ###" if [ "$1" = "nvidia" ]; then ln -sf /usr/lib/libGL_nvidia.so.1 /var/lib/libGL.so ln -sf /usr/lib/xorg/modules/extensions/libglx_nvidia.so /var/lib/libglx.so + ln -sf /usr/lib/libnvidia-ml.so.@NVIDIA_VERSION@ /var/lib/libnvidia-ml.so.1 + ln -sf /usr/lib/xorg/modules/drivers/nvidia-main_drv.so /var/lib/nvidia_drv.so + ln -sf /usr/lib/nvidia/nvidia.ko /var/lib/nvidia.ko + ln -sf /usr/lib/vdpau/libvdpau_nvidia-main.so.1 /var/lib/libvdpau_nvidia.so.1 + ln -sf /usr/lib/vdpau/libvdpau_nvidia-main.so.1 /var/lib/libvdpau_nvidia.so + ln -sf /usr/bin/nvidia-main-smi /var/lib/nvidia-smi + ln -sf /usr/bin/nvidia-main-xconfig /var/lib/nvidia-xconfig + insmod /var/lib/nvidia.ko + XORG_ARGS="$XORG_ARGS -ignoreABI" + elif [ "$1" = "nvidia-legacy" ]; then + ln -sf /usr/lib/libGL_nvidia-legacy.so.1 /var/lib/libGL.so + ln -sf /usr/lib/xorg/modules/extensions/libglx_nvidia-legacy.so /var/lib/libglx.so + ln -sf /usr/lib/libnvidia-ml.so.@NVIDIA_LEGACY_VERSION@ /var/lib/libnvidia-ml.so.1 + ln -sf /usr/lib/xorg/modules/drivers/nvidia-legacy_drv.so /var/lib/nvidia_drv.so + ln -sf /usr/lib/nvidia-legacy/nvidia.ko /var/lib/nvidia.ko + ln -sf /usr/lib/vdpau/libvdpau_nvidia-legacy.so.1 /var/lib/libvdpau_nvidia.so.1 + ln -sf /usr/lib/vdpau/libvdpau_nvidia-legacy.so.1 /var/lib/libvdpau_nvidia.so + ln -sf /usr/bin/nvidia-legacy-smi /var/lib/nvidia-smi + ln -sf /usr/bin/nvidia-legacy-xconfig /var/lib/nvidia-xconfig + insmod /var/lib/nvidia.ko XORG_ARGS="$XORG_ARGS -ignoreABI" else ln -sf /usr/lib/libGL_mesa.so.1 /var/lib/libGL.so diff --git a/packages/x11/xserver/xorg-server/system.d/xorg-configure@.service b/packages/x11/xserver/xorg-server/system.d/xorg-configure@.service index 6e036bfcc3..25725f647e 100644 --- a/packages/x11/xserver/xorg-server/system.d/xorg-configure@.service +++ b/packages/x11/xserver/xorg-server/system.d/xorg-configure@.service @@ -1,9 +1,9 @@ [Unit] -Description=configure Xorg Server for %I +Description=configure Xorg Server for %i ConditionKernelCommandLine=!installer [Service] Type=oneshot -ExecStart=/usr/lib/xorg/xorg-configure %I +ExecStart=/usr/lib/xorg/xorg-configure %i RemainAfterExit=yes diff --git a/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules b/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules index 4dfbd29530..3ea84ec984 100644 --- a/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules +++ b/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules @@ -20,12 +20,6 @@ ACTION!="add|change", GOTO="end_video" # xorg_start only does something for subsystem "pci" and "video" class. SUBSYSTEM=="pci", ATTR{class}=="0x030000", GOTO="subsystem_pci" -SUBSYSTEM=="drivers", GOTO="subsystem_drivers" -GOTO="end_video" - -# check for drivers dont use the pci substem -LABEL="subsystem_drivers" -KERNEL=="nvidia", ENV{xorg_driver}="nvidia", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xorg-configure@nvidia.service" GOTO="end_video" # check for drivers using the pci substem From aba4c33b728157cd44a74d52bb06754c703c5d6b Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Wed, 9 Dec 2015 15:20:34 -0800 Subject: [PATCH 4/6] linux: add temp patch to allow xf86-video-nvidia-legacy to work --- .../linux/linux-020-export-mtrr-symbol.patch | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 projects/Generic/patches/linux/linux-020-export-mtrr-symbol.patch diff --git a/projects/Generic/patches/linux/linux-020-export-mtrr-symbol.patch b/projects/Generic/patches/linux/linux-020-export-mtrr-symbol.patch new file mode 100644 index 0000000000..2777813d14 --- /dev/null +++ b/projects/Generic/patches/linux/linux-020-export-mtrr-symbol.patch @@ -0,0 +1,18 @@ +--- a/arch/x86/kernel/cpu/mtrr/main.c 2015-10-18 08:10:52.951166026 +0100 ++++ b/arch/x86/kernel/cpu/mtrr/main.c 2015-10-18 08:11:54.651493742 +0100 +@@ -448,6 +448,7 @@ + return mtrr_add_page(base >> PAGE_SHIFT, size >> PAGE_SHIFT, type, + increment); + } ++EXPORT_SYMBOL(mtrr_add); + + /** + * mtrr_del_page - delete a memory type region +@@ -536,6 +537,7 @@ + return -EINVAL; + return mtrr_del_page(reg, base >> PAGE_SHIFT, size >> PAGE_SHIFT); + } ++EXPORT_SYMBOL(mtrr_del); + + /** + * arch_phys_wc_add - add a WC MTRR and handle errors if PAT is unavailable From db1feb48b50f872bc53ac5a907330f70db48986c Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Wed, 9 Dec 2015 15:21:46 -0800 Subject: [PATCH 5/6] OpenELEC/options: build both nvidia drivers --- distributions/OpenELEC/options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distributions/OpenELEC/options b/distributions/OpenELEC/options index e3b19d095f..277e7d4811 100644 --- a/distributions/OpenELEC/options +++ b/distributions/OpenELEC/options @@ -127,7 +127,7 @@ # Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia) # Space separated list is supported, # e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeonsi nvidia" - GRAPHIC_DRIVERS="r300 r600 radeonsi i915 i965 nvidia" + GRAPHIC_DRIVERS="r300 r600 radeonsi i915 i965 nvidia nvidia-legacy" # build and install remote support (yes / no) REMOTE_SUPPORT="yes" From 8f5f26d65cc90ff254f1fe365fe4d34f05428697 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Wed, 9 Dec 2015 15:22:46 -0800 Subject: [PATCH 6/6] scripts/image: dont strip symlinks and silence depmod --- scripts/image | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/image b/scripts/image index 4917dae84c..97f1ffe43d 100755 --- a/scripts/image +++ b/scripts/image @@ -182,10 +182,10 @@ fi MODVER=$(basename $(ls -d $INSTALL/lib/modules/*)) find $INSTALL/lib/modules/$MODVER/ -name *.ko | \ sed -e "s,$INSTALL/lib/modules/$MODVER/,," > $INSTALL/lib/modules/$MODVER/modules.order - $ROOT/$TOOLCHAIN/bin/depmod -b $INSTALL $MODVER > /dev/null + $ROOT/$TOOLCHAIN/bin/depmod -b $INSTALL $MODVER 2> /dev/null # strip kernel modules - for MOD in `find $INSTALL/lib/modules/ -name *.ko`; do + for MOD in `find $INSTALL/lib/modules/ -type f -name *.ko`; do $STRIP --strip-debug $MOD done