Skip to main content
Topic: GRUB - no graphical ouput when monitor turned on too late (Read 414 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

GRUB - no graphical ouput when monitor turned on too late

Hi guys! :)

So I have this problem: my setup includes a fully encrypted ROOT partition that I unlock with a passphrase using GRUB.

When the monitor is on or in standby mode, I see graphical output starting from the POST message and going through the initial phase of unlocking GRUB. However, when I turn the monitor too late, I don't see GRUB until I blindly input the passphrase, hit ENTER and the initram loads up. After this I get regular graphical output.

Has anyone ever encountered this problem?

my mkinitcpio.conf includes:
Code: [Select]
HOOKS=(base btrfs udev keyboard autodetect modconf kms block encrypt filesystems)

This problem occurs both with my discrete GPU or INTEL integrated graphics.

Re: GRUB - no graphical ouput when monitor turned on too late

Reply #1
Possibly these config options in /etc/default/grub could help, if you can determine the correct mode and modules (Grub modules, not linux kernel modules) you need to run the monitor:
GRUB_PRELOAD_MODULES
GRUB_GFXMODE

At the Grub stage in boot you are using the Grub video drivers, Grub is like a little standalone OS that loads the main OS, so I suppose it could be a case of getting the right thing loaded in advance and then whether it supports hotplugging a monitor, these seem to be the drivers:
https://git.savannah.gnu.org/cgit/grub.git/tree/grub-core/video

But I have no personal experience of resolving this, perhaps others may have done so.

Re: GRUB - no graphical ouput when monitor turned on too late

Reply #2
Thanks for your tips.

There is a section in my /boot/grub/grub.cfg including the following, which I figured might be loaded too late:
Code: [Select]
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

So I made sure my /etc/default/grub included the line:
Code: [Select]
GRUB_PRELOAD_MODULES="part_gpt part_msdos all_video"

I ran grub-mkconfig -o /boot/grub/grub.cfg afterwards but it still did not solve the issue.

Any other help would be greatly appreciated.

EDIT1: so preloading all the video modules individually doesn't work either:
Code: [Select]
GRUB_PRELOAD_MODULES="part_gpt part_msdos efi_gop efi_uga ieee1275_fb vbe vga video_bochs video_cirrus gfxterm"
Let me also mention I have
Code: [Select]
GRUB_GFXMODE=1920x1080,auto

EDIT2: I have also tried
Code: [Select]
GRUB_GFXMODE=auto
but to no avail.

Re: GRUB - no graphical ouput when monitor turned on too late

Reply #3
try increasing grub menu time
Create problems which don't have solution

 

Re: GRUB - no graphical ouput when monitor turned on too late

Reply #4
I set
Code: [Select]
GRUB_TIMEOUT=10
but it still won't work.

EDIT1:
Ok, guys, so here are all the compiled modules:
Code: [Select]
ls -1 /usr/lib/grub/x86_64-efi 
acpi.mod
adler32.mod
affs.mod
afs.mod
afsplitter.mod
ahci.mod
all_video.mod
aout.mod
appleldr.mod
archelp.mod
argon2.mod
ata.mod
at_keyboard.mod
backtrace.mod
bfs.mod
bitmap.mod
bitmap_scale.mod
bli.mod
blocklist.mod
boot.mod
boottime.mod
bsd.mod
bswap_test.mod
btrfs.mod
bufio.mod
cacheinfo.mod
cat.mod
cbfs.mod
cbls.mod
cbmemc.mod
cbtable.mod
cbtime.mod
chain.mod
cmdline_cat_test.mod
cmp.mod
cmp_test.mod
command.lst
configfile.mod
config.h
cpio_be.mod
cpio.mod
cpuid.mod
crc64.mod
cryptodisk.mod
crypto.lst
crypto.mod
cs5536.mod
ctz_test.mod
datehook.mod
date.mod
datetime.mod
diskfilter.mod
disk.mod
div.mod
div_test.mod
dm_nv.mod
echo.mod
efifwsetup.mod
efi_gop.mod
efinet.mod
efitextmode.mod
efi_uga.mod
ehci.mod
elf.mod
eval.mod
exfat.mod
exfctest.mod
ext2.mod
extcmd.mod
f2fs.mod
fat.mod
fdt.lst
file.mod
fixvideo.mod
font.mod
fshelp.mod
fs.lst
functional_test.mod
gcry_arcfour.mod
gcry_blowfish.mod
gcry_camellia.mod
gcry_cast5.mod
gcry_crc.mod
gcry_des.mod
gcry_dsa.mod
gcry_idea.mod
gcry_md4.mod
gcry_md5.mod
gcry_rfc2268.mod
gcry_rijndael.mod
gcry_rmd160.mod
gcry_rsa.mod
gcry_seed.mod
gcry_serpent.mod
gcry_sha1.mod
gcry_sha256.mod
gcry_sha512.mod
gcry_tiger.mod
gcry_twofish.mod
gcry_whirlpool.mod
gdb_helper.py
geli.mod
gettext.mod
gfxmenu.mod
gfxterm_background.mod
gfxterm_menu.mod
gfxterm.mod
gptsync.mod
gzio.mod
halt.mod
hashsum.mod
hdparm.mod
hello.mod
help.mod
hexdump.mod
hfs.mod
hfspluscomp.mod
hfsplus.mod
http.mod
iorw.mod
iso9660.mod
jfs.mod
jpeg.mod
json.mod
kernel.img
keylayouts.mod
keystatus.mod
ldm.mod
legacycfg.mod
legacy_password_test.mod
linux16.mod
linux.mod
loadbios.mod
loadenv.mod
loopback.mod
lsacpi.mod
lsefimmap.mod
lsefi.mod
lsefisystab.mod
lsmmap.mod
ls.mod
lspci.mod
lssal.mod
luks2.mod
luks.mod
lvm.mod
lzopio.mod
macbless.mod
macho.mod
mdraid09_be.mod
mdraid09.mod
mdraid1x.mod
memdisk.mod
memrw.mod
minicmd.mod
minix2_be.mod
minix2.mod
minix3_be.mod
minix3.mod
minix_be.mod
minix.mod
mmap.mod
moddep.lst
modinfo.sh
morse.mod
mpi.mod
msdospart.mod
mul_test.mod
multiboot2.mod
multiboot.mod
nativedisk.mod
net.mod
newc.mod
nilfs2.mod
normal.mod
ntfscomp.mod
ntfs.mod
odc.mod
offsetio.mod
ohci.mod
part_acorn.mod
part_amiga.mod
part_apple.mod
part_bsd.mod
part_dfly.mod
part_dvh.mod
part_gpt.mod
partmap.lst
part_msdos.mod
part_plan.mod
part_sun.mod
part_sunpc.mod
parttool.lst
parttool.mod
password.mod
password_pbkdf2.mod
pata.mod
pbkdf2.mod
pbkdf2_test.mod
pcidump.mod
pgp.mod
plainmount.mod
play.mod
png.mod
priority_queue.mod
probe.mod
procfs.mod
progress.mod
raid5rec.mod
raid6rec.mod
random.mod
rdmsr.mod
read.mod
reboot.mod
regexp.mod
reiserfs.mod
relocator.mod
romfs.mod
scsi.mod
search_fs_file.mod
search_fs_uuid.mod
search_label.mod
search.mod
serial.mod
setjmp.mod
setjmp_test.mod
setpci.mod
sfs.mod
shift_test.mod
signature_test.mod
sleep.mod
sleep_test.mod
smbios.mod
spkmodem.mod
squash4.mod
strtoull_test.mod
syslinuxcfg.mod
tar.mod
terminal.lst
terminal.mod
terminfo.mod
test_blockarg.mod
testload.mod
test.mod
testspeed.mod
tftp.mod
tga.mod
time.mod
tpm.mod
trig.mod
tr.mod
true.mod
udf.mod
ufs1_be.mod
ufs1.mod
ufs2.mod
uhci.mod
usb_keyboard.mod
usb.mod
usbms.mod
usbserial_common.mod
usbserial_ftdi.mod
usbserial_pl2303.mod
usbserial_usbdebug.mod
usbtest.mod
video_bochs.mod
video_cirrus.mod
video_colors.mod
video_fb.mod
videoinfo.mod
video.lst
video.mod
videotest_checksum.mod
videotest.mod
wrmsr.mod
xfs.mod
xnu.mod
xnu_uuid.mod
xnu_uuid_test.mod
xzio.mod
zfscrypt.mod
zfsinfo.mod
zfs.mod
zstd.mod

I tried grub-install with the parameter --modules="all_video" but it didn't solve the issue.

Any clue which module might be responsible for hotplugging my monitor?