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