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
|
confusing @samp{GRUB_TIMEOUT_STYLE=countdown} or
|
||||||
@samp{GRUB_TIMEOUT_STYLE=hidden}.
|
@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
|
@end table
|
||||||
|
|
||||||
For more detailed customisation of @command{grub-mkconfig}'s output, you may
|
For more detailed customisation of @command{grub-mkconfig}'s output, you may
|
||||||
|
|||||||
@ -255,7 +255,8 @@ export GRUB_DEFAULT \
|
|||||||
GRUB_ENABLE_CRYPTODISK \
|
GRUB_ENABLE_CRYPTODISK \
|
||||||
GRUB_BADRAM \
|
GRUB_BADRAM \
|
||||||
GRUB_OS_PROBER_SKIP_LIST \
|
GRUB_OS_PROBER_SKIP_LIST \
|
||||||
GRUB_DISABLE_SUBMENU
|
GRUB_DISABLE_SUBMENU \
|
||||||
|
GRUB_FORCE_EFI_ALL_VIDEO
|
||||||
|
|
||||||
if test "x${grub_cfg}" != "x"; then
|
if test "x${grub_cfg}" != "x"; then
|
||||||
rm -f "${grub_cfg}.new"
|
rm -f "${grub_cfg}.new"
|
||||||
|
|||||||
@ -124,10 +124,24 @@ if [ -n "${GRUB_VIDEO_BACKEND}" ]; then
|
|||||||
insmod ${GRUB_VIDEO_BACKEND}
|
insmod ${GRUB_VIDEO_BACKEND}
|
||||||
EOF
|
EOF
|
||||||
else
|
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
|
# If all_video.mod isn't available load all modules available
|
||||||
# with versions prior to introduction of all_video.mod
|
# with versions prior to introduction of all_video.mod
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
if [ x\$feature_all_video_module = xy ]; then
|
|
||||||
insmod all_video
|
insmod all_video
|
||||||
else
|
else
|
||||||
insmod efi_gop
|
insmod efi_gop
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user