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