Commit baeea789
0
files
+0
added
-0
deleted
@@ -1,161 +1,161 @@
1
-pkgname: nvidia-dkms
2
-pkgver: '610.57.04'
3
-pkgrel: '2'
4
-pkgdesc: NVIDIA drivers, xorg config, udev rules and DKMS kernel modules
5
-url: https://www.nvidia.com/en-us/drivers/unix/
6
-arch: x86_64
7
-license:
8
-- custom
9
-
10
-# `kernel` (a NIE `linux-headers`) – DKMS musi budować pod TO SAMO jądro, które
11
-# dostarcza `nvidia-kernel` i które jest w obrazie ISO. Wcześniejszy
12
-# `linux-headers` to meta na `kernel-lts` (6.18), więc moduły powstawały pod
13
-# inne jądro niż uruchomione („moduły nvidia zbudowane pod …” w pagan-drivers).
14
-depends:
15
-- kernel
16
-- dkms
17
-makedepends:
18
-- grep
19
-
20
-source:
21
-- https://us.download.nvidia.com/XFree86/Linux-x86_64/610.57.04/NVIDIA-Linux-x86_64-610.57.04.run
22
-sha256sums:
23
-- SKIP
24
-
25
-build: |
26
- sh NVIDIA-Linux-x86_64-${pkgver}.run --extract-only
27
- cd NVIDIA-Linux-x86_64-${pkgver}
28
-
29
- # --- 1. Przygotowanie źródeł DKMS ---
30
- _srcdir="${PKGDIR}/usr/src/nvidia-${pkgver}"
31
- install -dm0755 "${_srcdir}"
32
- cp -r kernel/* "${_srcdir}/"
33
-
34
- # Tworzenie pliku dkms.conf w katalogu źródeł
35
- cat > "${_srcdir}/dkms.conf" << EOF
36
- PACKAGE_NAME="nvidia"
37
- PACKAGE_VERSION="${pkgver}"
38
- AUTOINSTALL="yes"
39
-
40
- BUILT_MODULE_NAME[0]="nvidia"
41
- BUILT_MODULE_LOCATION[0]="."
42
- DEST_MODULE_LOCATION[0]="/kernel/drivers/video/nvidia"
43
-
44
- BUILT_MODULE_NAME[1]="nvidia-modeset"
45
- BUILT_MODULE_LOCATION[1]="."
46
- DEST_MODULE_LOCATION[1]="/kernel/drivers/video/nvidia"
47
-
48
- BUILT_MODULE_NAME[2]="nvidia-uvm"
49
- BUILT_MODULE_LOCATION[2]="."
50
- DEST_MODULE_LOCATION[2]="/kernel/drivers/video/nvidia"
51
-
52
- BUILT_MODULE_NAME[3]="nvidia-drm"
53
- BUILT_MODULE_LOCATION[3]="."
54
- DEST_MODULE_LOCATION[3]="/kernel/drivers/video/nvidia"
55
- EOF
56
-
57
- # --- 2. Tworzenie struktury dla przestrzeni użytkownika ---
58
- install -dm0755 ${PKGDIR}/usr/{lib,{bin,share/{applications,pixmaps,man/man1,doc/nvidia}}}
59
- install -dm0755 ${PKGDIR}/usr/share/glvnd/egl_vendor.d
60
- install -dm0755 ${PKGDIR}/usr/share/vulkan/implicit_layer.d
61
- install -dm0755 ${PKGDIR}/lib/udev/rules.d
62
-
63
- # Instalacja bibliotek użytkownika
64
- for _lib in *.so.${pkgver}; do
65
- if [ -f "$_lib" ]; then
66
- install -m 0755 "$_lib" ${PKGDIR}/usr/lib/
67
- fi
68
- done
69
-
70
- # Narzędzia i podręcznik MAN
71
- install -m 0755 nvidia-{xconfig,settings,smi} ${PKGDIR}/usr/bin/
72
- install -m 0644 nvidia-{xconfig,settings,smi}.1.gz ${PKGDIR}/usr/share/man/man1/
73
-
74
- # Skróty i ikony
75
- sed -e "s@__UTILS_PATH__/@@" -e "s@__PIXMAP_PATH__/@@" nvidia-settings.desktop \
76
- > ${PKGDIR}/usr/share/applications/nvidia-settings.desktop
77
- install -m 0644 nvidia-settings.png ${PKGDIR}/usr/share/pixmaps/
78
-
79
- # Sterownik i rozszerzenia Xorg
80
- install -dm0755 ${PKGDIR}/usr/lib/xorg/modules/{drivers,extensions}
81
- install -m 0755 nvidia_drv.so ${PKGDIR}/usr/lib/xorg/modules/drivers/
82
- install -m 0755 libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/
83
- ln -s libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
84
-
85
- # Pliki profilu GLVND (EGL) i Vulkan ICD
86
- if [ -f 10_nvidia.json ]; then
87
- install -m 0644 10_nvidia.json ${PKGDIR}/usr/share/glvnd/egl_vendor.d/
88
- fi
89
- if [ -f nvidia_icd.json ]; then
90
- install -m 0644 nvidia_icd.json ${PKGDIR}/usr/share/vulkan/implicit_layer.d/
91
- fi
92
-
93
- # Symlinki SONAME dla bibliotek
94
- find ${PKGDIR}/usr/lib -maxdepth 1 -type f -name '*.so.*' -print0 | while read -d $'\0' _lib; do
95
- _soname=$(readelf -d "${_lib}" 2>/dev/null | grep -Elo 'soname.*: \[[^]]*' | sed "s/soname: \[//" || true)
96
- if [ -n "${_soname}" ]; then
97
- _base=$(echo ${_soname} | sed -r 's/(.*)\.so.*/\1.so/')
98
- _dir=$(dirname "${_lib}")
99
- [[ -e "${_dir}/${_soname}" ]] || ln -s $(basename "${_lib}") "${_dir}/${_soname}"
100
- [[ -e "${_dir}/${_base}" ]] || ln -s $(basename "${_soname}") "${_dir}/${_base}"
101
- fi
102
- done
103
-
104
- # Dokumentacja
105
- if [ -d html ]; then
106
- cp -r html/* ${PKGDIR}/usr/share/doc/nvidia/
107
- fi
108
-
109
- # --- 3. Konfiguracja Xorg ---
110
- install -dm0755 ${PKGDIR}/etc/X11/xorg.conf.d
111
- cat > ${PKGDIR}/etc/X11/xorg.conf.d/10-nvidia-drm.conf << "EOF"
112
- Section "OutputClass"
113
- Identifier "nvidia"
114
- MatchDriver "nvidia-drm"
115
- Driver "nvidia"
116
- Option "AllowEmptyInitialConfiguration"
117
- ModulePath "/usr/lib/xorg/modules"
118
- EndSection
119
-
120
- Section "Device"
121
- Identifier "Device0"
122
- Driver "nvidia"
123
- VendorName "NVIDIA Corporation"
124
- EndSection
125
- EOF
126
-
127
- # --- 4. Reguły udev dla /dev/nvidia* ---
128
- cat > ${PKGDIR}/lib/udev/rules.d/60-nvidia.rules << "EOF"
129
- 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'"
130
- 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'"
131
- 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'"
132
- 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'"
133
- 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'"
134
- EOF
135
-
136
- # Czarna lista Nouveau
137
- install -dm0755 ${PKGDIR}/etc/modprobe.d
138
- cat > ${PKGDIR}/etc/modprobe.d/nouveau.conf << "EOF"
139
- blacklist nouveau
140
- options nouveau modeset=0
141
- EOF
142
-
143
- # Czyszczenie kolidujących bibliotek EGL
144
- rm -f ${PKGDIR}/usr/lib/libEGL.so*
145
- rm -f ${PKGDIR}/usr/lib/libGLES*.so*
146
-
147
-hooks:
148
- post-install: |
149
- # Rejestracja i budowanie modułów przez DKMS dla zainstalowanych jąder
150
- dkms add -m nvidia -v 610.57.04 || true
151
- dkms build -m nvidia -v 610.57.04 || true
152
- dkms install -m nvidia -v 610.57.04 || true
153
- ldconfig
154
- udevadm control --reload-rules || true
155
- pre-remove: |
156
- # Usunięcie modułów z DKMS PRZED odinstalowaniem pakietu. Wcześniej ta
157
- # komenda leżała w `package:` (faza BUDOWY), więc przy odinstalowaniu moduły
158
- # zostawały w /usr/lib/modules i psuły `depmod`/kolejne wersje sterownika.
159
- dkms remove -m nvidia -v 610.57.04 --all || true
160
-package: |
1
+pkgname: nvidia-dkms
2
+pkgver: '610.57.04'
3
+pkgrel: '2'
4
+pkgdesc: NVIDIA drivers, xorg config, udev rules and DKMS kernel modules
5
+url: https://www.nvidia.com/en-us/drivers/unix/
6
+arch: x86_64
7
+license:
8
+- custom
9
+
10
+# `kernel` (a NIE `linux-headers`) – DKMS musi budować pod TO SAMO jądro, które
11
+# dostarcza `nvidia-kernel` i które jest w obrazie ISO. Wcześniejszy
12
+# `linux-headers` to meta na `kernel-lts` (6.18), więc moduły powstawały pod
13
+# inne jądro niż uruchomione („moduły nvidia zbudowane pod …” w pagan-drivers).
14
+depends:
15
+- kernel
16
+- dkms
17
+makedepends:
18
+- grep
19
+
20
+source:
21
+- https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}.run
22
+sha256sums:
23
+- SKIP
24
+
25
+build: |
26
+ sh NVIDIA-Linux-x86_64-${pkgver}.run --extract-only
27
+ cd NVIDIA-Linux-x86_64-${pkgver}
28
+
29
+ # --- 1. Przygotowanie źródeł DKMS ---
30
+ _srcdir="${PKGDIR}/usr/src/nvidia-${pkgver}"
31
+ install -dm0755 "${_srcdir}"
32
+ cp -r kernel/* "${_srcdir}/"
33
+
34
+ # Tworzenie pliku dkms.conf w katalogu źródeł
35
+ cat > "${_srcdir}/dkms.conf" << EOF
36
+ PACKAGE_NAME="nvidia"
37
+ PACKAGE_VERSION="${pkgver}"
38
+ AUTOINSTALL="yes"
39
+
40
+ BUILT_MODULE_NAME[0]="nvidia"
41
+ BUILT_MODULE_LOCATION[0]="."
42
+ DEST_MODULE_LOCATION[0]="/kernel/drivers/video/nvidia"
43
+
44
+ BUILT_MODULE_NAME[1]="nvidia-modeset"
45
+ BUILT_MODULE_LOCATION[1]="."
46
+ DEST_MODULE_LOCATION[1]="/kernel/drivers/video/nvidia"
47
+
48
+ BUILT_MODULE_NAME[2]="nvidia-uvm"
49
+ BUILT_MODULE_LOCATION[2]="."
50
+ DEST_MODULE_LOCATION[2]="/kernel/drivers/video/nvidia"
51
+
52
+ BUILT_MODULE_NAME[3]="nvidia-drm"
53
+ BUILT_MODULE_LOCATION[3]="."
54
+ DEST_MODULE_LOCATION[3]="/kernel/drivers/video/nvidia"
55
+ EOF
56
+
57
+ # --- 2. Tworzenie struktury dla przestrzeni użytkownika ---
58
+ install -dm0755 ${PKGDIR}/usr/{lib,{bin,share/{applications,pixmaps,man/man1,doc/nvidia}}}
59
+ install -dm0755 ${PKGDIR}/usr/share/glvnd/egl_vendor.d
60
+ install -dm0755 ${PKGDIR}/usr/share/vulkan/implicit_layer.d
61
+ install -dm0755 ${PKGDIR}/lib/udev/rules.d
62
+
63
+ # Instalacja bibliotek użytkownika
64
+ for _lib in *.so.${pkgver}; do
65
+ if [ -f "$_lib" ]; then
66
+ install -m 0755 "$_lib" ${PKGDIR}/usr/lib/
67
+ fi
68
+ done
69
+
70
+ # Narzędzia i podręcznik MAN
71
+ install -m 0755 nvidia-{xconfig,settings,smi} ${PKGDIR}/usr/bin/
72
+ install -m 0644 nvidia-{xconfig,settings,smi}.1.gz ${PKGDIR}/usr/share/man/man1/
73
+
74
+ # Skróty i ikony
75
+ sed -e "s@__UTILS_PATH__/@@" -e "s@__PIXMAP_PATH__/@@" nvidia-settings.desktop \
76
+ > ${PKGDIR}/usr/share/applications/nvidia-settings.desktop
77
+ install -m 0644 nvidia-settings.png ${PKGDIR}/usr/share/pixmaps/
78
+
79
+ # Sterownik i rozszerzenia Xorg
80
+ install -dm0755 ${PKGDIR}/usr/lib/xorg/modules/{drivers,extensions}
81
+ install -m 0755 nvidia_drv.so ${PKGDIR}/usr/lib/xorg/modules/drivers/
82
+ install -m 0755 libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/
83
+ ln -s libglxserver_nvidia.so.${pkgver} ${PKGDIR}/usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
84
+
85
+ # Pliki profilu GLVND (EGL) i Vulkan ICD
86
+ if [ -f 10_nvidia.json ]; then
87
+ install -m 0644 10_nvidia.json ${PKGDIR}/usr/share/glvnd/egl_vendor.d/
88
+ fi
89
+ if [ -f nvidia_icd.json ]; then
90
+ install -m 0644 nvidia_icd.json ${PKGDIR}/usr/share/vulkan/implicit_layer.d/
91
+ fi
92
+
93
+ # Symlinki SONAME dla bibliotek
94
+ find ${PKGDIR}/usr/lib -maxdepth 1 -type f -name '*.so.*' -print0 | while read -d $'\0' _lib; do
95
+ _soname=$(readelf -d "${_lib}" 2>/dev/null | grep -Elo 'soname.*: \[[^]]*' | sed "s/soname: \[//" || true)
96
+ if [ -n "${_soname}" ]; then
97
+ _base=$(echo ${_soname} | sed -r 's/(.*)\.so.*/\1.so/')
98
+ _dir=$(dirname "${_lib}")
99
+ [[ -e "${_dir}/${_soname}" ]] || ln -s $(basename "${_lib}") "${_dir}/${_soname}"
100
+ [[ -e "${_dir}/${_base}" ]] || ln -s $(basename "${_soname}") "${_dir}/${_base}"
101
+ fi
102
+ done
103
+
104
+ # Dokumentacja
105
+ if [ -d html ]; then
106
+ cp -r html/* ${PKGDIR}/usr/share/doc/nvidia/
107
+ fi
108
+
109
+ # --- 3. Konfiguracja Xorg ---
110
+ install -dm0755 ${PKGDIR}/etc/X11/xorg.conf.d
111
+ cat > ${PKGDIR}/etc/X11/xorg.conf.d/10-nvidia-drm.conf << "EOF"
112
+ Section "OutputClass"
113
+ Identifier "nvidia"
114
+ MatchDriver "nvidia-drm"
115
+ Driver "nvidia"
116
+ Option "AllowEmptyInitialConfiguration"
117
+ ModulePath "/usr/lib/xorg/modules"
118
+ EndSection
119
+
120
+ Section "Device"
121
+ Identifier "Device0"
122
+ Driver "nvidia"
123
+ VendorName "NVIDIA Corporation"
124
+ EndSection
125
+ EOF
126
+
127
+ # --- 4. Reguły udev dla /dev/nvidia* ---
128
+ cat > ${PKGDIR}/lib/udev/rules.d/60-nvidia.rules << "EOF"
129
+ 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'"
130
+ 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'"
131
+ 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'"
132
+ 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'"
133
+ 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'"
134
+ EOF
135
+
136
+ # Czarna lista Nouveau
137
+ install -dm0755 ${PKGDIR}/etc/modprobe.d
138
+ cat > ${PKGDIR}/etc/modprobe.d/nouveau.conf << "EOF"
139
+ blacklist nouveau
140
+ options nouveau modeset=0
141
+ EOF
142
+
143
+ # Czyszczenie kolidujących bibliotek EGL
144
+ rm -f ${PKGDIR}/usr/lib/libEGL.so*
145
+ rm -f ${PKGDIR}/usr/lib/libGLES*.so*
146
+
147
+hooks:
148
+ post-install: |
149
+ # Rejestracja i budowanie modułów przez DKMS dla zainstalowanych jąder
150
+ dkms add -m nvidia -v ${pkgver} || true
151
+ dkms build -m nvidia -v ${pkgver} || true
152
+ dkms install -m nvidia -v ${pkgver} || true
153
+ ldconfig
154
+ udevadm control --reload-rules || true
155
+ pre-remove: |
156
+ # Usunięcie modułów z DKMS PRZED odinstalowaniem pakietu. Wcześniej ta
157
+ # komenda leżała w `package:` (faza BUDOWY), więc przy odinstalowaniu moduły
158
+ # zostawały w /usr/lib/modules i psuły `depmod`/kolejne wersje sterownika.
159
+ dkms remove -m nvidia -v ${pkgver} --all || true
160
+package: |
161
161
true