Commit e68362e5
0
files
+0
added
-0
deleted
@@ -1,7 +1,7 @@
1
1
pkgname: nvidia-dkms
2
2
pkgver: '610.57.04'
3
3
pkgrel: '7'
4
-pkgdesc: NVIDIA userspace drivers + DKMS kernel module sources, Xorg config and udev rules
4
+pkgdesc: NVIDIA userspace drivers (libGLX, libEGL, Vulkan ICD, nvidia-smi) + DKMS kernel module sources, Xorg config and udev rules
5
5
url: https://www.nvidia.com/en-us/drivers/unix/
6
6
arch: x86_64
7
7
license:
@@ -24,7 +24,7 @@ build: |
24
24
cd NVIDIA-Linux-x86_64-${pkgver}
25
25
_nvdir="${PWD}"
26
26
27
- # ═══ CZĘŚĆ 1/3: USERSPACE ═══
27
+ # ═══ CZĘŚĆ 1/3: USERSPACE (biblioteki GL/EGL/Vulkan, binarki, DDX) ═══
28
28
install -dm0755 ${PKGDIR}/usr/lib
29
29
install -dm0755 ${PKGDIR}/usr/bin
30
30
install -dm0755 ${PKGDIR}/usr/share/{applications,pixmaps,man/man1,doc/nvidia}
@@ -32,12 +32,12 @@ build: |
32
32
install -dm0755 ${PKGDIR}/usr/share/vulkan/icd.d
33
33
install -dm0755 ${PKGDIR}/usr/lib/xorg/modules/{drivers,extensions}
34
34
35
- # Biblioteki .so
35
+ # Wszystkie biblioteki .so.${pkgver}
36
36
for _lib in *.so.${pkgver} *.so.${pkgver%.*.*}; do
37
37
[ -f "$_lib" ] && install -m 0755 "$_lib" ${PKGDIR}/usr/lib/
38
38
done
39
39
40
- # Binaria
40
+ # nvidia-smi, nvidia-settings, nvidia-xconfig, nvidia-modprobe, nvidia-persistenced
41
41
for _bin in nvidia-smi nvidia-settings nvidia-xconfig nvidia-modprobe nvidia-persistenced; do
42
42
[ -f "$_bin" ] && install -m 0755 "$_bin" ${PKGDIR}/usr/bin/
43
43
done
@@ -54,25 +54,64 @@ build: |
54
54
fi
55
55
[ -f nvidia-settings.png ] && install -m 0644 nvidia-settings.png ${PKGDIR}/usr/share/pixmaps/
56
56
57
- # Xorg DDX + GLX
57
+ # Xorg DDX + rozszerzenie GLX
58
58
[ -f nvidia_drv.so ] && install -m 0755 nvidia_drv.so ${PKGDIR}/usr/lib/xorg/modules/drivers/
59
59
if [ -f libglxserver_nvidia.so.${pkgver} ]; then
60
60
install -m 0755 libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/
61
61
ln -sf libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
62
62
fi
63
63
64
- # EGL Vendor & Vulkan ICD
65
- [ -f 10_nvidia.json ] && install -m 0644 10_nvidia.json ${PKGDIR}/usr/share/glvnd/egl_vendor.d/
66
- [ -f nvidia_icd.json ] && install -m 0644 nvidia_icd.json ${PKGDIR}/usr/share/vulkan/icd.d/
64
+ # EGL vendor (GLVND)
65
+ if [ -f 10_nvidia.json ]; then
66
+ install -m 0644 10_nvidia.json ${PKGDIR}/usr/share/glvnd/egl_vendor.d/
67
+ fi
68
+
69
+ # Vulkan ICD do icd.d
70
+ if [ -f nvidia_icd.json ]; then
71
+ install -m 0644 nvidia_icd.json ${PKGDIR}/usr/share/vulkan/icd.d/
72
+ fi
73
+ if [ -f nvidia_layers.json ]; then
74
+ install -dm0755 ${PKGDIR}/usr/share/vulkan/explicit_layer.d
75
+ install -m 0644 nvidia_layers.json ${PKGDIR}/usr/share/vulkan/explicit_layer.d/
76
+ fi
77
+
78
+ # Dokumentacja
79
+ if [ -d "${_nvdir}/html" ]; then
80
+ cp -r "${_nvdir}"/html/* ${PKGDIR}/usr/share/doc/nvidia/ 2>/dev/null || true
81
+ fi
67
82
68
- # SONAME Symlinki
83
+ # Symlinki SONAME
69
84
cd ${PKGDIR}/usr/lib
70
85
for _lib in *.so.${pkgver}; do
71
86
[ -f "$_lib" ] || continue
72
87
_soname=$(readelf -d "$_lib" 2>/dev/null | awk -F'[][]' '/SONAME/{print $2}')
73
- [ -n "$_soname" ] && [ ! -e "$_soname" ] && ln -sf "$_lib" "$_soname"
88
+ if [ -n "$_soname" ] && [ ! -e "$_soname" ]; then
89
+ ln -sf "$_lib" "$_soname"
90
+ fi
74
91
_base=$(echo "$_lib" | sed -E 's/\.so\.[0-9.]+$/.so/')
75
- [ ! -e "$_base" ] && ln -sf "$_lib" "$_base"
92
+ if [ ! -e "$_base" ]; then
93
+ ln -sf "$_lib" "$_base"
94
+ fi
95
+ done
96
+
97
+ # Ręczne symlinki dla kluczowych bibliotek
98
+ for _pair in \
99
+ "libGLX_nvidia.so.${pkgver}:libGLX_nvidia.so.0" \
100
+ "libEGL_nvidia.so.${pkgver}:libEGL_nvidia.so.0" \
101
+ "libGLESv2_nvidia.so.${pkgver}:libGLESv2_nvidia.so.0" \
102
+ "libGLESv1_CM_nvidia.so.${pkgver}:libGLESv1_CM_nvidia.so.0" \
103
+ "libnvidia-glcore.so.${pkgver}:libnvidia-glcore.so.${pkgver%.*.*}" \
104
+ "libnvidia-eglcore.so.${pkgver}:libnvidia-eglcore.so.${pkgver%.*.*}" \
105
+ "libnvidia-glsi.so.${pkgver}:libnvidia-glsi.so.${pkgver%.*.*}" \
106
+ "libnvidia-rtcore.so.${pkgver}:libnvidia-rtcore.so.${pkgver%.*.*}" \
107
+ "libnvidia-allocator.so.${pkgver}:libnvidia-allocator.so.1" \
108
+ "libnvidia-egl-gbm.so.${pkgver}:libnvidia-egl-gbm.so.1" \
109
+ "libnvidia-egl-wayland.so.${pkgver}:libnvidia-egl-wayland.so.1" \
110
+ "libnvidia-vulkan-producer.so.${pkgver}:libnvidia-vulkan-producer.so" \
111
+ "libnvidia-api.so.${pkgver}:libnvidia-api.so.1" \
112
+ ; do
113
+ _src="${_pair%%:*}"; _dst="${_pair##*:}"
114
+ [ -f "${_src}" ] && [ ! -e "${_dst}" ] && ln -sf "${_src}" "${_dst}"
76
115
done
77
116
78
117
# ═══ CZĘŚĆ 2/3: ŹRÓDŁA DKMS ═══
@@ -80,9 +119,9 @@ build: |
80
119
install -dm0755 "${_srcdir}"
81
120
cp -r "${_nvdir}"/kernel/* "${_srcdir}/"
82
121
83
- cat > "${_srcdir}/dkms.conf" << EOF
122
+ cat > "${_srcdir}/dkms.conf" << 'EOF'
84
123
PACKAGE_NAME="nvidia"
85
-PACKAGE_VERSION="${pkgver}"
124
+PACKAGE_VERSION="610.57.04"
86
125
AUTOINSTALL="yes"
87
126
88
127
BUILT_MODULE_NAME[0]="nvidia"
@@ -107,7 +146,8 @@ EOF
107
146
install -dm0755 ${PKGDIR}/etc/modprobe.d
108
147
install -dm0755 ${PKGDIR}/etc/X11/xorg.conf.d
109
148
110
- cat > ${PKGDIR}/etc/X11/xorg.conf.d/10-nvidia-drm.conf << "EOF"
149
+ # Xorg OutputClass
150
+ cat > ${PKGDIR}/etc/X11/xorg.conf.d/10-nvidia-drm.conf << 'EOF'
111
151
Section "OutputClass"
112
152
Identifier "nvidia"
113
153
MatchDriver "nvidia-drm"
@@ -116,17 +156,30 @@ Section "OutputClass"
116
156
EndSection
117
157
EOF
118
158
119
- cat > ${PKGDIR}/etc/modprobe.d/nvidia-drm.conf << "EOF"
159
+ # Modprobe config
160
+ cat > ${PKGDIR}/etc/modprobe.d/nvidia-drm.conf << 'EOF'
120
161
options nvidia-drm modeset=1
121
162
EOF
122
163
123
- cat > ${PKGDIR}/etc/modprobe.d/nouveau.conf << "EOF"
164
+ # Autoload nvidia-drm przy PCI hot-plug
165
+ cat > ${PKGDIR}/usr/lib/udev/rules.d/99-pagan-nvidia-autoload.rules << 'EOF'
166
+ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", RUN+="/usr/sbin/modprobe nvidia-drm"
167
+ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", RUN+="/usr/sbin/modprobe nvidia-drm"
168
+EOF
169
+
170
+ # Blacklist nouveau
171
+ cat > ${PKGDIR}/etc/modprobe.d/nouveau.conf << 'EOF'
124
172
blacklist nouveau
125
173
options nouveau modeset=0
126
174
EOF
127
175
128
176
hooks:
129
177
post-install: |
178
+ if [ ! -d "/lib/modules/$(uname -r)/build" ]; then
179
+ echo "BŁĄD: Brak nagłówków jądra dla $(uname -r) w /lib/modules/$(uname -r)/build."
180
+ echo "Zainstaluj pakiet linux-headers i uruchom: dkms autoinstall"
181
+ exit 0
182
+ fi
130
183
dkms add -m nvidia -v ${pkgver} || true
131
184
dkms build -m nvidia -v ${pkgver} || true
132
185
dkms install -m nvidia -v ${pkgver} || true