[gPXE] Static IP address setting in gPXE
Gene Cumm
gene.cumm at gmail.com
Wed Mar 30 22:21:39 EDT 2011
2011/3/30 何闯 <justhechuang at 163.com>
>
> Dear all,
> 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:
>
> What's wrong is it?
> yours,
> soforth
This can be done from a script and is probably more reliable.
http://etherboot.org/wiki/scripting and
http://etherboot.org/wiki/commandline should provide reference.
Without an embedded script (
http://etherboot.org/wiki/scripting#embedded_images ), gPXE normally
executes autoboot ( http://etherboot.org/wiki/commandline#other ).
--
-Gene
"No one ever says, 'I can't read that ASCII(plain text) e-mail you sent me.'"
More information about the gPXE
mailing list