[SLOF] [PATCH v2 07/11] libnet: Wire up pxelinux.cfg network booting

Alexey Kardashevskiy aik at ozlabs.ru
Fri May 25 18:22:45 AEST 2018


On 25/5/18 5:29 pm, Thomas Huth wrote:
> On 25.05.2018 09:08, Alexey Kardashevskiy wrote:
>> On 19/5/18 1:45 am, Thomas Huth wrote:
>>> In case the normal network loading failed, try to load a pxelinux.cfg
>>> config file. If that succeeds, load the kernel and initrd with the
>>> information that could be found in this file.
>>
>> Without that, my test setup would report error like this:
>>
>>
>> Trying to load:  from: /pci at 800000020000000/ethernet at 1 ...
>>  Initializing NIC
>>   Reading MAC address from device: c0:41:49:4b:00:30
>>   Requesting information via DHCP: done
>>   Using IPv4 address: 10.61.191.48
>>   Requesting file "image.aiktest48" via TFTP from 10.61.2.7
>>   Receiving data:  0 KBytes
>> E3009 (net) file not found: image.aiktest48
>>
>> E3407: Load failed
>>
>>
>>
>> With this patch applied:
>>
>> Trying to load:  from: /pci at 800000020000000/ethernet at 1 ...
>>  Initializing NIC
>>   Reading MAC address from device: c0:41:49:4b:00:30
>>   Requesting information via DHCP: done
>>   Using IPv4 address: 10.61.191.48
>>   Requesting file "image.aiktest48" via TFTP from 10.61.2.7
>>   Receiving data:  0 KBytes
>> E3009 (net) file not found: image.aiktest48
>> Trying pxelinux.cfg files...
>>   TFTP error: TFTP buffer of 2047 bytes is too small for pxelinux.cfg/default
>>
>> E3407: Load failed
>>
>>
>> this is because....
> [...]
>>> @@ -689,6 +744,10 @@ int netload(char *buffer, int len, char *args_fs, int alen)
>>>  	/* Do the TFTP load and print error message if necessary */
>>>  	rc = tftp_load(&fn_ip, buffer, len);
>>>  
>>> +	if (rc <= 0 && !obp_tftp_args.filename[0]) {
>>
>> .... obp_tftp_args.filename == "" in this particular case as tftp_load()
>> does not seem to store the filename if loading fails.
>>
>>> +		rc = net_pxelinux_cfg_load(&fn_ip, buffer, len, own_mac);
>>> +	}
> 
> Sorry, I don't quite understand what you want to say here?
> 
> How big is your pxelinux.cfg/default file in this case? Was it smaller
> than 2047 bytes, so that the above error message is not right? Or do
> you rather complain that SLOF is trying to boot via pxelinux at all in
> case you've set a bootfile name?

I thought we should stop and not try PXE if a filename is set. But now I
wonder what do others do in this case? Keep trying all PXE options if they
are present (these 209 and 210 DHCP options)?


-- 
Alexey


More information about the SLOF mailing list