END
}
-sub prepare_initrd ($$$) {
- my ($initrddir,$newiso,$preseed_file_path) = @_;
+sub prepare_initrd ($$$$) {
+ my ($initrddir,$newiso,$preseed_file_path,$extra_rune) = @_;
return <<"END";
rm -rf $initrddir
mkdir $initrddir
cd $initrddir
gzip -d < $newiso$ramdisk | cpio --extract --make-directories --no-absolute-filename
+ $extra_rune
cp $preseed_file_path preseed.cfg
find . | cpio -H newc --create | gzip -9 > $newiso$ramdisk
cd -
target_putfilecontents_root_stash($ho, 10, preseed(),
$preseed_file_path);
- $cmds = prepare_initrd($initrddir,$newiso,$preseed_file_path);
+ my $extra_preseed_rune = '';
+ if ($gsuite =~ m/bookworm/) {
+ # Xen Virtual Keyboard initialisation fails and return ENOMEM
+ # https://bugzilla.kernel.org/show_bug.cgi?id=207695
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=983357
+ $extra_preseed_rune .= <<END;
+sed -i '/udevadm trigger --action=add/s/\$/ ||:/' lib/debian-installer/start-udev
+END
+ }
+ $cmds = prepare_initrd($initrddir,$newiso,$preseed_file_path,
+ $extra_preseed_rune);
target_cmd_root($ho, $cmds, $isotimeout);
target_putfilecontents_root_stash($ho, 10, grub_cfg(),