Table of Contents

BKO and static networking issues

Problem

Though gpxe works fine with static networking information, problem is with linux destributions. I have modified all linux distributions to use udhcpc for getting networking configuration by using DHCP. So in current setup, the linux will boot, but it will never get networking configuration for static network and hence, it will never progress.

Possible solution 1 : manual configuration

Ask user to enter the networking configuration. But this is very lame way of doing it.

Possible solution 2 : use gpxe configuration

As gpxe is have properly working networking configuration, we can reuse it. The problem in this is that,

  1. how do gpxe passes the networking configuration information to pxelinux.0?
  2. How do pxelinux.0 passes this information to linux kernel?

Passing information from pxelinux.0 to linux kernel

Linux kernel can take parameter which will have network configuration info.

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>

Refer to Documentation/filesystems/nfsroot.txt for more details on these parameters
The unknown factor here is that, if information is with pxelinux.0, and parameters are taken from config file. So, I need a way by which configuration file can inform pxelinux.0 to fill in the <client-ip>, <gw-ip>, <netmask> with values it is having.

I would also like to pass on the DNS ip which is not an option above. I may add one more parameter, or reuse <server-ip> as <dns-ip>

Passing information from gpxe to pxelinux.0

I don't have any clue about this part. This part may prove to be tricky. Following are the parameters that I need to pass on.

  1. net0/ip
  2. net0/netmask
  3. net0/gateway
  4. net0/dns

Again, I need to pass the values of these variables, I hope that gpxe is capable of doing this.

Solution

IPAPPEND worked for me without any problems. Honestly, I do not understand how it works, but I am using IPAPPEND 3 (because I have been told to use this option). Unfortunately, the documentation related to IPAPPEND is quite hard to find. Any pointers on how exactly IPAPPEND works will be helpful.

Small drawback of this solution is that, the DNS entry is not passed. So, I won't be able to use URL's and I have to stick to IP only.