[syslinux] run pxelinux.0 on a booted system
Carl Karsten
carl at personnelware.com
Wed Nov 8 03:45:36 PST 2006
H. Peter Anvin wrote:
> Carl Karsten wrote:
>> Carl Karsten wrote:
>>> I am trying to come up with a 'clever' way to pxe-boot boxes that
>>> don't have any way to pxe boot. as in, old laptops that only have
>>> pc-mica nics.
>>>
>>> "Etherboot does not (yet) offer support for PCMCIA cards."
>>> http://www.etherboot.org/wiki/pcmcia_support
>>>
>>> I am not trying to do 'that' - just trying to come up with a process
>>> to work around it. Something like this:
>>>
>>> Boot a Live CD. (eventually one I customize with a nifty script to
>>> do all of this) Now I have support for my pcmica nic.
>>>
>>> Now do the part that PXE would do:
>>>
>>> dhcpclint, get an IP, netmask etc.
>>> and a file name (pxelinux.0) and maybe a server name.
>>>
>>> use tftp client to get that file:
>>> juser at v550b:~$ tftp shaz
>>> tftp> get pxelinux.0
>>>
>>> run it.
>>
>> I doubt this will work:
>>
>> I am pretty sure pxelinux.0 wants to run in real mode.
>>
>> Normally: the nic rom runs in real mode, it is the nic driver for
>> pxelinux.0
>> I was thinking it was OK because I would never "return from pxelinux.0
>> to the OS" and so it wouldn't matter if I somehow flipped into real mode.
>> I don't "come back" from pxelinux.0, but it does call into the OS,
>> which .. won't be anything it can call into anymore
>> I was relying on the OS's pcmica nic support to get around "no pcmcia
>> nic pxe" but the OS is all protected mode and so this isn't going to
>> work, right?
>>
>
> Not only is the mode all wrong, but pxelinux.0 runs on top of the BIOS
> and PXE APIs, not on top of Linux.
>
> However, if you want to do the above, you need to use kexec.
>
juser at v550b:~$ sudo kexec --load pxelinux.0
Cannot determine the file type of pxelinux.0
This however did work
juser at v550b:~$ sudo kexec --load linux --initrd=initrd.gz
--append=ramdisk_size=16503 root=/dev/rd/0 rw locale=en_US
console-setup/layoutcode=us netcfg/wireless_wep= netcfg/get_hostname=
DEBCONF_DEBUG=5 preseed/url=http://shaz/preseed-edgy-alt.cfg --
juser at v550b:~$ sudo kexec --exec
well, almost. It didn't get all the parameters. any idea why not?
Carl K
More information about the Syslinux
mailing list