[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