← recipes

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