Commit 01323597
0
files
+0
added
-0
deleted
@@ -1,202 +1,145 @@
1
-pkgname: nvidia-dkms
2
-pkgver: '610.57.04'
3
-pkgrel: '6'
4
-pkgdesc: NVIDIA userspace drivers (libGLX, libEGL, Vulkan ICD, nvidia-smi) + DKMS kernel module sources, Xorg config and udev rules
5
-url: https://www.nvidia.com/en-us/drivers/unix/
6
-arch: x86_64
7
-license:
8
-- custom
9
-
10
-# UWAGA: `kernel` (nie `linux-headers`) daje /usr/src/kernel + symlink
11
-# build/source w /usr/lib/modules/<ver> – to jest SYSSRC, którego używa DKMS.
12
-# Zależności NIE zawierają `nvidia-kernel` (to był cykl): pakiet dostarcza
13
-# userspace + źródła DKMS, a gotowe moduły wnosi osobny `nvidia-kernel`.
14
-depends:
15
-- kernel
16
-- dkms
17
-
18
-makedepends:
19
-- grep
20
-- binutils # readelf – pętla SONAME przy instalacji bibliotek userspace
21
-
22
-source:
23
-- https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}.run
24
-sha256sums:
25
-- SKIP
26
-
27
-build: |
28
- sh NVIDIA-Linux-x86_64-${pkgver}.run --extract-only
29
- cd NVIDIA-Linux-x86_64-${pkgver}
30
- _nvdir="${PWD}"
31
-
32
- # ═══ CZĘŚĆ 1/3: USERSPACE (biblioteki GL/EGL/Vulkan, binarki, DDX) ═══
33
- install -dm0755 ${PKGDIR}/usr/lib
34
- install -dm0755 ${PKGDIR}/usr/bin
35
- install -dm0755 ${PKGDIR}/usr/share/{applications,pixmaps,man/man1,doc/nvidia}
36
- install -dm0755 ${PKGDIR}/usr/share/glvnd/egl_vendor.d
37
- install -dm0755 ${PKGDIR}/usr/share/vulkan/icd.d
38
- install -dm0755 ${PKGDIR}/usr/lib/xorg/modules/{drivers,extensions}
39
-
40
- # Wszystkie biblioteki .so.${pkgver}
41
- for _lib in *.so.${pkgver} *.so.${pkgver%.*.*}; do
42
- [ -f "$_lib" ] && install -m 0755 "$_lib" ${PKGDIR}/usr/lib/
43
- done
44
-
45
- # nvidia-smi, nvidia-settings, nvidia-xconfig, nvidia-modprobe
46
- for _bin in nvidia-smi nvidia-settings nvidia-xconfig nvidia-modprobe nvidia-persistenced; do
47
- [ -f "$_bin" ] && install -m 0755 "$_bin" ${PKGDIR}/usr/bin/
48
- done
49
-
50
- # Man pages
51
- for _man in nvidia-smi nvidia-settings nvidia-xconfig nvidia-modprobe nvidia-persistenced; do
52
- [ -f "${_man}.1.gz" ] && install -m 0644 "${_man}.1.gz" ${PKGDIR}/usr/share/man/man1/
53
- done
54
-
55
- # Desktop entry + ikona
56
- if [ -f nvidia-settings.desktop ]; then
57
- sed -e "s@__UTILS_PATH__/@/usr/bin/@g" -e "s@__PIXMAP_PATH__/@/usr/share/pixmaps/@g" \
58
- nvidia-settings.desktop > ${PKGDIR}/usr/share/applications/nvidia-settings.desktop
59
- fi
60
- [ -f nvidia-settings.png ] && install -m 0644 nvidia-settings.png ${PKGDIR}/usr/share/pixmaps/
61
-
62
- # Xorg DDX + rozszerzenie GLX
63
- [ -f nvidia_drv.so ] && install -m 0755 nvidia_drv.so ${PKGDIR}/usr/lib/xorg/modules/drivers/
64
- if [ -f libglxserver_nvidia.so.${pkgver} ]; then
65
- install -m 0755 libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/
66
- ln -sf libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
67
- fi
68
-
69
- # EGL vendor (GLVND)
70
- if [ -f 10_nvidia.json ]; then
71
- install -m 0644 10_nvidia.json ${PKGDIR}/usr/share/glvnd/egl_vendor.d/
72
- fi
73
-
74
- # Vulkan ICD do icd.d, NIE implicit_layer.d
75
- if [ -f nvidia_icd.json ]; then
76
- install -m 0644 nvidia_icd.json ${PKGDIR}/usr/share/vulkan/icd.d/
77
- fi
78
- if [ -f nvidia_layers.json ]; then
79
- install -dm0755 ${PKGDIR}/usr/share/vulkan/explicit_layer.d
80
- install -m 0644 nvidia_layers.json ${PKGDIR}/usr/share/vulkan/explicit_layer.d/
81
- fi
82
-
83
- # Dokumentacja (przed `cd`, bo niżej zmieniamy katalog roboczy)
84
- if [ -d "${_nvdir}/html" ]; then
85
- cp -r "${_nvdir}"/html/* ${PKGDIR}/usr/share/doc/nvidia/ 2>/dev/null || true
86
- fi
87
-
88
- # --- Symlinki SONAME ---
89
- cd ${PKGDIR}/usr/lib
90
- for _lib in *.so.${pkgver}; do
91
- [ -f "$_lib" ] || continue
92
- _soname=$(readelf -d "$_lib" 2>/dev/null | awk -F'[][]' '/SONAME/{print $2}')
93
- if [ -n "$_soname" ] && [ ! -e "$_soname" ]; then
94
- ln -sf "$_lib" "$_soname"
95
- fi
96
- _base=$(echo "$_lib" | sed -E 's/\.so\.[0-9.]+$/.so/')
97
- if [ ! -e "$_base" ]; then
98
- ln -sf "$_lib" "$_base"
99
- fi
100
- done
101
-
102
- # Ręczne symlinki dla kluczowych bibliotek (na wypadek gdyby readelf zawiódł)
103
- for _pair in \
104
- "libGLX_nvidia.so.${pkgver}:libGLX_nvidia.so.0" \
105
- "libEGL_nvidia.so.${pkgver}:libEGL_nvidia.so.0" \
106
- "libGLESv2_nvidia.so.${pkgver}:libGLESv2_nvidia.so.0" \
107
- "libGLESv1_CM_nvidia.so.${pkgver}:libGLESv1_CM_nvidia.so.0" \
108
- "libnvidia-glcore.so.${pkgver}:libnvidia-glcore.so.${pkgver%.*.*}" \
109
- "libnvidia-eglcore.so.${pkgver}:libnvidia-eglcore.so.${pkgver%.*.*}" \
110
- "libnvidia-glsi.so.${pkgver}:libnvidia-glsi.so.${pkgver%.*.*}" \
111
- "libnvidia-rtcore.so.${pkgver}:libnvidia-rtcore.so.${pkgver%.*.*}" \
112
- "libnvidia-allocator.so.${pkgver}:libnvidia-allocator.so.1" \
113
- "libnvidia-egl-gbm.so.${pkgver}:libnvidia-egl-gbm.so.1" \
114
- "libnvidia-egl-wayland.so.${pkgver}:libnvidia-egl-wayland.so.1" \
115
- "libnvidia-vulkan-producer.so.${pkgver}:libnvidia-vulkan-producer.so" \
116
- "libnvidia-api.so.${pkgver}:libnvidia-api.so.1" \
117
- ; do
118
- _src="${_pair%%:*}"; _dst="${_pair##*:}"
119
- [ -f "${_src}" ] && [ ! -e "${_dst}" ] && ln -sf "${_src}" "${_dst}"
120
- done
121
-
122
- # ═══ CZĘŚĆ 2/3: ŹRÓDŁA DKMS (przebudowa modułów po aktualizacji jądra) ═══
123
- _srcdir="${PKGDIR}/usr/src/nvidia-${pkgver}"
124
- install -dm0755 "${_srcdir}"
125
- cp -r "${_nvdir}"/kernel/* "${_srcdir}/"
126
-
127
- cat > "${_srcdir}/dkms.conf" << EOF
128
- PACKAGE_NAME="nvidia"
129
- PACKAGE_VERSION="${pkgver}"
130
- AUTOINSTALL="yes"
131
-
132
- BUILT_MODULE_NAME[0]="nvidia"
133
- BUILT_MODULE_LOCATION[0]="."
134
- DEST_MODULE_LOCATION[0]="/kernel/drivers/video/nvidia"
135
-
136
- BUILT_MODULE_NAME[1]="nvidia-modeset"
137
- BUILT_MODULE_LOCATION[1]="."
138
- DEST_MODULE_LOCATION[1]="/kernel/drivers/video/nvidia"
139
-
140
- BUILT_MODULE_NAME[2]="nvidia-uvm"
141
- BUILT_MODULE_LOCATION[2]="."
142
- DEST_MODULE_LOCATION[2]="/kernel/drivers/video/nvidia"
143
-
144
- BUILT_MODULE_NAME[3]="nvidia-drm"
145
- BUILT_MODULE_LOCATION[3]="."
146
- DEST_MODULE_LOCATION[3]="/kernel/drivers/video/nvidia"
147
- EOF
148
-
149
- # ═══ CZĘŚĆ 3/3: KONFIGURACJA SYSTEMOWA ═══
150
- install -dm0755 ${PKGDIR}/usr/lib/udev/rules.d
151
- install -dm0755 ${PKGDIR}/etc/modprobe.d
152
- install -dm0755 ${PKGDIR}/etc/X11/xorg.conf.d
153
-
154
- # Xorg OutputClass
155
- cat > ${PKGDIR}/etc/X11/xorg.conf.d/10-nvidia-drm.conf << "EOF"
156
- Section "OutputClass"
157
- Identifier "nvidia"
158
- MatchDriver "nvidia-drm"
159
- Driver "nvidia"
160
- Option "AllowEmptyInitialConfiguration"
161
- EndSection
162
- EOF
163
-
164
- # parametr modeset=1 w modprobe (stosuje się przy każdym ładowaniu modułu)
165
- cat > ${PKGDIR}/etc/modprobe.d/nvidia-drm.conf << "EOF"
166
- options nvidia-drm modeset=1
167
- EOF
168
-
169
- # Autoload nvidia-drm (KMS) przy hot-plug
170
- cat > ${PKGDIR}/usr/lib/udev/rules.d/99-pagan-nvidia-autoload.rules << "EOF"
171
- ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", RUN+="/usr/sbin/modprobe nvidia-drm"
172
- ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", RUN+="/usr/sbin/modprobe nvidia-drm"
173
- EOF
174
-
175
- # Blacklist nouveau
176
- cat > ${PKGDIR}/etc/modprobe.d/nouveau.conf << "EOF"
177
- blacklist nouveau
178
- options nouveau modeset=0
179
- EOF
180
-
181
-hooks:
182
- post-install: |
183
- # Sprawdź ścieżkę źródeł/nagłówków jądra (SYSSRC dla DKMS).
184
- if [ ! -d "/lib/modules/$(uname -r)/build" ] && [ ! -d "/usr/src/kernel" ]; then
185
- echo "BŁĄD: Brak nagłówków jądra dla $(uname -r)."
186
- echo "Zainstaluj pakiet kernel i uruchom: dkms autoinstall"
187
- exit 0
188
- fi
189
- dkms add -m nvidia -v ${pkgver} || true
190
- dkms build -m nvidia -v ${pkgver} || true
191
- dkms install -m nvidia -v ${pkgver} || true
192
- ldconfig
193
- udevadm control --reload-rules || true
194
- pre-remove: |
195
- dkms remove -m nvidia -v ${pkgver} --all || true
196
- post-upgrade: |
197
- # przy aktualizacji przebuduj moduły dla nowego jądra
198
- dkms autoinstall || true
199
- depmod -a || true
200
-
201
-package: |
202
- true
1
+pkgname: nvidia-dkms
2
+pkgver: '610.57.04'
3
+pkgrel: '7'
4
+pkgdesc: NVIDIA userspace drivers + DKMS kernel module sources, Xorg config and udev rules
5
+url: https://www.nvidia.com/en-us/drivers/unix/
6
+arch: x86_64
7
+license:
8
+- custom
9
+
10
+depends:
11
+- dkms
12
+
13
+makedepends:
14
+- grep
15
+- binutils
16
+
17
+source:
18
+- https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}.run
19
+sha256sums:
20
+- SKIP
21
+
22
+build: |
23
+ sh NVIDIA-Linux-x86_64-${pkgver}.run --extract-only
24
+ cd NVIDIA-Linux-x86_64-${pkgver}
25
+ _nvdir="${PWD}"
26
+
27
+ # ═══ CZĘŚĆ 1/3: USERSPACE ═══
28
+ install -dm0755 ${PKGDIR}/usr/lib
29
+ install -dm0755 ${PKGDIR}/usr/bin
30
+ install -dm0755 ${PKGDIR}/usr/share/{applications,pixmaps,man/man1,doc/nvidia}
31
+ install -dm0755 ${PKGDIR}/usr/share/glvnd/egl_vendor.d
32
+ install -dm0755 ${PKGDIR}/usr/share/vulkan/icd.d
33
+ install -dm0755 ${PKGDIR}/usr/lib/xorg/modules/{drivers,extensions}
34
+
35
+ # Biblioteki .so
36
+ for _lib in *.so.${pkgver} *.so.${pkgver%.*.*}; do
37
+ [ -f "$_lib" ] && install -m 0755 "$_lib" ${PKGDIR}/usr/lib/
38
+ done
39
+
40
+ # Binaria
41
+ for _bin in nvidia-smi nvidia-settings nvidia-xconfig nvidia-modprobe nvidia-persistenced; do
42
+ [ -f "$_bin" ] && install -m 0755 "$_bin" ${PKGDIR}/usr/bin/
43
+ done
44
+
45
+ # Man pages
46
+ for _man in nvidia-smi nvidia-settings nvidia-xconfig nvidia-modprobe nvidia-persistenced; do
47
+ [ -f "${_man}.1.gz" ] && install -m 0644 "${_man}.1.gz" ${PKGDIR}/usr/share/man/man1/
48
+ done
49
+
50
+ # Desktop entry + ikona
51
+ if [ -f nvidia-settings.desktop ]; then
52
+ sed -e "s@__UTILS_PATH__/@/usr/bin/@g" -e "s@__PIXMAP_PATH__/@/usr/share/pixmaps/@g" \
53
+ nvidia-settings.desktop > ${PKGDIR}/usr/share/applications/nvidia-settings.desktop
54
+ fi
55
+ [ -f nvidia-settings.png ] && install -m 0644 nvidia-settings.png ${PKGDIR}/usr/share/pixmaps/
56
+
57
+ # Xorg DDX + GLX
58
+ [ -f nvidia_drv.so ] && install -m 0755 nvidia_drv.so ${PKGDIR}/usr/lib/xorg/modules/drivers/
59
+ if [ -f libglxserver_nvidia.so.${pkgver} ]; then
60
+ install -m 0755 libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/
61
+ ln -sf libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
62
+ fi
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/
67
+
68
+ # SONAME Symlinki
69
+ cd ${PKGDIR}/usr/lib
70
+ for _lib in *.so.${pkgver}; do
71
+ [ -f "$_lib" ] || continue
72
+ _soname=$(readelf -d "$_lib" 2>/dev/null | awk -F'[][]' '/SONAME/{print $2}')
73
+ [ -n "$_soname" ] && [ ! -e "$_soname" ] && ln -sf "$_lib" "$_soname"
74
+ _base=$(echo "$_lib" | sed -E 's/\.so\.[0-9.]+$/.so/')
75
+ [ ! -e "$_base" ] && ln -sf "$_lib" "$_base"
76
+ done
77
+
78
+ # ═══ CZĘŚĆ 2/3: ŹRÓDŁA DKMS ═══
79
+ _srcdir="${PKGDIR}/usr/src/nvidia-${pkgver}"
80
+ install -dm0755 "${_srcdir}"
81
+ cp -r "${_nvdir}"/kernel/* "${_srcdir}/"
82
+
83
+ cat > "${_srcdir}/dkms.conf" << EOF
84
+PACKAGE_NAME="nvidia"
85
+PACKAGE_VERSION="${pkgver}"
86
+AUTOINSTALL="yes"
87
+
88
+BUILT_MODULE_NAME[0]="nvidia"
89
+BUILT_MODULE_LOCATION[0]="kernel"
90
+DEST_MODULE_LOCATION[0]="/extra"
91
+
92
+BUILT_MODULE_NAME[1]="nvidia-modeset"
93
+BUILT_MODULE_LOCATION[1]="kernel-modeset"
94
+DEST_MODULE_LOCATION[1]="/extra"
95
+
96
+BUILT_MODULE_NAME[2]="nvidia-uvm"
97
+BUILT_MODULE_LOCATION[2]="kernel-uvm"
98
+DEST_MODULE_LOCATION[2]="/extra"
99
+
100
+BUILT_MODULE_NAME[3]="nvidia-drm"
101
+BUILT_MODULE_LOCATION[3]="kernel-drm"
102
+DEST_MODULE_LOCATION[3]="/extra"
103
+EOF
104
+
105
+ # ═══ CZĘŚĆ 3/3: KONFIGURACJA SYSTEMOWA ═══
106
+ install -dm0755 ${PKGDIR}/usr/lib/udev/rules.d
107
+ install -dm0755 ${PKGDIR}/etc/modprobe.d
108
+ install -dm0755 ${PKGDIR}/etc/X11/xorg.conf.d
109
+
110
+ cat > ${PKGDIR}/etc/X11/xorg.conf.d/10-nvidia-drm.conf << "EOF"
111
+Section "OutputClass"
112
+ Identifier "nvidia"
113
+ MatchDriver "nvidia-drm"
114
+ Driver "nvidia"
115
+ Option "AllowEmptyInitialConfiguration"
116
+EndSection
117
+EOF
118
+
119
+ cat > ${PKGDIR}/etc/modprobe.d/nvidia-drm.conf << "EOF"
120
+options nvidia-drm modeset=1
121
+EOF
122
+
123
+ cat > ${PKGDIR}/etc/modprobe.d/nouveau.conf << "EOF"
124
+blacklist nouveau
125
+options nouveau modeset=0
126
+EOF
127
+
128
+hooks:
129
+ post-install: |
130
+ dkms add -m nvidia -v ${pkgver} || true
131
+ dkms build -m nvidia -v ${pkgver} || true
132
+ dkms install -m nvidia -v ${pkgver} || true
133
+ depmod -a || true
134
+ dracut --regenerate-all --force || true
135
+ ldconfig
136
+ udevadm control --reload-rules || true
137
+ pre-remove: |
138
+ dkms remove -m nvidia -v ${pkgver} --all || true
139
+ post-upgrade: |
140
+ dkms autoinstall || true
141
+ depmod -a || true
142
+ dracut --regenerate-all --force || true
143
+
144
+package: |
145
+ true