Loading all_video for EFI can cause video issues in some cases since bochs / cirrus may conflict with them. Change default behavior for EFI to only load EFI specific video modules. Also include a new environment variable to restore the old behavior if needed.
Fixes: https://savannah.gnu.org/bugs/index.php?66200 Signed-off-by: Andrew Hamilton <[email protected]> --- util/grub.d/00_header.in | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in index 9d36feda3..a4a516aec 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in @@ -124,10 +124,24 @@ if [ -n "${GRUB_VIDEO_BACKEND}" ]; then insmod ${GRUB_VIDEO_BACKEND} EOF else +# For EFI, use EFI video by default to avoid conflict between +# bochs / cirrus and EFI video. If GRUB_FORCE_EFI_ALLVIDEO is +# set/true then defer back to all_video even for EFI. +if [ "${GRUB_FORCE_EFI_ALLVIDEO}" = "1" ]; then + cat <<EOF + if [ x\$feature_all_video_module = xy ]; then +EOF +else # GRUB_FORCE_EFI_ALLVIDEO is not set true + cat <<EOF + if [ x\$grub_platform = xefi ]; then + insmod efi_gop + insmod efi_uga + elif [ x\$feature_all_video_module = xy ]; then +EOF +fi # end GRUB_FORCE_EFI_ALLVIDEO # If all_video.mod isn't available load all modules available # with versions prior to introduction of all_video.mod cat <<EOF - if [ x\$feature_all_video_module = xy ]; then insmod all_video else insmod efi_gop -- 2.43.0 _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
