Hi, I'm having problems with the vbe commands, specially if I compile grub (0.97) myself.

The first problem I had (and could finally solve) was that, in vbeprobe_func() the low order byte of the variable mode_number was overwriten (set to zero) by the call to get_vbe_mode_info(). I found this by adding a grub_printf() before and after this call, and seeing how the value changed (for example from -1 to 0xffffff00 or from 0x141 to 0x100). My fix is to make vbe_mode.reserved3 bigger (I made it 190 bytes instead of the original 189) like in:

shared.h:

struct vbe_mode {
  ...
   unsigned char reserved3[190];
} __attribute__ ((packed));
I read somewhere that this strcture must be 256 bytes, but, as far as I can count (tried twice) the original structure has 255 bytes, which would make sence.

   In short, my fix is to make reserved3 have 190 bytes.

I also added a new command: setvbe, which will change the video mode and continue (cut&pasted from testvbe). My plan is to use this to bootstrap the development of some graphic mode bottable stuff.

At some point I also thought of implementing the support for video mode selection of the multiboot loader of GRUB Legacy, I don't know if this makes sence or not, in the view of GRUB2. Any thoughts?

   hope this helps.
   thanks a lot

   gera


_______________________________________________
Bug-grub mailing list
Bug-grub@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-grub

Reply via email to