← recipes

Commit 0bd8f44

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