[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH] grub2 setup: Set GRUB_TERMINAL=console, if no other setting
The default for d-i, if it doesn't know better, is to let update-grub set grub's terminal to `gfxterm'. But in osstest we do not really ever want to use a graphical console. Let us discuss some of the cases in a bit more detail: On UEFI systems with a serial console, the UEFI console ought (and in our installation is in all cases so far) typically linked to the serial console. So GRUB_TERMINAL=console would be right for UEFI. This appears to be correct on the albanas, our one pair of in-service x86 boxes with a UEFI firmware configuration. But on x86 systems, we generally pass console=ttyS... arguments on the d-i command line, and d-i arranges for GRUB_TERMINAL=serial and appropriate other settings. We already have a workaround that changes that to "serial console", which is fine whether "console" means a VGA console we don't look at, or some kind of BIOS console redirection. This currently works on all our x86 machines including o UEFI. On our ThunderX (arm64) boxes, `gfxterm' does not work at all. `console', does, because it goes to the UEFI console which UEFI sends to the serial port. The best approach to unpicking this mess seems to be to apply a default setting of GRUB_TERMINAL=console. The effect of this is to change `gfxterm' in grub.cfg. In practice all our x86 boxes (including our x86 UEFI boxes, where `console' would work) have it set to `serial' (modified by us to `serial console') so remain unchanged. The net result is that on ARM, we now set `GRUB_TERMINAL=console', and we now get all of the bootloader serial output on the rochesters. I have tested this on: rochester0 - arm64 uefi ThunderX, used not to work laxton1 - arm64 uefi SoftIron albana0 - x86 uefi huxelrebe0 - x86 bios arndale-westfield - armhf u-boot cubietruck-gleizes - armhf u-boot Thanks to Brian Woods for poking at rochester0 and making the key suggestions. CC: Brian Woods <brian.woods@xxxxxxxxxx> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> CC: Julien Grall <julien.grall@xxxxxxx> CC: Jürgen Groß <jgross@xxxxxxxx> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- Osstest/Debian.pm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm index 79aa2d24..c22aaadf 100644 --- a/Osstest/Debian.pm +++ b/Osstest/Debian.pm @@ -624,9 +624,11 @@ END target_editfile_root($ho, '/etc/default/grub', sub { my %k; + my $had_terminal; while (<::EI>) { # some bioses block the serial still so we try vga too s/^(GRUB_TERMINAL=)(['"]?)serial\2\s*$/$1'serial console'\n/; + $had_terminal ||= m/^GRUB_TERMINAL=/; if (m/^\s*([A-Z_]+)\s*\=\s*(.*?)\s*$/) { my ($k,$v) = ($1,$2); @@ -636,6 +638,11 @@ END next if m/^GRUB_CMDLINE_(?:XEN|LINUX(?:_XEN_REPLACE)?(?:_DEFAULT)?).*\=|^GRUB_DEFAULT.*\=/; print ::EO; } + print ::EO <<END or die $! unless $had_terminal; + +GRUB_TERMINAL="console" +END + print ::EO <<END or die $!; GRUB_DEFAULT="$entry->{MenuEntryPath}" -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |