grub2 (grub-1.98) gfxpayload=keep & hidden boot messages --Solved.
I finally got gfxpayload to work on my Mandriva-2010.1 Linux & I would like to share what worked for me with others.
I can now boot a grub-menu & see the kernel boot messages in a gfxterm. This also avoids the "stupid" grub message about
the vga=xxx being depreciated.
Here I what I did to enable the gfxpayload option to work in Grub-1.98:
1.) Download "unifont-5.1.20080914.tar.gz"
tar -xzvf unifont-5.1.20080914.tar.gz
cp /unifont-5.1.20080914/font/precompiled/unifont.pcf.gz /usr/share/fonts/unifont
2.) Build grub-1.98 source:
./configure --enable-grub-mkfont ## configure looks for unifont.pfc.gz in your /usr/share/fonts directory & auto sets up Grub2 to use this font.
make
make install
NOTE: Grub configure sets up /usr/local/share/grub with (ascii.h, ascii.pf2 & unicode.pf2) if unifont.pfc.gz is installed on your system.
If you already have a working grub-1.98 configured with grub-mkfont, then you can manually convert unifont.pfc.gz & move the output
unifont.pf2 & ascii.pf2 --> /usr/local/share/grub directory
(eg.) grub-mkfont --output=unifont.pf2 unifont.pcf.gz
grub-mkfont --output=ascii.pf2 --range=0x0-0x7f unifont.pcf.gz
mv unifont.pf2 /usr/local/share/grub
mv ascii.pf2 /usr/local/share/grub
3.) I had to re-build my Kernel-2.6.36 to add these .config entries:
CONFIG_EFI=y ..found under menuconfig: "Processor Type & Features / EFI runtime service support"
CONFIG_EFI_VARS=m ..found under menuconfig: "Firmware / EFI Variable Support via sysfs"
CONFIG_FB_EFI=y ..found under menuconfig: "Graphics / Support For Framebuffer Devices"
CONFIG_EFI_PARTITION=y ..found under menuconfig: "Filesystems / Partition Types / EFI GUID Partition support"
CONFIG_VT=y ..found under menuconfig: "Device Drivers / Character Devices / Vertual terminal"
CONFIG_VT_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y ..found under menuconfig: "Device Drivers / Character Devices /Support fo binding & unbinding console drivers"
4.) Next I created the script /usr/local/etc/grub.d/01_header with the following entries:
cat << EOF
set gfxpayload=keep # set resolution of gfxpayload to the same resolution as gfxmode
set timeout=10 # delay before auto boot
set color_normal=white/black # color of grub shell [white type on black background]
set menu_color_normal=white/dark-gray # color of grub menu-box [white type on dark-gray background]
set menu_color_highlight=green/yellow # color of grub menu-box [green type under yellow selection bar]
insmod vbe # load framebuffer module
EOF
5.) Then I created a /usr/local/etc/default/grub file (missing in grub-1.98.tar.gz) with these entries:
GRUB_TIMEOUT=10 ## delay boot by [xx] seconds to allow user choice
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" ## this line is for our standard kernel options and should be left as it is.
GRUB_DISABLE_OS_PROBER=true ## enables/disables probing for other operating systems
GRUB_GFXMODE=800x600x16 ## resolution used on graphical terminal (see modes in real GRUB with the command`vbeinfo')
GRUB_GFXPAYLOAD_LINUX=keep ## Uncomment if you want to use the same resolution for gfxterm & console
GRUB_HIDDEN_TIMEOUT_QUIET=true ## When the menu is hidden, this hides the timer as well. Set it to false if you do want to display the timer.
GRUB_DEFAULT=0 ## define a default grub.cfg menu item. Alternatively, replace the number here with the word 'saved' to
6.) Then I added my linux boot entry to the existing /usr/local/etc/grub.d/40_custom:
echo "Adding Linux-Sda 2.6.36 (Mandriva-2010.1)" >&2
cat << EOF
menuentry "Linux-Sda 2.6.36 (Mandriva-2010.1)" {
set root=(hd0,1)
set prefix=/grub
linux (hd0,1)/bzImage-2.6.36 root=/dev/sda2 ro resume=/dev/sda5 raid=noautodetect ## Kernel vga=788 option not needed gfxterm framebuffer
}
EOF
7.) Finally I Installed Grub-1.98 & created my (grub.cfg) boot menu:
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
I hope this helps other grub-1.98 users.
Last edited by ssenuta; 11-25-2010 at 09:54 AM.
|