Dear everyone,
I have a simple and silly question.
I'm using pxelinux in a small LAN - I'm using it to boot a few
universal profiles based on Linux and DOS.
I have a simple DOS-based "screensaver" (winter background theme with
snow falling down) that I'd like to hook up as a default profile (say
after 5 minutes timeout) into the PXElinux boot menu.
That works - the problem is that I cannot exit right back into
pxelinux. I've tried calling int 0x19 and int 0x18, but all I could
ever achieve was a reboot, which takes considerable time (not
ergonomic for my users). Sure I can reboot explicitly in other ways.
The problem is that having to reboot is a pain. One odd machine was
actually willing to try the boot sequence again, but it failed for
some other reason anyway.
Using Grub4DOS.EXE, I can chainload other things from DOS. Say
Windows XP or Linux or whatever harddisk partition or kernel-like
binary. Tried that, it works.
My idea is this:
POST -> PXElinux -> (keeppxe) memdisk -> DOS -> screensaver
(wait for Esc) -> Grub4DOS -> back to PXElinux -> ...
But, I can't seem to chainload pxelinux back.
Even if I add "keeppxe" to my "screensaver" profile.
Grub hangs while trying to load pxelinux.0 (the last message says
"asking for upper memory" or something like that, which is odd).
Seems to me that the pxelinux.0 binary doesn't have the right header
to appear as a "linux kernel".
I've tried looking at how the memdisk binary is post-processed by the
makefile for chainloading (with an idea that I could re-apply the
same method on the pxelinux binary), but I couldn't figure it out.
I assume that this could be useful for other purposes too, other than
the screensaver - such as: boot DOS, do some HW maintenance stuff,
tweak some config registers, and return to the boot menu without a
reboot... I know I've been in a similar situation before.
Any ideas are welcome :-)
Frank Rysanek
P.S.: one other feature request: would it be possible to have two
different default profiles, one for timeout, another one for
"just <Enter>"?