Bug#562036: grub-pc: Add support for GFXPAYLOAD same as for GFXMODE
Jan Muszynski
debianbugs at jancm.org
Tue Dec 22 06:12:54 UTC 2009
Package: grub-pc
Version: 1.98~20091210-1
Severity: normal
Tags: patch
Currently console resolution defaults to 640x480, even if GFXMODE is set.
Changing this requires modifying the scripts in /etc/grub.d, which is not
very user friendly and also makes it a pain when the scripts are changed due
to updates.
Instead I would propose to add support for GFXPAYLOAD in /etc/default/grub.
Attached patch should do the job. You'll notice I switched the -e from the
shebang line to an explicit set -e For why see:
http://blog.andrew.net.au/2009/11/20#dash_e_shebang_bad
Need anything further, just holler. I'll have a few more bug reports (some with patches)
coming up in the near future. I'll wait for the version currently in incoming first.
(For starters the custom menu entry listed below is ignored, but I need to look at things closer first)
-jcm
----- Start Patches -----
--- /etc/grub.d/00_header 2009-12-14 09:05:26.000000000 -0500
+++ /etc/grub.d/00_header.new 2009-12-21 23:27:41.743930730 -0500
@@ -1,4 +1,5 @@
-#! /bin/sh -e
+#! /bin/sh
+set -e
# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009 Free Software Foundation, Inc.
@@ -36,6 +37,7 @@
if [ "x${GRUB_DEFAULT}" = "x" ] ; then GRUB_DEFAULT=0 ; fi
if [ "x${GRUB_TIMEOUT}" = "x" ] ; then GRUB_TIMEOUT=5 ; fi
if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=640x480 ; fi
+if [ "x${GRUB_GFXPAYLOAD}" = "x" ] ; then GRUB_GFXPAYLOAD=${GRUB_GFXMODE} ; fi
cat << EOF
set default=${GRUB_DEFAULT}
@@ -78,6 +80,7 @@
cat << EOF
if loadfont `make_system_path_relative_to_its_root ${GRUB_FONT_PATH}` ; then
set gfxmode=${GRUB_GFXMODE}
+ set gfxpayload=${GRUB_GFXPAYLOAD}
insmod gfxterm
insmod ${GRUB_VIDEO_BACKEND}
if terminal_output gfxterm ; then true ; else
--- /usr/sbin/grub-mkconfig 2009-12-14 09:05:26.000000000 -0500
+++ /usr/sbin/grub-mkconfig.new 2009-12-21 23:28:06.119931605 -0500
@@ -1,4 +1,5 @@
-#! /bin/sh -e
+#! /bin/sh
+set -e
# Generate grub.cfg by inspecting /boot contents.
# Copyright (C) 2006,2007,2008,2009 Free Software Foundation, Inc.
@@ -224,6 +225,7 @@
GRUB_DISABLE_LINUX_UUID \
GRUB_DISABLE_LINUX_RECOVERY \
GRUB_GFXMODE \
+ GRUB_GFXPAYLOAD \
GRUB_DISABLE_OS_PROBER
if test "x${grub_cfg}" != "x"; then
--- /usr/share/grub/default/grub 2009-12-09 18:47:36.000000000 -0500
+++ /usr/share/grub/default/grub.new 2009-12-21 23:55:39.510931300 -0500
@@ -15,6 +15,10 @@
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
+# The resolution used on the console. The default will be the same as GRUB_GFXMODE
+# The same modes as for GRUB_GFXMODE are valid here, with the addition of the "keep" keyword.
+#GRUB_GFXPAYLOAD=keep
+
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
----- End Patches -----
-- Package-specific info:
*********************** BEGIN /proc/mounts
/dev/mapper/serenityVG1-debian--root / ext4 rw,noatime,errors=remount-ro,barrier=0,nodelalloc,stripe=48,data=journal 0 0
/dev/sde1 /boot ext3 rw,noatime,errors=continue,user_xattr,acl,data=journal 0 0
/dev/mapper/serenityVG2-home /home ext4 rw,noatime,barrier=0,nodelalloc,stripe=32,data=journal 0 0
/dev/mapper/serenityVG1-postgres.data /srv/postgresql ext4 rw,noatime,barrier=0,stripe=48,data=writeback 0 0
/dev/mapper/serenityVG1-postgres.xlog /srv/postgresql/8.4/poker/pg_xlog ext4 rw,noatime,barrier=0,data=writeback 0 0
/dev/sda4 /var/lib/backuppc ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/sdb5 /media/music ext4 rw,noatime,barrier=1,nodelalloc,data=journal 0 0
/dev/sde3 /media/music.work ext4 rw,noatime,barrier=1,nodelalloc,data=journal 0 0
*********************** END /proc/mounts
*********************** BEGIN /boot/grub/device.map
(hd0) /dev/sde
(hd1) /dev/sda
(hd2) /dev/sdb
(hd3) /dev/sdc
(hd4) /dev/sdd
*********************** END /boot/grub/device.map
*********************** BEGIN /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set default=0
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
if loadfont /grub/unicode.pf2 ; then
set gfxmode=640x480
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
fi
fi
set locale_dir=/boot/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/00_header.new ###
set default=0
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
if loadfont /grub/unicode.pf2 ; then
set gfxmode=640x480
set gfxpayload=640x480
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
fi
fi
set locale_dir=/boot/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header.new ###
### BEGIN /etc/grub.d/05_debian_theme ###
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
insmod png
if background_image /grub/moreblue-orbit-grub.png ; then
set color_normal=black/black
set color_highlight=magenta/black
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/05_debian_theme.new ###
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
insmod png
if background_image /grub2-background/MilkyWay.png ; then
set color_normal=yellow/black
set color_highlight=light-red/black
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme.new ###
### BEGIN /etc/grub.d/10_linux ###
menuentry "GNU/Linux, with Linux 2.6.32.2+00.amd64.fbcondecor" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
linux //vmlinuz-2.6.32.2+00.amd64.fbcondecor root=/dev/mapper/serenityVG1-debian--root ro
initrd //initrd.img-2.6.32.2+00.amd64.fbcondecor
}
menuentry "GNU/Linux, with Linux 2.6.32.2+00.amd64.fbcondecor (recovery mode)" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
linux //vmlinuz-2.6.32.2+00.amd64.fbcondecor root=/dev/mapper/serenityVG1-debian--root ro single
initrd //initrd.img-2.6.32.2+00.amd64.fbcondecor
}
menuentry "GNU/Linux, with Linux 2.6.32.1+00.amd64.fbcondecor" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
linux //vmlinuz-2.6.32.1+00.amd64.fbcondecor root=/dev/mapper/serenityVG1-debian--root ro
initrd //initrd.img-2.6.32.1+00.amd64.fbcondecor
}
menuentry "GNU/Linux, with Linux 2.6.32.1+00.amd64.fbcondecor (recovery mode)" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
linux //vmlinuz-2.6.32.1+00.amd64.fbcondecor root=/dev/mapper/serenityVG1-debian--root ro single
initrd //initrd.img-2.6.32.1+00.amd64.fbcondecor
}
menuentry "GNU/Linux, with Linux 2.6.32-trunk-amd64" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
linux //vmlinuz-2.6.32-trunk-amd64 root=/dev/mapper/serenityVG1-debian--root ro
initrd //initrd.img-2.6.32-trunk-amd64
}
menuentry "GNU/Linux, with Linux 2.6.32-trunk-amd64 (recovery mode)" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
linux //vmlinuz-2.6.32-trunk-amd64 root=/dev/mapper/serenityVG1-debian--root ro single
initrd //initrd.img-2.6.32-trunk-amd64
}
menuentry "GNU/Linux, with Linux 2.6.32+01.amd64.fbcondecor" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
linux //vmlinuz-2.6.32+01.amd64.fbcondecor root=/dev/mapper/serenityVG1-debian--root ro
initrd //initrd.img-2.6.32+01.amd64.fbcondecor
}
menuentry "GNU/Linux, with Linux 2.6.32+01.amd64.fbcondecor (recovery mode)" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
linux //vmlinuz-2.6.32+01.amd64.fbcondecor root=/dev/mapper/serenityVG1-debian--root ro single
initrd //initrd.img-2.6.32+01.amd64.fbcondecor
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
linux16 /memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
linux16 /memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Fedora release 12 (Constantine) (on /dev/mapper/serenityVG1-fedora.root)" {
set root=(serenityVG1-fedora.root)
linux /boot/vmlinuz-2.6.31.5-127.fc12.x86_64 root=/dev/mapper/serenityVG1-fedora.root
}
menuentry "Fedora release 12 (Constantine) (on /dev/mapper/serenityVG1-fedora.root)" {
set root=(serenityVG1-fedora.root)
linux /boot/vmlinuz-2.6.31.6-145.fc12.x86_64 root=/dev/mapper/serenityVG1-fedora.root
}
### 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.
menuentry "Fedora (2.6.31.5-127.fc12.x86_64)" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set f08bb834-f81c-4eac-bdf5-1847c411ad30
kernel /fedora/vmlinuz-2.6.31.5-127.fc12.x86_64 ro root=/dev/mapper/serenityVG1-fedora.root hpet=force clocksource=hpet printk.time=1 noiswmd LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb
initrd /fedora/initramfs-2.6.31.5-127.fc12.x86_64.img
}
### END /etc/grub.d/40_custom ###
*********************** END /boot/grub/grub.cfg
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (900, 'testing'), (100, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32.2+00.amd64.fbcondecor (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.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.28 Debian configuration management sy
ii grub-common 1.98~20091210-1 GRand Unified Bootloader, version
ii libc6 2.10.2-2 GNU C Library: Shared libraries
ii ucf 3.0025 Update Configuration File: preserv
grub-pc recommends no packages.
Versions of packages grub-pc suggests:
ii desktop-base 5.0.5 common files for the Debian Deskto
-- debconf information:
grub2/kfreebsd_cmdline:
* grub2/linux_cmdline: hpet=force clocksource=hpet printk.time=1 splash=verbose,theme:earthrise
* grub-pc/chainload_from_menu.lst: true
grub-pc/kopt_extracted: true
grub-pc/postrm_purge_boot_grub: false
grub2/kfreebsd_cmdline_default: quiet
* grub2/linux_cmdline_default:
* grub-pc/install_devices: /dev/sdd
More information about the Pkg-grub-devel
mailing list