Bug#749851: grub-pc: Corrupted screen in text-mode GRUB on Radeon SUMO (R600) video card
CJP
cornwarecjp at ultimatestunts.nl
Fri May 30 09:07:09 UTC 2014
Package: grub-pc
Version: 1.99-27+deb7u2
Severity: important
Dear Maintainer,
I have a HP Pavilion G6 laptop with AMD A6-3420 processor, a Radeon SUMO (R600)
video chipset and 1366x768 native resolution.
I used to have a dual-boot Windows 7 / Linux Mint 13 setup with default GRUB
settings; this worked without problems. Note that the partition containing /usr
was not encrypted in this setup; this might be relevant (see below). Recently,
I replaced Linux Mint 13 with Debian 7.5.0; during install, I chose for a small
non-encrypted /boot, and the rest of the file system in an encrypted partition.
This created a situation where the screen would become corrupted when GRUB is
started.
Note that, except for the corrupted screen, GRUB is still "functional". I can
boot my Linux system by
* pressing Enter
* waiting a few seconds
* entering the disk decryption passphrase and pressing Enter
When booting the first time, Linux complained about missing R600 firmware, so I
installed the firmware-linux-nonfree package mentioned in the error messages.
This did not seem to affect GRUB, but it let Linux make better use of the
videocard (KMS started working, the error messages were gone and GNOME started
working in its default mode).
After lots of experimenting, I found out that GRUB only has a corrupted screen
after REboots: When doing a clean boot (power-off and power-on), it showed a
non-corrupted text-mode menu. The same was true after entering the BIOS menu's.
Apparently, rebooting leaves the video card in a state that's different from
the state at power-on. Note that the same is true for reboot from Debian and
reboot from Windows 7, so the problem is not specific to the Linux graphics
drivers of the Debian system. Note that rebooting from exactly the same Windows
system caused no problem at all in Linux Mint 13.
I tried to see whether it would help to use a different graphics mode for GRUB,
but this was a bit problematic: update-grub woudn't put the GRUB_GFXMODE value
anywhere in /boot/grub/grub.cfg. I found in /etc/grub.d/00_header that this
depends on the value of GRUB_FONT_PATH. I tried
GRUB_FONT_PATH=/usr/share/grub/unicode.pf2, but this resulted in an error
message by update-grub, because that file is in an encrypted volume. I suspect
this is what triggered the bug in the first place: if I woundn't have had an
encrypted file system, GRUB probably would have used a graphical mode by
default, and I woudn't have had a problem in the first place.
I managed to solve the issue by copying /usr/share/grub/unicode.pf2 to
/boot/grub and using the following settings in /etc/default/grub:
GRUB_GFXMODE=1366x768x32
GRUB_GFXPAYLOAD_LINUX=1366x768x32
GRUB_FONT_PATH=/boot/grub/unicode.pf2
Note that, without the GRUB_GFXPAYLOAD_LINUX value, GRUB looks great, but it
gives a black screen when booting Linux, until KMS kicks in. Since KMS becomes
active AFTER Linux asks for the disk decryption passphrase, this is an
important issue; the GRUB_GFXPAYLOAD_LINUX value solves this.
So, I solved the issue for myself. I am reporting the issue because you might
want to improve Debian in such a way that the issue doesn't occur for other
users. I suggest the following changes:
* For my hardware, graphical GRUB boot is apparently better than text-mode, so,
at least for my hardware, you should make sure that, by default, GRUB is
configured to use a graphical mode. I'll leave it up to you to decide whether
this is true for all hardware.
* The GRUB configuration should not depend on whether or not the filesystem is
encrypted. I think you can only reasonably expect /boot to be non-encrypted and
accessible by GRUB. So, if GRUB needs anything (like the font file in my case),
it needs to be copied to a directory on /boot.
-- Package-specific info:
*********************** BEGIN /proc/mounts
/dev/mapper/sda8_crypt / ext4 rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered 0 0
/dev/sda7 /boot ext2 rw,relatime,errors=continue 0 0
*********************** END /proc/mounts
*********************** BEGIN /boot/grub/device.map
(hd0) /dev/disk/by-id/ata-ST9500325AS_S2WBMJXK
(hd1) /dev/disk/by-id/usb-_USB_DISK_Pro_0744141207E3-0:0
(hd2) /dev/disk/by-id/usb-_USB_DISK_Pro_0744141207E3-0:1
*********************** END /boot/grub/device.map
*********************** BEGIN /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set=root f4c568a7-a3f1-4007-b95e-acf692c7f6a2
if loadfont /grub/unicode.pf2 ; then
set gfxmode=1366x768x32
load_video
insmod gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set=root f4c568a7-a3f1-4007-b95e-acf692c7f6a2
set locale_dir=($root)/grub/locale
set lang=nl_NL
insmod gettext
fi
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set=root f4c568a7-a3f1-4007-b95e-acf692c7f6a2
insmod png
if background_image /grub/.background_cache.png; then
set color_normal=white/black
set color_highlight=black/white
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, met Linux 3.2.0-4-amd64' --class debian --class gnu-linux --class gnu --class os {
load_video
set gfxpayload=1366x768x32
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set=root f4c568a7-a3f1-4007-b95e-acf692c7f6a2
echo 'Laden van Linux 3.2.0-4-amd64...'
linux /vmlinuz-3.2.0-4-amd64 root=/dev/mapper/sda8_crypt ro quiet
echo 'Laden van initiële ramdisk...'
initrd /initrd.img-3.2.0-4-amd64
}
menuentry 'Debian GNU/Linux, met Linux 3.2.0-4-amd64 (herstelmodus)' --class debian --class gnu-linux --class gnu --class os {
load_video
set gfxpayload=1366x768x32
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set=root f4c568a7-a3f1-4007-b95e-acf692c7f6a2
echo 'Laden van Linux 3.2.0-4-amd64...'
linux /vmlinuz-3.2.0-4-amd64 root=/dev/mapper/sda8_crypt ro single
echo 'Laden van initiële ramdisk...'
initrd /initrd.img-3.2.0-4-amd64
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 060685010684F2CB
chainloader +1
}
menuentry "Windows Recovery Environment (loader) (on /dev/sda2)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root 3A68797D687938A9
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry "Windows Recovery Environment (loader) (on /dev/sda3)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos3)'
search --no-floppy --fs-uuid --set=root 1216342E16341567
drivemap -s (hd0) ${root}
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
*********************** END /boot/grub/grub.cfg
*********************** BEGIN /proc/mdstat
cat: /proc/mdstat: No such file or directory
*********************** END /proc/mdstat
*********************** BEGIN /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root 9 May 30 09:00 ata-ST9500325AS_S2WBMJXK -> ../../sda
lrwxrwxrwx 1 root root 10 May 30 09:00 ata-ST9500325AS_S2WBMJXK-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 May 30 09:00 ata-ST9500325AS_S2WBMJXK-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 May 30 09:00 ata-ST9500325AS_S2WBMJXK-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 30 09:00 ata-ST9500325AS_S2WBMJXK-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 May 30 09:00 ata-ST9500325AS_S2WBMJXK-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 May 30 09:00 ata-ST9500325AS_S2WBMJXK-part6 -> ../../sda6
lrwxrwxrwx 1 root root 10 May 30 09:00 ata-ST9500325AS_S2WBMJXK-part7 -> ../../sda7
lrwxrwxrwx 1 root root 10 May 30 09:00 ata-ST9500325AS_S2WBMJXK-part8 -> ../../sda8
lrwxrwxrwx 1 root root 9 May 30 09:12 ata-hp_CDDVDW_SN-208BB_R8HB6GDBC30179 -> ../../sr0
lrwxrwxrwx 1 root root 10 May 30 09:00 dm-name-sda6_crypt -> ../../dm-1
lrwxrwxrwx 1 root root 10 May 30 2014 dm-name-sda8_crypt -> ../../dm-0
lrwxrwxrwx 1 root root 10 May 30 2014 dm-uuid-CRYPT-LUKS1-70c5b5f07eaa43d194ab728c3eefe51a-sda8_crypt -> ../../dm-0
lrwxrwxrwx 1 root root 10 May 30 09:00 dm-uuid-CRYPT-PLAIN-sda6_crypt_unformatted -> ../../dm-1
lrwxrwxrwx 1 root root 9 May 30 09:00 scsi-SATA_ST9500325AS_S2WBMJXK -> ../../sda
lrwxrwxrwx 1 root root 10 May 30 09:00 scsi-SATA_ST9500325AS_S2WBMJXK-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 May 30 09:00 scsi-SATA_ST9500325AS_S2WBMJXK-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 May 30 09:00 scsi-SATA_ST9500325AS_S2WBMJXK-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 30 09:00 scsi-SATA_ST9500325AS_S2WBMJXK-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 May 30 09:00 scsi-SATA_ST9500325AS_S2WBMJXK-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 May 30 09:00 scsi-SATA_ST9500325AS_S2WBMJXK-part6 -> ../../sda6
lrwxrwxrwx 1 root root 10 May 30 09:00 scsi-SATA_ST9500325AS_S2WBMJXK-part7 -> ../../sda7
lrwxrwxrwx 1 root root 10 May 30 09:00 scsi-SATA_ST9500325AS_S2WBMJXK-part8 -> ../../sda8
lrwxrwxrwx 1 root root 9 May 30 09:00 wwn-0x5000c5004a14b265 -> ../../sda
lrwxrwxrwx 1 root root 10 May 30 09:00 wwn-0x5000c5004a14b265-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 May 30 09:00 wwn-0x5000c5004a14b265-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 May 30 09:00 wwn-0x5000c5004a14b265-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 30 09:00 wwn-0x5000c5004a14b265-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 May 30 09:00 wwn-0x5000c5004a14b265-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 May 30 09:00 wwn-0x5000c5004a14b265-part6 -> ../../sda6
lrwxrwxrwx 1 root root 10 May 30 09:00 wwn-0x5000c5004a14b265-part7 -> ../../sda7
lrwxrwxrwx 1 root root 10 May 30 09:00 wwn-0x5000c5004a14b265-part8 -> ../../sda8
*********************** END /dev/disk/by-id
*********************** BEGIN /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 May 30 09:00 060685010684F2CB -> ../../sda1
lrwxrwxrwx 1 root root 10 May 30 09:00 1216342E16341567 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 30 09:00 3A68797D687938A9 -> ../../sda2
lrwxrwxrwx 1 root root 10 May 30 09:00 472ce3ae-0c25-4e47-b536-7c4df73a74d1 -> ../../dm-1
lrwxrwxrwx 1 root root 10 May 30 09:00 70c5b5f0-7eaa-43d1-94ab-728c3eefe51a -> ../../sda8
lrwxrwxrwx 1 root root 10 May 30 09:00 723F-402B -> ../../sda5
lrwxrwxrwx 1 root root 10 May 30 2014 cab2c5d5-4664-4105-bcbd-fcb860cc035d -> ../../dm-0
lrwxrwxrwx 1 root root 10 May 30 09:00 f4c568a7-a3f1-4007-b95e-acf692c7f6a2 -> ../../sda7
*********************** END /dev/disk/by-uuid
-- System Information:
Debian Release: 7.5
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=nl_NL.UTF-8, LC_CTYPE=nl_NL.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages grub-pc depends on:
ii debconf [debconf-2.0] 1.5.49
ii grub-common 1.99-27+deb7u2
ii grub-pc-bin 1.99-27+deb7u2
ii grub2-common 1.99-27+deb7u2
ii ucf 3.0025+nmu3
grub-pc recommends no packages.
grub-pc suggests no packages.
-- debconf information:
grub-pc/kopt_extracted: false
grub2/kfreebsd_cmdline:
grub2/device_map_regenerated:
* grub-pc/install_devices: /dev/disk/by-id/ata-ST9500325AS_S2WBMJXK
grub-pc/postrm_purge_boot_grub: false
grub-pc/install_devices_failed_upgrade: true
grub-pc/disk_description:
* grub2/linux_cmdline:
grub-pc/install_devices_empty: false
grub2/kfreebsd_cmdline_default: quiet
grub-pc/partition_description:
grub-pc/install_devices_failed: false
grub-pc/install_devices_disks_changed:
* grub2/linux_cmdline_default: quiet
grub-pc/chainload_from_menu.lst: true
grub-pc/mixed_legacy_and_grub2: true
More information about the Pkg-grub-devel
mailing list