← recipes

Commit 4e18f27

0
plików
+0
dodanych
-0
usuniętych
@@ -1,7 +1,7 @@
1 1 pkgname=nvidia
2 2 pkgver=610.57.04
3 3 pkgrel=1
4 -pkgdesc="NVIDIA drivers and kernel modules for PaganLinux"
4 +pkgdesc="NVIDIA drivers, kernel modules, xorg config and udev rules for LFS"
5 5 url="https://www.nvidia.com/en-us/drivers/unix/"
6 6 arch=(x86_64)
7 7 license=('custom')
@@ -16,9 +16,11 @@ hooks:
16 16 'post-install': |
17 17 depmod -a $(uname -r)
18 18 ldconfig
19 + udevadm control --reload-rules || true
19 20 'post-remove': |
20 21 depmod -a $(uname -r)
21 22 ldconfig
23 + udevadm control --reload-rules || true
22 24
23 25 build: |
24 26 sh NVIDIA-Linux-x86_64-${pkgver}.run --extract-only
@@ -27,10 +29,11 @@ build: |
27 29 _kernver=$(uname -r)
28 30 _modulesdir="${PKGDIR}/lib/modules/${_kernver}/kernel/drivers/video/nvidia"
29 31
30 - # Tworzenie katalogów
32 + # Tworzenie struktury katalogów
31 33 install -dm0755 ${PKGDIR}/usr/{lib,{bin,share/{applications,pixmaps,man/man1,doc/nvidia}}}
32 34 install -dm0755 ${PKGDIR}/usr/share/glvnd/egl_vendor.d
33 35 install -dm0755 ${PKGDIR}/usr/share/vulkan/implicit_layer.d
36 + install -dm0755 ${PKGDIR}/lib/udev/rules.d
34 37 install -dm0755 "${_modulesdir}"
35 38
36 39 # --- 1. Kompilacja i instalacja modułów jądra ---
@@ -49,7 +52,7 @@ build: |
49 52 fi
50 53 done
51 54
52 - # Narzędzia i MAN
55 + # Narzędzia i podrecznik MAN
53 56 install -m 0755 nvidia-{xconfig,settings,smi} ${PKGDIR}/usr/bin/
54 57 install -m 0644 nvidia-{xconfig,settings,smi}.1.gz ${PKGDIR}/usr/share/man/man1/
55 58
@@ -58,13 +61,13 @@ build: |
58 61 > ${PKGDIR}/usr/share/applications/nvidia-settings.desktop
59 62 install -m 0644 nvidia-settings.png ${PKGDIR}/usr/share/pixmaps/
60 63
61 - # Xorg driver
64 + # Sterownik i rozszerzenia Xorg
62 65 install -dm0755 ${PKGDIR}/usr/lib/xorg/modules/{drivers,extensions}
63 66 install -m 0755 nvidia_drv.so ${PKGDIR}/usr/lib/xorg/modules/drivers/
64 67 install -m 0755 libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/
65 68 ln -s libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
66 69
67 - # Profil EGL i Vulkan
70 + # Pliki profilu GLVND (EGL) i Vulkan ICD
68 71 if [ -f 10_nvidia.json ]; then
69 72 install -m 0644 10_nvidia.json ${PKGDIR}/usr/share/glvnd/egl_vendor.d/
70 73 fi
@@ -88,23 +91,41 @@ build: |
88 91 cp -r html/* ${PKGDIR}/usr/share/doc/nvidia/
89 92 fi
90 93
91 - # Konfiguracja Xorg
94 + # --- 3. Konfiguracja Xorg (OutputClass + Device) ---
92 95 install -dm0755 ${PKGDIR}/etc/X11/xorg.conf.d
93 - cat > ${PKGDIR}/etc/X11/xorg.conf.d/30-nvidia.conf << "EOF"
96 + cat > ${PKGDIR}/etc/X11/xorg.conf.d/10-nvidia-drm.conf << "EOF"
97 +Section "OutputClass"
98 + Identifier "nvidia"
99 + MatchDriver "nvidia-drm"
100 + Driver "nvidia"
101 + Option "AllowEmptyInitialConfiguration"
102 + ModulePath "/usr/lib/xorg/modules"
103 +EndSection
104 +
94 105 Section "Device"
95 - Identifier "NVIDIA"
96 - Driver "nvidia"
106 + Identifier "Device0"
107 + Driver "nvidia"
108 + VendorName "NVIDIA Corporation"
97 109 EndSection
98 110 EOF
99 111
100 - # Czarna lista dla Nouveau
112 + # --- 4. Reguły udev dla urządzeń /dev/nvidia* ---
113 + cat > ${PKGDIR}/lib/udev/rules.d/60-nvidia.rules << "EOF"
114 +KERNEL=="nvidia", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidiactl c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'"
115 +KERNEL=="nvidia", RUN+="/usr/bin/bash -c 'for i in $$(cat /proc/driver/nvidia/gpus/*/information | grep Minor | cut -d \ -f 4); do /usr/bin/mknod -Z -m 666 /dev/nvidia$${i} c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) $${i}; done'"
116 +KERNEL=="nvidia_modeset", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-modeset c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254'"
117 +KERNEL=="nvidia_uvm", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
118 +KERNEL=="nvidia_uvm", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 1'"
119 +EOF
120 +
121 + # Czarna lista Nouveau
101 122 install -dm0755 ${PKGDIR}/etc/modprobe.d
102 123 cat > ${PKGDIR}/etc/modprobe.d/nouveau.conf << "EOF"
103 124 blacklist nouveau
104 125 options nouveau modeset=0
105 126 EOF
106 127
107 - # Usunięcie natywnych bibliotek EGL (dla libglvnd w BLFS)
128 + # Czyszczenie kolidujących bibliotek EGL
108 129 rm -f ${PKGDIR}/usr/lib/libEGL.so*
109 130 rm -f ${PKGDIR}/usr/lib/libGLES*.so*
110 131