Commit 582c488
4
plików
+105
dodanych
-46
usuniętych
@@ -1,15 +1,19 @@
1
1
pkgname: nvidia-dkms
2
2
pkgver: '610.57.04'
3
-pkgrel: '1'
3
+pkgrel: '2'
4
4
pkgdesc: NVIDIA drivers, xorg config, udev rules and DKMS kernel modules
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).
10
14
depends:
15
+- kernel
11
16
- dkms
12
-- linux-headers
13
17
makedepends:
14
18
- grep
15
19
@@ -149,8 +153,9 @@ hooks:
149
153
ldconfig
150
154
udevadm control --reload-rules || true
151
155
pre-remove: |
152
- # Usunięcie modułów z DKMS przed odinstalowaniem pakietu
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
153
160
package: |
154
- true
155
-
156
- dkms remove -m nvidia -v 610.57.04 --all || true
161
+ true
@@ -1,12 +1,20 @@
1
1
pkgname: kernel
2
2
pkgver: '7.2.5'
3
-pkgrel: '1'
4
-pkgdesc: 'Pagan Linux kernel (rolling) – strojenie identyczne z ISO buildera (CONFIG_LOCALVERSION=-pagan, wbudowane squashfs/exFAT/NVMe/USB).'
3
+pkgrel: '2'
4
+pkgdesc: 'Pagan Linux kernel (rolling) – układ DOKŁADNIE jak w obrazie ISO: /boot/vmlinuz-<ver>-pagan + /usr/lib/modules/<ver>-pagan + źródła DKMS w /usr/src/kernel.'
5
5
url: 'https://www.kernel.org'
6
6
arch: x86_64
7
+license:
8
+- GPL-2.0-only
7
9
depends:
8
10
- kmod
9
11
12
+# `pag install linux` musi dalej działać (stare skrypty, pagan-drivers, haki) –
13
+# tak samo nazywa ten pakiet build ISO (install_rolling_kernel w build-pagan.sh,
14
+# które ustawia provides:["linux"]).
15
+provides:
16
+- linux
17
+
10
18
makedepends:
11
19
- gmp
12
20
- mpc
@@ -30,13 +38,48 @@ sha256sums:
30
38
- 12398c7d02541f75cc91cb1103bbafa4faa32e04c49d71120229afc3ea13e5bd
31
39
- cda3a82fbf2f453ab86870706a647a2bf4f6bad91088aa679c06122d3a6d828c
32
40
41
+# Hooki uruchamiają się na ŻYWYM systemie po `pag install kernel` (rolling) i
42
+# muszą zostawić /boot w stanie, który zrozumie /etc/grub.d/10_linux.
33
43
hooks:
34
44
'post-install': |
35
- mkinitramfs $(ls /usr/lib/modules | grep -vx 'kernel' | head -1)
36
- rm -f boot/initrd-stable
37
- mv boot/initrd-$(ls /usr/lib/modules | grep -vx 'kernel' | head -1) boot/initrd-stable
38
- 'post-remove': |
39
- rm -f boot/initrd-stable
45
+ export LC_ALL=C LANG=C
46
+ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
47
+
48
+ # 1) build/source dla każdego jądra (DKMS, moduły out-of-tree). Symlinki
49
+ # WZGLĘDNE – pag blokuje absolutne ścieżki w pakiecie.
50
+ for _m in /usr/lib/modules/*; do
51
+ [ -d "$_m" ] || continue
52
+ [ -d /usr/src/kernel ] || continue
53
+ ln -sfn ../../../src/kernel "$_m/build"
54
+ ln -sfn ../../../src/kernel "$_m/source"
55
+ done
56
+
57
+ # 2) initramfs (pagan-initramfs → mkinitramfs → dracut → mkinitcpio)
58
+ if command -v pagan-initramfs >/dev/null 2>&1; then
59
+ pagan-initramfs || true
60
+ elif command -v mkinitramfs >/dev/null 2>&1; then
61
+ mkinitramfs "$(ls /usr/lib/modules | grep -vx 'kernel-lts' | head -1)" || true
62
+ fi
63
+
64
+ # 3) Aliasy initramfs pod nazwami z wersją. 10_linux szuka initrd WYŁĄCZNIE
65
+ # jako initrd.img-<ver>/initramfs-<ver>.img; bez aliasu wpis w menu nie ma
66
+ # linii `initrd` → panika jądra („VFS: Cannot open root device”).
67
+ if [ -f /boot/initramfs.img ]; then
68
+ for _k in /boot/vmlinuz*; do
69
+ [ -e "$_k" ] || continue
70
+ _v="$(basename "$_k" | sed -e 's,^[^0-9]*-,,g')"
71
+ [ -n "$_v" ] || continue
72
+ [ "$_v" != "$(basename "$_k")" ] || continue
73
+ [ -e "/boot/initramfs-$_v.img" ] || ln -sfn initramfs.img "/boot/initramfs-$_v.img"
74
+ [ -e "/boot/initrd.img-$_v" ] || ln -sfn initramfs.img "/boot/initrd.img-$_v"
75
+ done
76
+ fi
77
+
78
+ # 4) GRUB: `pag grub-update` NIE może działać w trakcie `pag install`
79
+ # (lock PAG-a jest trzymany) – dlatego sprawdzamy brak lockfile.
80
+ if command -v pag >/dev/null 2>&1 && [ ! -f /var/lib/pag/pag.lock ]; then
81
+ pag grub-update || true
82
+ fi
40
83
41
84
build: |
42
85
mkdir -p ${PKGDIR}/{boot,usr/{share/doc,src,lib/modules}}
@@ -45,18 +88,15 @@ build: |
45
88
46
89
[ -f ../patch-${pkgver}.xz ] && \
47
90
xz -d -c ../patch-${pkgver}.xz | patch -Np1
48
-
49
91
patch -Np1 -i ../init_path.patch
50
92
51
93
# Konfiguracja: identyczna z build-pagan.sh (config = config-<ver>-pagan z ISO).
52
- # localversion -pagan pochodzi z CONFIG_LOCALVERSION w config (bez dodatkowego pliku).
53
-
94
+ # CONFIG_LOCALVERSION="-pagan" → KERNELRELEASE = <ver>-pagan (np. 7.2.5-pagan).
54
95
cp ../config .config
55
96
make olddefconfig
56
97
diff -u ../config .config || true
57
98
KERNELRELEASE=$(make -s kernelrelease)
58
99
IMAGENAME=$(make -s image_name)
59
- # make menuconfig
60
100
make
61
101
cp .config config
62
102
ZSTD_CLEVEL=19 \
@@ -65,34 +105,33 @@ build: |
65
105
DEPMOD=/dev/null modules_install
66
106
depmod -b ${PKGDIR}/usr -a $KERNELRELEASE
67
107
108
+ # ── /boot: nazwy plików DOKŁADNIE jak w obrazie ISO ──────────────────────
109
+ # GRUB (/etc/grub.d/10_linux) znajduje jądra WYŁĄCZNIE po `vmlinuz-*`.
110
+ # Poprzednie `kernel-stable` było dla GRUB-a niewidoczne, więc po `pag upgrade`
111
+ # system startował ze STARYM jądrem z obrazu (albo nie startował wcale).
68
112
cp System.map ${PKGDIR}/boot/System.map-$KERNELRELEASE
113
+ ln -sf System.map-$KERNELRELEASE ${PKGDIR}/boot/System.map
69
114
cp .config ${PKGDIR}/boot/config-$KERNELRELEASE
70
- cp $IMAGENAME ${PKGDIR}/boot/kernel-stable
71
- ln -sf kernel-stable ${PKGDIR}/boot/${pkgname}
115
+ cp $IMAGENAME ${PKGDIR}/boot/vmlinuz-$KERNELRELEASE
116
+ ln -sf vmlinuz-$KERNELRELEASE ${PKGDIR}/boot/vmlinuz-linux
72
117
73
- # Przenieś CAŁE drzewo źródeł: cwd jest WEWNĄTRZ linux-7.2 (po `cd linux-7.2`),
74
- # więc najpierw wychodzimy do katalogu źródeł SRCDIR.
118
+ # ── źródła dla DKMS: /usr/src/kernel (SYSSRC dla nvidia-kernel/nvidia-dkms).
75
119
cd ..
76
- mv linux-7.2 ${PKGDIR}/usr/src/${pkgname}
77
- ln -sv ${pkgname} ${PKGDIR}/usr/src/linux-7.2
78
- mv ${PKGDIR}/usr/src/${pkgname}/Documentation \
79
- ${PKGDIR}/usr/share/doc/${pkgname}
80
-
81
- # Reorganise files
120
+ mv linux-7.2 ${PKGDIR}/usr/src/kernel
121
+ mv ${PKGDIR}/usr/src/kernel/Documentation ${PKGDIR}/usr/share/doc/kernel
122
+ # Konwencja „linux-headers-$(uname -r)”, której szukają hooki ISO i DKMS.
123
+ ln -sfn kernel ${PKGDIR}/usr/src/linux-headers-$KERNELRELEASE
124
+
125
+ # ── moduły: /usr/lib/modules/<ver>-pagan (BEZ zmiany nazwy na „kernel”) ──
126
+ # Ten sam katalog co w obrazie ISO → `pag upgrade` podmienia jądro W MIEJSCU,
127
+ # a moduły NVIDIA/DKMS trafiają tam, gdzie faktycznie szuka ich jądro.
82
128
cd ${PKGDIR}/usr/lib/modules
83
- mv $KERNELRELEASE ${pkgname}
84
- ln -sv ${pkgname} ${PKGDIR}/usr/lib/modules/$KERNELRELEASE
85
-
86
- rm $KERNELRELEASE/build
87
- ln -sv /usr/src/${pkgname} $KERNELRELEASE/build
129
+ rm -f $KERNELRELEASE/build $KERNELRELEASE/source
130
+ ln -sfn ../../../src/kernel $KERNELRELEASE/build
131
+ ln -sfn ../../../src/kernel $KERNELRELEASE/source
88
132
89
133
# Firmware are in linux-firmware
90
134
rm -rf ${PKGDIR}/lib/firmware
91
135
92
- # post-install autogen
93
-
94
-
95
- # post-remove autogen
96
-
97
136
package: |
98
137
true
@@ -1,14 +1,18 @@
1
1
pkgname: linux-headers
2
-pkgver: '6.18.49'
3
-pkgrel: '1'
4
-pkgdesc: 'Kernel headers/source for building out-of-tree modules (DKMS) – meta na kernel-lts'
2
+pkgver: '7.2.5'
3
+pkgrel: '2'
4
+pkgdesc: 'Kernel headers/source for building out-of-tree modules (DKMS) – meta na kernel'
5
5
url: 'https://www.kernel.org'
6
6
arch: x86_64
7
7
license:
8
8
- GPL-2.0-only
9
9
10
+# Źródła DKMS dostarcza pakiet `kernel` (/usr/src/kernel + /usr/src/linux-headers-<ver>
11
+# + symlinki build/source w /usr/lib/modules/<ver>-pagan). Wcześniej ta meta
12
+# wskazywała `kernel-lts` (6.18), więc `nvidia-dkms` budował moduły pod INNE jądro
13
+# niż uruchomione (kernel 7.2.5-pagan).
10
14
depends:
11
-- kernel-lts
15
+- kernel
12
16
13
17
makedepends: []
14
18
@@ -20,5 +24,5 @@ build: |
20
24
21
25
package: |
22
26
install -d "${PKGDIR}/usr/share/doc/linux-headers"
23
- echo "Nagłówki/źródła jądra dostarcza pakiet kernel-lts (/usr/src/kernel-lts, /usr/lib/modules/kernel-lts/build)." \
27
+ echo "Nagłówki/źródła jądra dostarcza pakiet kernel (/usr/src/kernel, /usr/lib/modules/<ver>-pagan/build)." \
24
28
> "${PKGDIR}/usr/share/doc/linux-headers/README"
@@ -1,6 +1,6 @@
1
1
pkgname: 'nvidia-kernel'
2
2
pkgver: '610.57.04'
3
-pkgrel: '1'
3
+pkgrel: '2'
4
4
pkgdesc: 'NVIDIA 610 modules for the rolling kernel (package kernel).'
5
5
url: 'https://www.nvidia.com/en-us/drivers/unix/'
6
6
arch: x86_64
@@ -19,15 +19,26 @@ sha256sums:
19
19
20
20
hooks:
21
21
'post-install': |
22
- depmod -a kernel
22
+ # depmod przebudowuje zależności modułów (nvidia → nvidia-drm/modeset/uvm).
23
+ # Bez tego jądro nie załaduje nvidia-drm przy starcie.
24
+ depmod -a
23
25
24
26
build: |
25
27
sh NVIDIA-Linux-x86_64-${pkgver}.run --extract-only
26
28
cd NVIDIA-Linux-x86_64-${pkgver}/kernel
27
29
30
+ # Jądro z pakietu `kernel` dostarcza pełne drzewo źródeł w /usr/src/kernel.
28
31
SYSSRC="/usr/src/kernel" make modules
29
- install -dm0755 ${PKGDIR}/usr/lib/modules/kernel/kernel/drivers/video
30
- install -m0644 *.ko ${PKGDIR}/usr/lib/modules/kernel/kernel/drivers/video
32
+
33
+ # Katalog modułów jest nazwany od wydania jądra (np. 7.2.5-pagan), a NIE
34
+ # „kernel” – tak samo jak w obrazie ISO. Dzięki temu moduły leżą dokładnie
35
+ # tam, gdzie jądro ich szuka (i gdzie `pag upgrade` podmienia jądro).
36
+ KVER="$(make -s -C /usr/src/kernel kernelrelease 2>/dev/null || true)"
37
+ [ -n "$KVER" ] || KVER="$(ls /usr/lib/modules | grep -- '-pagan' | head -1)"
38
+ [ -n "$KVER" ] || { echo "Nie mogę ustalić wersji jądra (KVER) – brak /usr/src/kernel lub modułów"; exit 1; }
39
+
40
+ install -dm0755 ${PKGDIR}/usr/lib/modules/${KVER}/kernel/drivers/video
41
+ install -m0644 *.ko ${PKGDIR}/usr/lib/modules/${KVER}/kernel/drivers/video
31
42
32
43
package: |
33
44
true