[ipxe-devel] Passing parameters from PXELinux to iPXE
Robert Socha
socha at socha.it
Fri Aug 7 20:44:50 UTC 2020
W dniu 07.08.2020 o 22:20, Geert Stappers pisze:
> On Fri, Aug 07, 2020 at 09:43:11PM +0200, Robert Socha wrote:
>> Hi,
>>
>> This is more user-level question. But for last few days I'm unable to post
>> question via forum.ipxe.org.
>>
>> I wonder if this supported option (passing parameters from PXELinux to iPXE)
>>
>>
>> I have PXELinux boot:
>>
>> LABEL startipxe
>> KERNEL ipxe.lkrn
>> APPEND set MYVAR some-data
>>
>> And from chain loaded ipxe with embed script:
>>
>> #!ipxe
>> echo MYVAR: ${MYVAR}
>> ... other stuff
>>
>
> Why?
>
Thanks for asking. My use case is:
I bootstrap hosts via PXELinux (I'm unable to change this - this
internal DHCP's related issue).
PXELinux templates are auto-generated via foreman (I know than I can try
to replace (l)pxelinux.0 by ipxe binary - but this will require a lot of
testing of other stuff).
So host is booted via PXElinux, and I chain load IPXE via:
DEFAULT boot
LABEL boot
KERNEL ipxe-foreman.lkrn
APPEND ipxe:set PXEMAC MAC_FROM_TEMPLATE
Where ipxe: part is my patch which parse img memory and pass this to
system() function.
Why I need that?
I need this MAC address in my ipxe script to connect via same NIC
(servers have more than one nic, and only one NIC is controlled by
us/operator - other are user controlled and have user's DHCP servers too).
I know that I can use undionly.kpxe - but this much slower than native
drivers :)
So i solved this by a little "hacking" in source code.
And I only wonder if this "args passing" is any how supported in
upstream iPXE?
I trying to convince other co-workers to switch to native iPXE, but this
will take some time. But after that the above will be for sure "my
imaginary problem" :)
Best regards
--
Robert Socha
More information about the ipxe-devel
mailing list