Re: who sets boot_params[].screen_info.orig_video_isVGA?

From: Antonino A. Daplas
Date: Mon Sep 05 2005 - 20:20:49 EST


gl@xxxxxxxxx wrote:
> Thanks for the reply, Matthew.
>
> On Mon, 5 Sep 2005, Matthew Garrett wrote:
>
>> gl@xxxxxxxxx <gl@xxxxxxxxx> wrote:
>>> I am trying to get intelfb running on a system with a 855GM onboard
>>> chip,
>>> and the driver exits at intelfbdrv.c::intelfb_pci_register() (2.6.13,
>>> line
>>> 814:
>>>
>>> if (FIXED_MODE(dinfo) && ORIG_VIDEO_ISVGA != VIDEO_TYPE_VLFB) {
>>> ERR_MSG("Video mode must be programmed at boot time.\n");
>>> cleanup(dinfo);
>>> return -ENODEV;
>>> }
>>
>> This ought to be done by the bootloader if you pass a vga=foo argument.
>> The framebuffer driver doesn't know how to switch resolutions (primarily
>> because Intel won't tell anyone how to do it, so the only method is a
>> real-mode BIOS call to the VESA BIOS)
>
> Do I get it right, that, say, if I tell grub to load a kernel and
> specify "vga=xxx" on the kernel command line, grub will interpret it,
> issue some VESA BIOS calls and fill in the screen_info struct? If so,
> the card often supports several modes (VGA, SVGA, VESA, different
> resolutions, colour depths, etc.), right? So, which one will be chosen?
> Does it depend on the specific value I give to "vga="? How do I force
> VIDEO_TYPE_VLFB (VESA VGA in graphic mode) mopde then?
>
> BTW, I didn't find any code in grub that sets up screen_info, or it's
> very well hidden:-)

One good method is to use the "vesa" driver of Xorg/Xfree86. Check
/var/log/X*.log and it should have a nice list of vesa mode id's that
are supported.

Then add 0x200 to any of them and use it in your vga= parameter.

Tony
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/