kexec --real-mode

Eric W. Biederman ebiederm at
Wed Apr 30 15:35:05 EDT 2008

Bernhard Walle <bwalle at> writes:

> * Eric W. Biederman [2008-04-29 10:15]:

>> What is your interest in getting the --real-mode option working at this
>> point?
> Well, the first reason was just interest.
> The second reason that pointed me in that direction is that I saw that
> kdump-booted kernels ignore the VGA parameter [e.g. 791] (which is
> quite clear since the video mode is not set in the boot block, but that
> can be easily patched) and also ignore the compiled-in VGA value (set
> with rdev). Then I saw that this is not done in the real kernel but in
> the 16 bit boot code which is of course only executed in real mode
> booting (arch/x86/boot/video.c).
> I know the 32-bit booted kernel takes the video mode from the running
> kernel, but currently it's not possible to change the mode. Well, it's
> not really important, it just would be nice.
> The overall reason behind this is that we (SUSE) use kexec now for the
> first reboot in our distribution setup which works quite well, and
> that's the reason I looked into that.

Ok.  So not critical but very useful to understand and it would be
cool to use if you could.  I wish I knew of a way to not confuse the
BIOS so we could do this more often.  I know I surprised a lot of
people with how often it worked on when I was actively pursuing it.

I have often suspected that the only way we could reliably run 16bit
code after running the linux kernel would be to load in an alternative
16bit BIOS like bochs that we could safely initialize from the state
the linux kernel left the hardware.  Although if we could ever figure
out what we are doing that confuses the hardware the other path could
be used.

For video mode changing it might be possible to just run the vga
BIOS calls and make them work.

All of which is to say there are paths forward if anyone wants to
pursue them.


More information about the kexec mailing list