Bug 770356

Summary: Message during boot: vga= deprecated, Use gfxpayload= before linux command line
Product: [openSUSE] openSUSE 12.2 Reporter: Richard Bos <richard.bos>
Component: YaST2Assignee: E-mail List <bnc-team-screening>
Status: VERIFIED FEATURE QA Contact: Jiri Srain <jsrain>
Severity: Minor    
Priority: P5 - None CC: mchang, mrmazda
Version: Beta 2   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 12.2   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Richard Bos 2012-07-08 19:58:24 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1

The following message is shown during boot, just after the initial
boot screen and before booting linux:
vga=0x317 deprecated, Use gfxpayload=1024x768,1024x768 before linux command line.

System boots, so it is not a real problem.

Reproducible: Always

Steps to Reproduce:
1. boot system
2.
3.
Actual Results:  
vga=0x317 deprecated, Use gfxpayload=1024x768,1024x768 before linux command line.

Expected Results:  
no deprecated message

/var/log/YaST2 # grep vga= *
perl-BL-standalone-log:' GRUB_CMDLINE_LINUX_DEFAULT=" video=LVDS-1:d nomodeset resume=/dev/disk/by-id/ata-WDC_WD3200BUCT-63TWBY0_WD-WXA1C1294333-part2 splash=silent quiet showopts video=LVDS-1:d nomodeset vga=0x317"'
perl-BL-standalone-log:' GRUB_CMDLINE_LINUX_DEFAULT=" video=LVDS-1:d nomodeset resume=/dev/disk/by-id/ata-WDC_WD3200BUCT-63TWBY0_WD-WXA1C1294333-part2 splash=silent quiet showopts video=LVDS-1:d nomodeset vga=0x317"'
perl-BL-standalone-log:' GRUB_CMDLINE_LINUX_DEFAULT=" video=LVDS-1:d nomodeset resume=/dev/disk/by-id/ata-WDC_WD3200BUCT-63TWBY0_WD-WXA1C1294333-part2 splash=silent quiet showopts video=LVDS-1:d nomodeset vga=0x317"'
perl-BL-standalone-log:' GRUB_CMDLINE_LINUX_DEFAULT=" video=LVDS-1:d nomodeset resume=/dev/disk/by-id/ata-WDC_WD3200BUCT-63TWBY0_WD-WXA1C1294333-part2 splash=silent quiet showopts video=LVDS-1:d nomodeset vga=0x317"'
y2log:2012-06-23 13:35:19 <1> cedar(4029) [YCP] BootCommon.ycp:513 key: vga=0x31a
y2log:2012-06-23 13:35:19 <1> cedar(4029) [YCP] BootCommon.ycp:515 vga from command line: vga=0x31a
y2log:2012-06-23 13:35:19 <1> cedar(4029) [YCP] BootCommon.ycp:513 key: vga=0x31a
y2log:2012-06-23 13:35:19 <1> cedar(4029) [YCP] BootCommon.ycp:515 vga from command line: vga=0x31a
y2log:2012-06-23 15:01:37 <1> cedar(4192) [YCP] BootCommon.ycp:513 key: vga=normal
y2log:2012-06-23 15:01:37 <1> cedar(4192) [YCP] BootCommon.ycp:515 vga from command line: vga=normal
y2log:2012-06-23 15:01:38 <1> cedar(4192) [YCP] BootCommon.ycp:513 key: vga=normal
y2log:2012-06-23 15:01:38 <1> cedar(4192) [YCP] BootCommon.ycp:515 vga from command line: vga=normal
y2log:2012-06-23 15:13:13 <1> cedar(4039) [YCP] BootCommon.ycp:513 key: vga=0x31a
y2log:2012-06-23 15:13:13 <1> cedar(4039) [YCP] BootCommon.ycp:515 vga from command line: vga=0x31a
y2log:2012-06-23 15:13:20 <1> cedar(4039) [YCP] BootCommon.ycp:513 key: vga=0x31a
y2log:2012-06-23 15:13:20 <1> cedar(4039) [YCP] BootCommon.ycp:515 vga from command line: vga=0x31a
y2log:2012-06-23 15:14:38 <1> cedar(5347) [YCP] BootCommon.ycp:513 key: vga=0x31a
y2log:2012-06-23 15:14:38 <1> cedar(5347) [YCP] BootCommon.ycp:515 vga from command line: vga=0x31a
y2log:2012-06-23 15:14:38 <1> cedar(5347) [YCP] BootCommon.ycp:513 key: vga=0x31a
y2log:2012-06-23 15:14:38 <1> cedar(5347) [YCP] BootCommon.ycp:515 vga from command line: vga=0x31a

:/boot/grub2 # cat grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-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="${saved_entry}"
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_gpt
insmod ext2
set root='(/dev/sda,gpt4)'
search --no-floppy --fs-uuid --set=root 85f1721e-ab50-4c52-890e-39caca5f981f
if loadfont /usr/share/grub2/unicode.pf2 ; then
  set gfxmode=1024x768
  load_video
  insmod gfxterm
fi
terminal_input gfxterm
terminal_output gfxterm
if sleep --interruptible 0 ; then
  set timeout=8
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'openSUSE, with Linux 3.4.4-2.4-desktop' --class opensuse --class gnu-linux --class gnu --class os {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='(/dev/sda,gpt4)'
        search --no-floppy --fs-uuid --set=root 85f1721e-ab50-4c52-890e-39caca5f981f
        echo    'Loading Linux 3.4.4-2.4-desktop ...'
        linux   /boot/vmlinuz-3.4.4-2.4-desktop root=UUID=85f1721e-ab50-4c52-890e-39caca5f981f   video=LVDS-1:d nomodeset resume=/dev/disk/by-id/ata-WDC_WD3200BUCT-63TWBY0_WD-WXA1C1294333-part2 splash=silent quiet showopts video=LVDS-1:d nomodeset vga=0x317
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd-3.4.4-2.4-desktop
}
menuentry 'openSUSE, with Linux 3.4.4-2.4-desktop (recovery mode)' --class opensuse --class gnu-linux --class gnu --class os {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='(/dev/sda,gpt4)'
        search --no-floppy --fs-uuid --set=root 85f1721e-ab50-4c52-890e-39caca5f981f
        echo    'Loading Linux 3.4.4-2.4-desktop ...'
        linux   /boot/vmlinuz-3.4.4-2.4-desktop root=UUID=85f1721e-ab50-4c52-890e-39caca5f981f single 
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd-3.4.4-2.4-desktop
}
### 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 "CentOS (2.6.32-220.13.1.el6.x86_64) (on /dev/sda1)" --class gnu-linux --class gnu --class os {
        insmod part_gpt
        insmod ext2
        set root='(/dev/sda,gpt1)'
        search --no-floppy --fs-uuid --set=root 819d9963-5775-4e14-a9b5-a497b0822fb6
        linux /boot/vmlinuz-2.6.32-220.13.1.el6.x86_64 ro root=UUID=819d9963-5775-4e14-a9b5-a497b0822fb6 rd_NO_LUKS LANG=nl_NL.UTF-8 rhgb rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us-acentos crashkernel=auto rd_NO_LVM rd_NO_DM
        initrd /boot/initramfs-2.6.32-220.13.1.el6.x86_64.img
}
menuentry "CentOS (2.6.32-220.el6.x86_64) (on /dev/sda1)" --class gnu-linux --class gnu --class os {
        insmod part_gpt
        insmod ext2
        set root='(/dev/sda,gpt1)'
        search --no-floppy --fs-uuid --set=root 819d9963-5775-4e14-a9b5-a497b0822fb6
        linux /boot/vmlinuz-2.6.32-220.el6.x86_64 ro root=UUID=819d9963-5775-4e14-a9b5-a497b0822fb6 rd_NO_LUKS LANG=nl_NL.UTF-8 rhgb rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us-acentos crashkernel=auto rd_NO_LVM rd_NO_DM
        initrd /boot/initramfs-2.6.32-220.el6.x86_64.img
}
menuentry "openSUSE nfs install (on /dev/sda1)" --class gnu-linux --class gnu --class os {
        insmod part_gpt
        insmod ext2
        set root='(/dev/sda,gpt1)'
        search --no-floppy --fs-uuid --set=root 819d9963-5775-4e14-a9b5-a497b0822fb6
        linux /boot/install/os1220315/linux nomodeset noapic video=LVDS-1:d install=nfs://192.168.4.11:/data/distr/os122
        initrd /boot/install/os1220315/initrd
}
menuentry "openSUSE http install (on /dev/sda1)" --class gnu-linux --class gnu --class os {
        insmod part_gpt
        insmod ext2
        set root='(/dev/sda,gpt1)'
        search --no-floppy --fs-uuid --set=root 819d9963-5775-4e14-a9b5-a497b0822fb6
        linux /boot/install/linux nomodeset noapic video=LVDS-1:d install=http://download.opensuse.org/distribution/openSUSE-stable/repo/oss/
        initrd /boot/install/initrd
}
menuentry "openSUSE local hd install (on /dev/sda1)" --class gnu-linux --class gnu --class os {
        insmod part_gpt
        insmod ext2
        set root='(/dev/sda,gpt1)'
        search --no-floppy --fs-uuid --set=root 819d9963-5775-4e14-a9b5-a497b0822fb6
        linux /boot/install/linux nomodeset noapic install=hd:////boot/install/openSUSE-DVD-Build0317-i586.iso
        initrd /boot/install/initrd
}
menuentry "openSUSE local cd install (on /dev/sda1)" --class gnu-linux --class gnu --class os {
        insmod part_gpt
        insmod ext2
        set root='(/dev/sda,gpt1)'
        search --no-floppy --fs-uuid --set=root 819d9963-5775-4e14-a9b5-a497b0822fb6
        linux /boot/install/linux nomodeset noapic install=hd:/dev/sr0
        initrd /boot/install/initrd
}
menuentry "openSUSE 12.2 Milestone 3 (x86_64) (on /dev/sda3)" --class gnu-linux --class gnu --class os {
        insmod part_gpt
        insmod ext2
        set root='(/dev/sda,gpt3)'
        search --no-floppy --fs-uuid --set=root 0ee6b30c-684d-4360-aff6-685f090edcde
        linux /boot/vmlinuz-3.3.3-1-desktop root=/dev/sda3
        initrd /boot/initrd-3.3.3-1-desktop
}
menuentry "openSUSE 12.2 Milestone 3 (x86_64) (on /dev/sda3)" --class gnu-linux --class gnu --class os {
        insmod part_gpt
        insmod ext2
        set root='(/dev/sda,gpt3)'
        search --no-floppy --fs-uuid --set=root 0ee6b30c-684d-4360-aff6-685f090edcde
        linux /boot/vmlinux-3.3.3-1-desktop.gz root=/dev/sda3
}
### 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 ###

### BEGIN /etc/grub.d/90_persistent ###
### END /etc/grub.d/90_persistent ###
Comment 1 Felix Miata 2012-07-09 04:53:09 UTC
vga= isn't there for Grub's benefit, it's for the kernel, which recognizes both vga= and video = but AFAICT, not gfxpayload, which is exclusively for Grub 2's use. Grub 2 shouldn't be presenting that error message, as it's not an error to present whatever kernel parameters are at the pleasure of the user to use. The message comes from upstream, so complain to it about the message.

The claim of "deprecation" is itself arguably invalid, as it's still required by those wishing to specify the video mode for ttys run by video chips that have no KMS support (e.g. r128 & mga).
Comment 2 Richard Bos 2012-07-09 17:16:33 UTC
Felix, what do you mean with resolution = upstream?  Did you report it
upstream, or should I (e.g.) do that?

It seems to be that in this case it is not upstream that needs to fix this.
It looks to me that yast should created / adapt to different entries in the
grub.cfg file.  It is now sticking to grub-1 type of entries.

Have a look at this description in the Debian wiki:
http://wiki.debian.org/GrubTransition
It states: 
"Just replace linux and initrd by linux16 and initrd16 in each menuentry bloc you want to use VGA mode"
The menu entries are created by yast, as such openSUSE should fix this and not
upstream.

Deprecated is the correct warning type to use here.  It is still supported, but
support may (will) be removed the future.  The grub(-2) developers give others
(linux distributions) time to adjust there installers to grub2....
Comment 3 Felix Miata 2012-07-10 00:33:09 UTC
(In reply to comment #2)
> Felix, what do you mean with resolution = upstream?  Did you report it
> upstream, or should I (e.g.) do that?

I consider the message upstream WAD. I looked in upstream tracker and only found only two instances of string "gfxpayload=", which leaves me both wondering about the efficacy of the upstream tracker's search function, and thinking no one else thinks this to be a problem that needs fixing. I suggest you file there if you want it to go away.
 
> It seems to be that in this case it is not upstream that needs to fix this.
> It looks to me that yast should created / adapt to different entries in the
> grub.cfg file.  It is now sticking to grub-1 type of entries.

I don't believe anything in YaST, SuSEconfig or anything else openSUSE-specific could do anything to make that message go away, instead requiring a patch to Grub2. Right now I believe there is copious Grub2 integration left to do, as well as learning of the much more complex (than Legacy Grub) Grub2 by those working on integration.

> Have a look at this description in the Debian wiki:
> http://wiki.debian.org/GrubTransition
> It states: 
> "Just replace linux and initrd by linux16 and initrd16 in each menuentry bloc
> you want to use VGA mode"
> The menu entries are created by yast, as such openSUSE should fix this and not
> upstream.

Have you tried that recommendation to see if it works for you?

linux16 and initrd16 are for Grub2's use only. Still vga= will be required by those with no KMS support for their video chips who want to specify initial tty modes.
 
> Deprecated is the correct warning type to use here. 

Deprecated like old hardware is deprecated. Some have no choice over the hardware they have access to.

> It is still supported, but
> support may (will) be removed the future.  The grub(-2) developers give others
> (linux distributions) time to adjust there installers to grub2....

Support for anything can always be removed. To invalidate use of vga= would mean either support for old video chips would have to be dropped, killing viability of Linux distros on otherwise useful old hardware, or the (unlikely viable) provision of KMS support for old video chips.

Still, the discussion of vga= is orthogonal to Grub 2, as it is for post-Grub use, after handoff to kernel, for use by kernel and user space. Grub2 has no business objecting to cmdline parameters users need or want to provide to the kernel.
Comment 4 Michael Chang 2012-07-10 04:36:30 UTC
I second Felix's opinion, unless vga= is stated by "kernel" (not grub2) that it had been deprecated, we won't need to fix it.

Another bug might interest to read

http://osdir.com/ml/debian-bugs-dist/2009-07/msg08220.html

Although it's a bit out-dated, it demonstrated the potential issue if ignoring vga= to kernel.

To me, YaST had adapted the change to grub2 by "default not proposing any value to vga=, instead proposing setting gfxterm with resolution "auto" (automatically determined by grub2)". User could enable vga= if they need it to work, and ignore the error message from grub2 or ask upstream to fix it if you really care (it's harmless, but rather a grub2 feature "gfxpayload=keep" will not work as expected and grub2 complains for that). 

Btw .. grub2-setup also complains when you tries to install on bootsecotor and filesysetm not support embedding the entire core.img, however we have many scenarios brutally deaf to the warnings.
Comment 5 Richard Bos 2012-07-10 18:45:49 UTC
OK, let's consider it a harmless warning that does not need to be touched.
As such the ticket status can be changed to closed.  The future will show
how to cope with the warning.
Comment 6 Felix Miata 2012-07-10 18:52:57 UTC
What was never broken cannot be "FIXED".