Commit 773abf1e
0
files
+0
added
-0
deleted
@@ -1,19 +1,16 @@
1
1
pkgname: nvidia-dkms
2
2
pkgver: '610.57.04'
3
-pkgrel: '3'
4
-pkgdesc: NVIDIA drivers, xorg config, udev rules and DKMS kernel modules
3
+pkgrel: '4'
4
+pkgdesc: NVIDIA kernel modules (DKMS), Xorg config and udev rules
5
5
url: https://www.nvidia.com/en-us/drivers/unix/
6
6
arch: x86_64
7
7
license:
8
8
- custom
9
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
10
depends:
15
11
- kernel
16
12
- dkms
13
+
17
14
makedepends:
18
15
- grep
19
16
@@ -26,12 +23,11 @@ build: |
26
23
sh NVIDIA-Linux-x86_64-${pkgver}.run --extract-only
27
24
cd NVIDIA-Linux-x86_64-${pkgver}
28
25
29
- # --- 1. Przygotowanie źródeł DKMS ---
26
+ # --- 1. Źródła DKMS ---
30
27
_srcdir="${PKGDIR}/usr/src/nvidia-${pkgver}"
31
28
install -dm0755 "${_srcdir}"
32
29
cp -r kernel/* "${_srcdir}/"
33
30
34
- # Tworzenie pliku dkms.conf w katalogu źródeł
35
31
cat > "${_srcdir}/dkms.conf" << EOF
36
32
PACKAGE_NAME="nvidia"
37
33
PACKAGE_VERSION="${pkgver}"
@@ -54,60 +50,12 @@ build: |
54
50
DEST_MODULE_LOCATION[3]="/kernel/drivers/video/nvidia"
55
51
EOF
56
52
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 ---
53
+ # --- 2. Tylko rzeczy specyficzne dla DKMS: config Xorg + udev + modprobe ---
54
+ install -dm0755 ${PKGDIR}/usr/lib/udev/rules.d
55
+ install -dm0755 ${PKGDIR}/etc/modprobe.d
110
56
install -dm0755 ${PKGDIR}/etc/X11/xorg.conf.d
57
+
58
+ # Xorg OutputClass
111
59
cat > ${PKGDIR}/etc/X11/xorg.conf.d/10-nvidia-drm.conf << "EOF"
112
60
Section "OutputClass"
113
61
Identifier "nvidia"
@@ -117,49 +65,27 @@ build: |
117
65
EndSection
118
66
EOF
119
67
120
- # --- 4. Reguły udev dla /dev/nvidia* ---
121
- cat > ${PKGDIR}/lib/udev/rules.d/60-nvidia.rules << "EOF"
122
- 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'"
123
- 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'"
124
- 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'"
125
- 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'"
126
- 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'"
127
- EOF
128
-
129
- # Autoload nvidia-drm z KMS (modeset=1). Bez tego nic nie załaduje modułów
130
- # (jądro nie ma nouveau, a DDX ładuje się dopiero po starcie Xorga), więc
131
- # OutputClass MatchDriver "nvidia-drm" NIE pasuje i X spada na modesetting
132
- # (karta NVIDIA ignorowana: brak akceleracji i multi-monitora).
133
- install -dm0755 ${PKGDIR}/lib/udev/rules.d
134
- cat > ${PKGDIR}/lib/udev/rules.d/99-pagan-nvidia-autoload.rules << "EOF"
135
- # PaganLinux: automatyczne załadowanie sterownika NVIDIA (proprietary).
136
- # modeset=1 -> nvidia-drm daje KMS (Xorg + Wayland).
68
+ # Autoload nvidia-drm (KMS)
69
+ cat > ${PKGDIR}/usr/lib/udev/rules.d/99-pagan-nvidia-autoload.rules << "EOF"
137
70
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", RUN+="/usr/sbin/modprobe nvidia-drm modeset=1"
138
71
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", RUN+="/usr/sbin/modprobe nvidia-drm modeset=1"
139
72
EOF
140
- # Czarna lista Nouveau
141
- install -dm0755 ${PKGDIR}/etc/modprobe.d
73
+
74
+ # Blacklist nouveau
142
75
cat > ${PKGDIR}/etc/modprobe.d/nouveau.conf << "EOF"
143
76
blacklist nouveau
144
77
options nouveau modeset=0
145
78
EOF
146
79
147
- # Czyszczenie kolidujących bibliotek EGL
148
- rm -f ${PKGDIR}/usr/lib/libEGL.so*
149
- rm -f ${PKGDIR}/usr/lib/libGLES*.so*
150
-
151
80
hooks:
152
81
post-install: |
153
- # Rejestracja i budowanie modułów przez DKMS dla zainstalowanych jąder
154
82
dkms add -m nvidia -v ${pkgver} || true
155
83
dkms build -m nvidia -v ${pkgver} || true
156
84
dkms install -m nvidia -v ${pkgver} || true
157
85
ldconfig
158
86
udevadm control --reload-rules || true
159
87
pre-remove: |
160
- # Usunięcie modułów z DKMS PRZED odinstalowaniem pakietu. Wcześniej ta
161
- # komenda leżała w `package:` (faza BUDOWY), więc przy odinstalowaniu moduły
162
- # zostawały w /usr/lib/modules i psuły `depmod`/kolejne wersje sterownika.
163
88
dkms remove -m nvidia -v ${pkgver} --all || true
89
+
164
90
package: |
165
91
true