Re: kexec and frame buffer

Eric W. Biederman
2005-08-06T16:51:02Z

Luca Falavigna <dktrkranz@gmail.com> writes:

> Eric W. Biederman ha scritto:
>> So without doing passing --real-mode the vga= parameter currently
>> cannot work. The vga= parameter is processed by vga.S which
>> make BIOS calls and we bypass all of the BIOS calls.
> Actually that file is video.S

Oops. Anyway I believe you also want to look at include/linux/tty.h
at the screen_info structure. I believe that is where
all of that information is passed.

>> So you can try with the --real-mode option and you have
>> a chance of the code working. Or you can figure out which
>> information video.S passes to the kernel figure out how
>> to get that same information out of a running kernel
>> and then /sbin/kexec can be tweaked to pass the current
>> video mode. Changing frame buffer modes shouldn't work
>> but you should at least be able to preserve the existing
>> ones.
> I tried to pass --real-mode flag to kexec but my virtual machine doesn't like
> it. When I launch kexec -e, it tells me: "A strange behaviour occourred which
> crashed virtual machine".

Cool. I haven't used that code in a long time but it is pretty
trivial code to switches to real mode so I don't really doubt it :)

> I'll dig source code ASAP to figure out this matter.
> Meanwhile I'm going to follow your advice to inspect video.S in order to track
> down something useful.

Sounds good.

Eric