Thanks for getting back so quickly and for building the kernel with the stubble. It is much appreciated.
I have merged your suggestion above into my /boot/grub.cfg (see below for excerpt), note that I have a LUKS/LVM setup. The results were as follows:
-1- use grub command line to chainload Shell.efi and boot it to run startup.nsh which runs
load \EFI\slbounce\slbounce.efi
\EFI\ubuntu\grubaa64.efi
and in subsequent grub invoke first submenu (your EL2 example but with jg-1 as jg-2 not available yet): 'Ubuntu, with Linux 6.17.0-jg-1-qcom-x1e [EL2]jg' which specifies stubble.dtb_override=false and adds devicetree /x1p42100-asus-vivobook-s15-el2.dtb
Result is the assertion failure
efi-log.c:340efi_assert: systemd-boot: Assertion ‘p’ failed at stub.c:270parse_cmdline, halting
-2- as above load slbounce.efi and invoke fourth submenu: menuentry 'Ubuntu, with Linux 6.17.0-jg-0-qcom-x1e [EL2]’ so going back to the previous jg-0 kernel and specifying devicetree ( but no stubble.dtb_override=false as this was a pre-stubble kernel).
Result is GUI prompts for LUKS password and system boots into EL2 with kvm-ok succeeding.
-3- No slbounce, just invoke second submenu (your EL1 example with jg-1, no devicetree): 'Ubuntu, with Linux 6.17.0-jg-1-qcom-x1e [EL1]jg no dtb' . Note no stubble.dtb_override=false as this kernel is supposed to use the hwid to automatically select the devicetree.
Result is system gets to this stage:
[ OK ] Reached target paths.target - Path Units.
[ 1.360626] qcom-ice 1d88000.crypto: probe with driver qcom-icefailed with error -95
and then reboots
-4- No slbounce, just invoke third submenu (your EL1 example with jg-1, but with devicetree this time): 'Ubuntu, with Linux 6.17.0-jg-1-qcom-x1e [EL1]jg w dtb' . Also no stubble.dtb_override=false so isn’t meant to find this devicetree line.
Result however is text prompt for LUKS password and system boots into EL1 (kvm-ok fails as expected).
[Note that would be appreciated by dinosaurs who worked with RS-232C terminal interfaces back in the day: you have to issue a Control-Q before or after typing in the LUKS password at the text prompt. Back then flow control was you pressing Ctrl-S “stop sending text” and Ctrl-Q “resume sending text”. This might just be an ASUS quirk, but in any case if you include the quiet splash as arguments to linux, you get the GUI and don’t have to do this]
-5- Conclusion: It looks like (a) system can boot into EL2 but only with jg-0 and (b) system can boot into EL1 with jg-1 but only by explicitly specifying devicetree
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-5c3a79b7-7456-4bc4-bce4-553ae5c7e9f4' {
menuentry 'Ubuntu, with Linux 6.17.0-jg-1-qcom-x1e [EL2]jg' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.17.0-jg-1-qcom-x1e-advanced-5c3a79b7-7456-4bc4-bce4-553ae5c7e9f4' {
recordfail
savedefault
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
echo 'Loading Linux 6.17.0-jg-1-qcom-x1e ...'
linux /vmlinuz-6.17.0-jg-1-qcom-x1e ro root=/dev/mapper/ubuntu--vg-ubuntu--lv clk_ignore_unused pd_ignore_unused cma=128M efi=noruntime console=tty0 id_aa64mmfr0.ecv=1 'dyndbg=file drivers/regulator/core.c +p;file drivers/base/firmware_loader/main.c +p' crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M stubble.dtb_override=false
echo 'Loading initial ramdisk ...'
initrd /initrd.img-6.17.0-jg-1-qcom-x1e
echo 'Loading device tree x1p42100-asus-vivobook-s15-el2.dtb'
devicetree /x1p42100-asus-vivobook-s15-el2.dtb
}
menuentry 'Ubuntu, with Linux 6.17.0-jg-1-qcom-x1e [EL1]jg no dtb' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.17.0-jg-1-qcom-x1e-advanced-5c3a79b7-7456-4bc4-bce4-553ae5c7e9f4' {
recordfail
savedefault
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
#search --no-floppy --fs-uuid --set=root 575647f9-054d-4009-87d9-3dbfc861679c
cutmem 0x8800000000 0x8fffffffff
echo 'Loading Linux 6.17.0-jg-1-qcom-x1e ...'
linux /vmlinuz-6.17.0-jg-1-qcom-x1e ro root=/dev/mapper/ubuntu--vg-ubuntu--lv clk_ignore_unused pd_ignore_unused cma=128M efi=noruntime console=tty0 id_aa64mmfr0.ecv=1 'dyndbg=file drivers/regulator/core.c +p;file drivers/base/firmware_loader/main.c +p' crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M
echo 'Loading initial ramdisk ...'
echo 'NOT Loading device tree x1p42100-asus-vivobook-s15.dtb'
initrd /initrd.img-6.17.0-jg-1-qcom-x1e
}
menuentry 'Ubuntu, with Linux 6.17.0-jg-1-qcom-x1e [EL1]jg w dtb' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.17.0-jg-1-qcom-x1e-advanced-5c3a79b7-7456-4bc4-bce4-553ae5c7e9f4' {
recordfail
savedefault
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
#search --no-floppy --fs-uuid --set=root 575647f9-054d-4009-87d9-3dbfc861679c
cutmem 0x8800000000 0x8fffffffff
echo 'Loading Linux 6.17.0-jg-1-qcom-x1e ...'
linux /vmlinuz-6.17.0-jg-1-qcom-x1e ro root=/dev/mapper/ubuntu--vg-ubuntu--lv clk_ignore_unused pd_ignore_unused cma=128M efi=noruntime console=tty0 id_aa64mmfr0.ecv=1 'dyndbg=file drivers/regulator/core.c +p;file drivers/base/firmware_loader/main.c +p' crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M
echo 'Loading initial ramdisk ...'
initrd /initrd.img-6.17.0-jg-1-qcom-x1e
echo 'Loading device tree x1p42100-asus-vivobook-s15.dtb'
devicetree /x1p42100-asus-vivobook-s15.dtb
}
menuentry 'Ubuntu, with Linux 6.17.0-jg-0-qcom-x1e [EL2]' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.17.0-jg-0-qcom-x1e-advanced-5c3a79b7-7456-4bc4-bce4-553ae5c7e9f4' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275/(null)/sas/disk@0,gpt2' --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 25c7da3f-e6e2-422d-9820-b8611f59a725
else
search --no-floppy --fs-uuid --set=root 25c7da3f-e6e2-422d-9820-b8611f59a725
fi
echo 'Loading Linux 6.17.0-jg-0-qcom-x1e ...'
linux /vmlinuz-6.17.0-jg-0-qcom-x1e root=/dev/mapper/ubuntu--vg-ubuntu--lv ro clk_ignore_unused pd_ignore_unused cma=128M efi=noruntime quiet splash console=tty0 crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /initrd.img-6.17.0-jg-0-qcom-x1e
echo 'Loading devicetree blob x1p42100-asus-vivobook-s15-el2.dtb ...'
devicetree /x1p42100-asus-vivobook-s15-el2.dtb
}
}