[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("192.168.117.144"); //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 192.168.117.144
>
>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 192.168.117.144
> 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.)
>
>Michael
More information about the ipxe-devel
mailing list