GRUB Menu fails to load on Serial-only devices (with no KVM)

Thanks for the input everyone.
@GuybrushThreepwood as far as I know, this particular hardware I’m working with is UEFI-only. (Oh, and welcome to the community!)
@zsdc I selected S at install, and yes, ttyS0 is correct for me.

I did make some more discoveries and have a hacky workaround for the moment.

Here’s what I found: the system actually was booting, however, because Serial wasn’t working, and (at the time), I didn’t have networking configured, I didn’t have any way to reach it to know that. Today, I configured networking manually by booting to another distro via USB stick, mounting the filesystem and edited /config/config.boot directly. This (in conjunction with my tinkering detailed below) enabled me to confirm that the system is still booting even when nothing is displaying correctly.

It turns out the issue (for me, at least) is needing to specify the speed for the Serial port for both GRUB and the OS itself. For my hardware, I need to specify 115200 in two places for things to work.

  1. To get GRUB to load properly in my serial terminal, I needed to modify /boot/grub/grub.cfg. I added these lines (obtained from another system running an older image):
serial --unit=0 --speed=115200
terminal_output --append serial
terminal_input serial console
  1. And to get the OS to work properly with Serial post-GRUB-menu, I needed to modify the image-specific GRUB file; in my case /boot/grub/grub.cfg.d/vyos-versions/1.4-20231221.cfg, and append the Serial speed.

Line 10 (most important; normal boot):

set boot_opts="${boot_opts} console=${console_type}${console_num},115200,"

Line 8 (required for recovery)

set boot_opts="${boot_opts} console=${console_type}${console_num},115200 init=/usr/bin/busybox init"

By making both of those GRUB file modifications, Serial again works as expected.

I’m not sure what the “best” systemic fix would be; perhaps the new GRUB configuration gadgetry would permit the setting of speed via a variable, like the other parameters? If so, it would be essential that it be referenced for both the GRUB menu loading AND the OS boot itself.

Let me know if you need more information, or if there’s another way I can contribute toward getting a fix baked-in to the code.