]> git.pld-linux.org Git - packages/geninitrd.git/blame - geninitrd-git.patch
- rel 5; add fixes from git
[packages/geninitrd.git] / geninitrd-git.patch
CommitLineData
e48d916d 1commit 43d2f37d89034a2e409bb4f66cca1a64b12130b8
3a06c815 2Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
e48d916d 3Date: Mon Nov 25 20:15:24 2019 +0100
3a06c815 4
e48d916d 5 Accept d/D symbols, too (ffffffff825ca52c D __initramfs_start) as noticed in recent 4.19.85-1 kernel.
3a06c815
AM
6
7diff --git a/geninitrd b/geninitrd
e48d916d 8index 05e290a..052f553 100755
3a06c815
AM
9--- a/geninitrd
10+++ b/geninitrd
e48d916d
AM
11@@ -1097,7 +1097,7 @@ sym_exists() {
12 return 1
3a06c815 13 fi
3a06c815 14
e48d916d
AM
15- awk -vc=1 -vsymbol="$symbol" '($2 == "T" || $2 == "t") && $3 == symbol {c = 0} END {exit c}' $mapfile
16+ awk -vc=1 -vsymbol="$symbol" '(tolower($2) == "t" || tolower($2) == "d") && $3 == symbol {c = 0} END {exit c}' $mapfile
17 }
18
19 # find best compressor (or forced one) for initrd
3a06c815 20
e48d916d 21commit 04b32086569a126d5d6f9bd0ad1b0db9f142f50e
3a06c815 22Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
e48d916d 23Date: Sun Jul 21 21:04:05 2019 +0200
3a06c815 24
e48d916d 25 Try to detect a need for nvme driver. If you know better method then share with us.
3a06c815 26
e48d916d
AM
27diff --git a/geninitrd b/geninitrd
28index b5d405a..05e290a 100755
29--- a/geninitrd
30+++ b/geninitrd
31@@ -673,6 +673,11 @@ find_modules_for_devpath() {
32 return
3a06c815 33 fi
3a06c815 34
e48d916d
AM
35+ if [[ "$devpath" == /dev/nvme* ]]; then
36+ find_module "nvme"
37+ return
38+ fi
39+
40 if [[ "$devpath" == /dev/bcache* ]]; then
41 find_modules_bcache "$devpath"
42 return
43
44commit 4de5a3333e772ad198381f157c014e452e42c129
45Author: Elan Ruusamäe <glen@pld-linux.org>
46Date: Mon Jul 15 23:56:58 2019 +0300
47
48 fix indent
49
50diff --git a/mod-usbkbd.sh b/mod-usbkbd.sh
51index ff8f442..35543b7 100644
52--- a/mod-usbkbd.sh
53+++ b/mod-usbkbd.sh
54@@ -10,22 +10,22 @@ find_modules_usbkbd() {
3a06c815 55
e48d916d 56 local modules i module bInterfaceClass bInterfaceProtocol
3a06c815 57
e48d916d
AM
58- for i in /sys/bus/usb/devices/*-*:*; do
59- # standard usb keyboards
60- if [ -f $i/bInterfaceClass -a -f $i/bInterfaceProtocol ]; then
61- bInterfaceClass=$(cat $i/bInterfaceClass)
62- bInterfaceProtocol=$(cat $i/bInterfaceProtocol)
63- if [ "$bInterfaceClass" = "03" -a "$bInterfaceProtocol" = "01" ]; then
64- module=$(readlink $i/driver/module)
65- module=$(basename $module)
66+ for i in /sys/bus/usb/devices/*-*:*; do
67+ # standard usb keyboards
68+ if [ -f $i/bInterfaceClass -a -f $i/bInterfaceProtocol ]; then
69+ bInterfaceClass=$(cat $i/bInterfaceClass)
70+ bInterfaceProtocol=$(cat $i/bInterfaceProtocol)
71+ if [ "$bInterfaceClass" = "03" -a "$bInterfaceProtocol" = "01" ]; then
72+ module=$(readlink $i/driver/module)
73+ module=$(basename $module)
3a06c815 74
e48d916d
AM
75- if [ -n "$module" ]; then
76- verbose "Found USB Keyboard driver: $module"
77- modules="$modules $module"
78- fi
79- fi
80- fi
81- done
82+ if [ -n "$module" ]; then
83+ verbose "Found USB Keyboard driver: $module"
84+ modules="$modules $module"
85+ fi
86+ fi
87+ fi
88+ done
3a06c815 89
e48d916d
AM
90 for i in /sys/class/input/input*; do
91 # standard usb keyboards
3a06c815 92
e48d916d 93commit 662fd5a3adac2080640fa4eacd34d72504526175
3a06c815 94Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
e48d916d 95Date: Mon Jul 15 19:59:46 2019 +0200
3a06c815 96
e48d916d 97 Another way for findings usb keyboard drivers that works on newer kernels.
3a06c815 98
e48d916d
AM
99diff --git a/mod-usbkbd.sh b/mod-usbkbd.sh
100index 0dd0d20..ff8f442 100644
101--- a/mod-usbkbd.sh
102+++ b/mod-usbkbd.sh
103@@ -10,6 +10,23 @@ find_modules_usbkbd() {
3a06c815 104
e48d916d 105 local modules i module bInterfaceClass bInterfaceProtocol
3a06c815 106
e48d916d
AM
107+ for i in /sys/bus/usb/devices/*-*:*; do
108+ # standard usb keyboards
109+ if [ -f $i/bInterfaceClass -a -f $i/bInterfaceProtocol ]; then
110+ bInterfaceClass=$(cat $i/bInterfaceClass)
111+ bInterfaceProtocol=$(cat $i/bInterfaceProtocol)
112+ if [ "$bInterfaceClass" = "03" -a "$bInterfaceProtocol" = "01" ]; then
113+ module=$(readlink $i/driver/module)
114+ module=$(basename $module)
115+
116+ if [ -n "$module" ]; then
117+ verbose "Found USB Keyboard driver: $module"
118+ modules="$modules $module"
119+ fi
120+ fi
121+ fi
122+ done
123+
124 for i in /sys/class/input/input*; do
125 # standard usb keyboards
126 if [ -f $i/device/bInterfaceClass -a -f $i/device/bInterfaceProtocol ]; then
127
bd24739a
AM
128commit b565e95c147bea4e68e4ccf5ad19906d51d2375b
129Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
130Date: Wed May 15 21:04:45 2019 +0200
131
132 Prepend cpu microcode to initrd image, so kernel will pick it up when LILO is in use.
133
134diff --git a/geninitrd b/geninitrd
135index 118333c..b5d405a 100755
136--- a/geninitrd
137+++ b/geninitrd
138@@ -17,6 +17,7 @@ PROGRAM=${0##*/}
139 # list of geninitrd modules which need setup routine after commandline args parsing
140 GENINITRD_MODS=""
141 COMPRESS=yes
142+LILO_MICROCODE=yes
143 STRIP=/usr/bin/strip
144 target=""
145 kernel=""
146@@ -1186,6 +1187,16 @@ compress_image() {
147 mv -f "$tmp" "$target"
148 }
149
150+# prepend file to image
151+prepend_file_to_image() {
152+ local file="$1" target="$2" tmp
153+ tmp=$(mktemp "$target".XXXXXX) || die "mktemp failed"
154+
155+ cat "$file" "$target" > "$tmp" || return $?
156+
157+ mv -f "$tmp" "$target"
158+}
159+
160 if [ -r /etc/sysconfig/geninitrd ]; then
161 . /etc/sysconfig/geninitrd
162 fi
163@@ -1801,6 +1812,14 @@ else
164 cp -a "$IMAGE" "$target"
165 fi
166
167+# microcode support for lilo
168+if ! is_no "$LILO_MICROCODE"; then
169+ if [ -x /sbin/lilo -a -f "/boot/intel-ucode.img" ]; then
170+ verbose "Prepending $target with microcode image /boot/intel-ucode.img for LILO"
171+ prepend_file_to_image "/boot/intel-ucode.img" "$target"
172+ fi
173+fi
174+
175 # XXX. check if bootsplash can output data to tmp dir not directly to initramfs image.
176 initrd_gen_bootsplash "$target"
177
178diff --git a/geninitrd.sysconfig b/geninitrd.sysconfig
179index ccf177c..1268324 100644
180--- a/geninitrd.sysconfig
181+++ b/geninitrd.sysconfig
182@@ -18,6 +18,9 @@
183 # Default is to use initramfs for >= 2.5.0.
184 #INITRDFS=initramfs
185
186+# Should we prepend cpu microcode when lilo is installed
187+#LILO_MICROCODE=no
188+
189 ## Use udev to create /dev?
190 USE_UDEV=yes
191
e48d916d
AM
192
193commit ad5033d7e704edaf52f2be18d4aa98c378179ede
194Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
195Date: Fri Jan 25 20:38:24 2019 +0100
196
197 Timeout here is not a good idea. rootfs cannot be mounted and kernel oopses due to that.
198
199diff --git a/mod-luks.sh b/mod-luks.sh
200index ff877f7..ffe87cb 100644
201--- a/mod-luks.sh
202+++ b/mod-luks.sh
203@@ -162,7 +162,7 @@ luks_crypttab() {
204 done
205 IFS="$old_IFS"
206
207- verbose "+ cryptsetup --timeout=120 ${keyfile:+-d $keyfile} open $crypttab_opt '$src' '$dst'"
208+ verbose "+ cryptsetup ${keyfile:+-d $keyfile} open $crypttab_opt '$src' '$dst'"
209 add_linuxrc <<-EOF
210 debugshell
211
212@@ -189,7 +189,7 @@ luks_crypttab() {
213 crypt_status=\$(cryptsetup \$cryptsetup_opt status '$dst')
214 if [ "\${crypt_status%%is inactive*}" != "\$crypt_status" ]; then
215 # is inactive
216- cryptsetup \$cryptsetup_opt ${keyfile:+-d $keyfile} --timeout 120 open $crypttab_opt "\$luksdev" '$dst' <&1
217+ cryptsetup \$cryptsetup_opt ${keyfile:+-d $keyfile} open $crypttab_opt "\$luksdev" '$dst' <&1
218 fi
219 fi
220
221
222commit 21ad0f7980ce6a0135e4a3c37a94472ed4f1320c
223Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
224Date: Tue Dec 18 14:43:20 2018 +0100
225
226 Use existing mechanism for installing udev apps but install regular variants, too if initrd-variants don't exist.
227
228diff --git a/mod-udev.sh b/mod-udev.sh
229index a2491ee..87f4b68 100644
230--- a/mod-udev.sh
231+++ b/mod-udev.sh
232@@ -44,8 +44,6 @@ initrd_gen_udev() {
233 inst_d /sbin /etc/udev /lib/udev
234 inst_exec $udevd /sbin/udevd
235 inst_exec $udevadm /sbin/udevadm
236- inst_exec /lib/udev/ata_id /lib/udev/ata_id
237- inst_exec /lib/udev/scsi_id /lib/udev/scsi_id
238 inst /etc/udev/udev.conf /etc/udev/udev.conf
239 # standard udev rules
240 inst_rules 50-udev-default.rules 60-persistent-storage.rules 61-persistent-storage-edd.rules 80-drivers.rules 95-udev-late.rules \
241@@ -57,6 +55,8 @@ initrd_gen_udev() {
242 for e in ata_id cdrom_id collect firmware scsi_id v4l_id; do
243 if [ -e "$initrd_dir/udev/$e" ]; then
244 inst_exec $initrd_dir/udev/$e /lib/udev/$e
245+ elif [ -e "/lib/udev/$e" ]; then
246+ inst_exec /lib/udev/$e /lib/udev/$e
247 fi
248 done
249
250
251commit 3d81f1cd0bc557ad9a1f157b403f0396866c648c
252Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
253Date: Tue Dec 18 14:38:55 2018 +0100
254
255 udevd uses ata_id and scsi_id, so install these.
256
257diff --git a/mod-udev.sh b/mod-udev.sh
258index 422ef3e..a2491ee 100644
259--- a/mod-udev.sh
260+++ b/mod-udev.sh
261@@ -41,9 +41,11 @@ setup_mod_udev() {
262 initrd_gen_udev() {
263 verbose "Setting up udev..."
264
265- inst_d /sbin /etc/udev
266+ inst_d /sbin /etc/udev /lib/udev
267 inst_exec $udevd /sbin/udevd
268 inst_exec $udevadm /sbin/udevadm
269+ inst_exec /lib/udev/ata_id /lib/udev/ata_id
270+ inst_exec /lib/udev/scsi_id /lib/udev/scsi_id
271 inst /etc/udev/udev.conf /etc/udev/udev.conf
272 # standard udev rules
273 inst_rules 50-udev-default.rules 60-persistent-storage.rules 61-persistent-storage-edd.rules 80-drivers.rules 95-udev-late.rules \
274
275commit dc5ca733ed6fe57dfa39d4598a6586069e41d0b0
276Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
277Date: Tue Dec 18 14:34:38 2018 +0100
278
279 Install mdadm in /sbin because udevd expects it to be there.
280
281diff --git a/mod-md.sh b/mod-md.sh
282index 2b6f587..a358517 100644
283--- a/mod-md.sh
284+++ b/mod-md.sh
285@@ -133,7 +133,7 @@ initrd_gen_md() {
286 fi
287 verbose "Setting up mdadm..."
288
289- inst_exec $mdadm /bin/mdadm
290+ inst_exec $mdadm /sbin/mdadm
291
292 echo "DEVICE partitions containers" >> "$DESTDIR/etc/mdadm.conf"
293
294@@ -181,7 +181,7 @@ initrd_gen_md() {
295
296 echo "wait_for_files $cr_dev_list" | add_linuxrc
297 add_linuxrc <<-'EOF'
298- mdadm --assemble --scan
299+ /sbin/mdadm --assemble --scan
300
301 if [ "$DEBUGINITRD" ]; then
302 [ -e /proc/mdstat ] && echo "/proc/mdstat contents:" && cat /proc/mdstat
303
304commit 33cc4751b8f80fc3b800928b9ad93866b2569915
305Author: Arkadiusz Miśkiewicz <arekm@maven.pl>
306Date: Tue Dec 18 14:33:12 2018 +0100
307
308 Install blkid in /sbin because udevd expects it to be there.
309
310diff --git a/geninitrd b/geninitrd
311index a79b9c3..118333c 100755
312--- a/geninitrd
313+++ b/geninitrd
314@@ -1530,7 +1530,7 @@ chmod a+rx "$RCFILE"
315 ln -s linuxrc $DESTDIR/init
316
317 # create dirs that we really need
318-inst_d /{lib,bin,etc,dev{,/pts,/shm},loopfs,var,proc,run,sys,tmp}
319+inst_d /{lib,bin,sbin,etc,dev{,/pts,/shm},loopfs,var,proc,run,sys,tmp}
320
321 modules_install "$MODULES"
322
323diff --git a/mod-blkid.sh b/mod-blkid.sh
324index 8ee2a48..92df9ae 100644
325--- a/mod-blkid.sh
326+++ b/mod-blkid.sh
327@@ -22,12 +22,12 @@ initrd_gen_blkid() {
328 fi
329 verbose "Adding BLKID support to initrd"
330
331- inst_exec $blkid /bin/blkid
332+ inst_exec $blkid /sbin/blkid
333 initrd_gen_devices
334 add_linuxrc <<-'EOF'
335 # if built with blkid change ROOT=LABEL=something into ROOT=/dev/device parsed by blkid
336 if [ "${ROOT##LABEL=}" != "${ROOT}" -o "${ROOT##UUID=}" != "${ROOT}" ]; then
337- blkid="$(/bin/blkid -t $ROOT -o device -l)"
338+ blkid="$(/sbin/blkid -t $ROOT -o device -l)"
339 if [ -n "$blkid" ]; then
340 ROOT=$blkid
341 fi
This page took 0.156136 seconds and 4 git commands to generate.