[ipxe-devel] [gPXE] Static IP address setting in gPXE

何闯 justhechuang at 163.com
Thu Mar 31 02:31:43 UTC 2011

Thanks very much indeed!!!
At 2011-03-31,"Michael Brown" <mbrown at fensystems.co.uk> wrote:
>On Thursday 31 Mar 2011 02:42:36 何闯 wrote:
>> For some reason, I want to set a static IP address for my gPXE bootloader.
>> I first run a PXENV_GET_CACHED_INFO call in pxeprefix.S, and store the
>>  result in pxe_cached_dhcpack_data
>> then I coded such( dhcp call is replaced by it ):
>> ////////////////////////////////////BEGIN//////////////////////////////////
>> //////////////////////// struct settings *parent;
>>     union pxe_cached_info *info;
>>     struct dhcp_packet pxe_cached_dhcpack;
>>     info = (union pxe_cached_info
>>  *)phys_to_user(__from_data16(&pxe_cached_dhcpack_data));
>>  info->dhcphdr.ciaddr= inet_addr("");  //To set a static IP
>>  address for my bootloader parent = netdev_settings( netdev );
>>     dhcppkt_init( &pxe_cached_dhcpack,&info->dhcphdr, sizeof(*info));
>>    register_settings( &pxe_cached_dhcpack.settings, parent );
>> ////////////////////////////////////END////////////////////////////////////
>> /////////////////////
>> However, when I call route command in gPXE shell,  it seems that the IP
>>  address for the netdev still remains unchanged. see the picture:
>There is a much, much, much easier way to do this!  Use the "set" command:
>  set net0/ip
>You can find documentation at http://ipxe.org/cmd/set - including an example of 
>configuring a static IP address.
>You can embed a script to do this.  Create a file "static.ipxe" containing 
>something like:
>  #!ipxe
>  set net0/ip
>  autoboot
>and build iPXE using
>  make bin/undionly.kpxe EMBEDDED_IMAGE=static.ipxe
>Scripts (and embedded scripts) are documented at http://ipxe.org/scripting
>(Redirected to the ipxe-devel mailing list; please use iPXE instead of gPXE, 
>since iPXE is actively maintained.)

More information about the ipxe-devel mailing list