Commit bc504e38
0
files
+0
added
-0
deleted
@@ -1,44 +1,120 @@
1
-pkgname: 'nvidia-kernel'
1
+pkgname: nvidia-utils
2
2
pkgver: '610.57.04'
3
-pkgrel: '3'
4
-pkgdesc: 'NVIDIA 610 modules for the rolling kernel (package kernel).'
5
-url: 'https://www.nvidia.com/en-us/drivers/unix/'
3
+pkgrel: '1'
4
+pkgdesc: NVIDIA userspace drivers: libGLX, libEGL, Vulkan ICD, nvidia-smi
5
+url: https://www.nvidia.com/en-us/drivers/unix/
6
6
arch: x86_64
7
7
license:
8
8
- custom
9
9
10
10
depends:
11
-- 'kernel'
11
+- nvidia-dkms
12
12
13
-makedepends: []
14
13
source:
15
-- 'https://download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}.run'
16
-
14
+- https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}.run
17
15
sha256sums:
18
16
- SKIP
19
17
20
-hooks:
21
- 'post-install': |
22
- # depmod przebudowuje zależności modułów (nvidia → nvidia-drm/modeset/uvm).
23
- # Bez tego jądro nie załaduje nvidia-drm przy starcie.
24
- depmod -a
25
-
26
18
build: |
27
19
sh NVIDIA-Linux-x86_64-${pkgver}.run --extract-only
28
- cd NVIDIA-Linux-x86_64-${pkgver}/kernel
20
+ cd NVIDIA-Linux-x86_64-${pkgver}
21
+
22
+ # --- Biblioteki ---
23
+ install -dm0755 ${PKGDIR}/usr/lib
24
+ install -dm0755 ${PKGDIR}/usr/bin
25
+ install -dm0755 ${PKGDIR}/usr/share/{applications,pixmaps,man/man1,doc/nvidia}
26
+ install -dm0755 ${PKGDIR}/usr/share/glvnd/egl_vendor.d
27
+ install -dm0755 ${PKGDIR}/usr/share/vulkan/icd.d
28
+ install -dm0755 ${PKGDIR}/usr/lib/xorg/modules/{drivers,extensions}
29
+
30
+ # Wszystkie biblioteki .so.${pkgver}
31
+ for _lib in *.so.${pkgver} *.so.${pkgver%.*.*}; do
32
+ [ -f "$_lib" ] && install -m 0755 "$_lib" ${PKGDIR}/usr/lib/
33
+ done
34
+
35
+ # nvidia-smi, nvidia-settings, nvidia-xconfig, nvidia-modprobe
36
+ for _bin in nvidia-smi nvidia-settings nvidia-xconfig nvidia-modprobe nvidia-persistenced; do
37
+ [ -f "$_bin" ] && install -m 0755 "$_bin" ${PKGDIR}/usr/bin/
38
+ done
39
+
40
+ # Man pages
41
+ for _man in nvidia-smi nvidia-settings nvidia-xconfig nvidia-modprobe nvidia-persistenced; do
42
+ [ -f "${_man}.1.gz" ] && install -m 0644 "${_man}.1.gz" ${PKGDIR}/usr/share/man/man1/
43
+ done
29
44
30
- # Jądro z pakietu `kernel` dostarcza pełne drzewo źródeł w /usr/src/kernel.
31
- SYSSRC="/usr/src/kernel" make modules
45
+ # Desktop entry + ikona
46
+ if [ -f nvidia-settings.desktop ]; then
47
+ sed -e "s@__UTILS_PATH__/@/usr/bin/@g" -e "s@__PIXMAP_PATH__/@/usr/share/pixmaps/@g" \
48
+ nvidia-settings.desktop > ${PKGDIR}/usr/share/applications/nvidia-settings.desktop
49
+ fi
50
+ [ -f nvidia-settings.png ] && install -m 0644 nvidia-settings.png ${PKGDIR}/usr/share/pixmaps/
32
51
33
- # Katalog modułów jest nazwany od wydania jądra (np. 7.2.5-pagan), a NIE
34
- # „kernel” – tak samo jak w obrazie ISO. Dzięki temu moduły leżą dokładnie
35
- # tam, gdzie jądro ich szuka (i gdzie `pag upgrade` podmienia jądro).
36
- KVER="$(make -s -C /usr/src/kernel kernelrelease 2>/dev/null || true)"
37
- [ -n "$KVER" ] || KVER="$(ls /usr/lib/modules | grep -- '-pagan' | head -1)"
38
- [ -n "$KVER" ] || { echo "Nie mogę ustalić wersji jądra (KVER) – brak /usr/src/kernel lub modułów"; exit 1; }
52
+ # Xorg DDX + rozszerzenie GLX
53
+ [ -f nvidia_drv.so ] && install -m 0755 nvidia_drv.so ${PKGDIR}/usr/lib/xorg/modules/drivers/
54
+ if [ -f libglxserver_nvidia.so.${pkgver} ]; then
55
+ install -m 0755 libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/
56
+ ln -sf libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
57
+ fi
39
58
40
- install -dm0755 ${PKGDIR}/usr/lib/modules/${KVER}/kernel/drivers/video
41
- install -m0644 *.ko ${PKGDIR}/usr/lib/modules/${KVER}/kernel/drivers/video
59
+ # EGL vendor (GLVND)
60
+ if [ -f 10_nvidia.json ]; then
61
+ install -m 0644 10_nvidia.json ${PKGDIR}/usr/share/glvnd/egl_vendor.d/
62
+ fi
63
+
64
+ # --- KLUCZOWE: Vulkan ICD do icd.d, NIE implicit_layer.d ---
65
+ if [ -f nvidia_icd.json ]; then
66
+ install -m 0644 nvidia_icd.json ${PKGDIR}/usr/share/vulkan/icd.d/
67
+ fi
68
+ # Warstwa pośrednia (jeśli jest)
69
+ if [ -f nvidia_layers.json ]; then
70
+ install -dm0755 ${PKGDIR}/usr/share/vulkan/explicit_layer.d
71
+ install -m 0644 nvidia_layers.json ${PKGDIR}/usr/share/vulkan/explicit_layer.d/
72
+ fi
73
+
74
+ # --- Symlinki SONAME ---
75
+ cd ${PKGDIR}/usr/lib
76
+ for _lib in *.so.${pkgver}; do
77
+ [ -f "$_lib" ] || continue
78
+ _soname=$(readelf -d "$_lib" 2>/dev/null | awk -F'[][]' '/SONAME/{print $2}')
79
+ if [ -n "$_soname" ] && [ ! -e "$_soname" ]; then
80
+ ln -sf "$_lib" "$_soname"
81
+ fi
82
+ _base=$(echo "$_lib" | sed -E 's/\.so\.[0-9.]+$/.so/')
83
+ if [ ! -e "$_base" ]; then
84
+ ln -sf "$_lib" "$_base"
85
+ fi
86
+ done
87
+
88
+ # Ręczne symlinki dla kluczowych bibliotek (na wypadek gdyby readelf zawiódł)
89
+ for _pair in \
90
+ "libGLX_nvidia.so.${pkgver}:libGLX_nvidia.so.0" \
91
+ "libEGL_nvidia.so.${pkgver}:libEGL_nvidia.so.0" \
92
+ "libGLESv2_nvidia.so.${pkgver}:libGLESv2_nvidia.so.0" \
93
+ "libGLESv1_CM_nvidia.so.${pkgver}:libGLESv1_CM_nvidia.so.0" \
94
+ "libnvidia-glcore.so.${pkgver}:libnvidia-glcore.so.${pkgver%.*.*}" \
95
+ "libnvidia-eglcore.so.${pkgver}:libnvidia-eglcore.so.${pkgver%.*.*}" \
96
+ "libnvidia-glsi.so.${pkgver}:libnvidia-glsi.so.${pkgver%.*.*}" \
97
+ "libnvidia-rtcore.so.${pkgver}:libnvidia-rtcore.so.${pkgver%.*.*}" \
98
+ "libnvidia-allocator.so.${pkgver}:libnvidia-allocator.so.1" \
99
+ "libnvidia-egl-gbm.so.${pkgver}:libnvidia-egl-gbm.so.1" \
100
+ "libnvidia-egl-wayland.so.${pkgver}:libnvidia-egl-wayland.so.1" \
101
+ "libnvidia-vulkan-producer.so.${pkgver}:libnvidia-vulkan-producer.so" \
102
+ "libnvidia-api.so.${pkgver}:libnvidia-api.so.1" \
103
+ ; do
104
+ _src="${_pair%%:*}"; _dst="${_pair##*:}"
105
+ [ -f "${_src}" ] && [ ! -e "${_dst}" ] && ln -sf "${_src}" "${_dst}"
106
+ done
107
+
108
+ # Dokumentacja
109
+ if [ -d html ]; then
110
+ cp -r html/* ${PKGDIR}/usr/share/doc/nvidia/
111
+ fi
42
112
43
113
package: |
44
114
true
115
+
116
+hooks:
117
+ post-install: |
118
+ ldconfig
119
+ # Zarejestruj EGL Wayland/GBM jeśli używasz Waylanda
120
+ udevadm control --reload-rules || true