util/grub.d/00_header.in: Disable loading all_video for EFI
Loading all_video for EFI can cause video issues in some cases since GRUB Bochs/Cirrus drivers may conflict with native EFI drivers. 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/?66200 Signed-off-by: Andrew Hamilton <adhamilt@gmail.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
73dee610b1
commit
ea0b76dc4a
@ -1642,6 +1642,13 @@ This option is unset by default, and is deprecated in favour of the less
|
||||
confusing @samp{GRUB_TIMEOUT_STYLE=countdown} or
|
||||
@samp{GRUB_TIMEOUT_STYLE=hidden}.
|
||||
|
||||
@item GRUB_FORCE_EFI_ALL_VIDEO
|
||||
When set to true, this will allow grub-mkconfig to generate a GRUB config
|
||||
that supports loading the all_video module on the EFI platform instead of
|
||||
just the efi_gop and efi_uga modules.
|
||||
|
||||
This option is unset by default.
|
||||
|
||||
@end table
|
||||
|
||||
For more detailed customisation of @command{grub-mkconfig}'s output, you may
|
||||
|
||||
@ -255,7 +255,8 @@ export GRUB_DEFAULT \
|
||||
GRUB_ENABLE_CRYPTODISK \
|
||||
GRUB_BADRAM \
|
||||
GRUB_OS_PROBER_SKIP_LIST \
|
||||
GRUB_DISABLE_SUBMENU
|
||||
GRUB_DISABLE_SUBMENU \
|
||||
GRUB_FORCE_EFI_ALL_VIDEO
|
||||
|
||||
if test "x${grub_cfg}" != "x"; then
|
||||
rm -f "${grub_cfg}.new"
|
||||
|
||||
@ -124,10 +124,24 @@ if [ -n "${GRUB_VIDEO_BACKEND}" ]; then
|
||||
insmod ${GRUB_VIDEO_BACKEND}
|
||||
EOF
|
||||
else
|
||||
# For EFI, use EFI video drivers only by default to avoid conflict between
|
||||
# GRUB Bochs/Cirrus and native EFI drivers. If GRUB_FORCE_EFI_ALL_VIDEO is
|
||||
# set/true then defer back to all_video even for EFI.
|
||||
if [ "${GRUB_FORCE_EFI_ALL_VIDEO}" = "1" ]; then
|
||||
cat <<EOF
|
||||
if [ x\$feature_all_video_module = xy ]; then
|
||||
EOF
|
||||
else # GRUB_FORCE_EFI_ALL_VIDEO 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_ALL_VIDEO
|
||||
# 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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user