I'm sure I'm doing something wrong here, but I would appreciate a pointer. I have tried to rtfm, but find the docs a little sparse wrt pxechain.comand gpxelinux.0. I am trying to setup a pxe chain server (aka chainloading?) where one of the entries on one pxe server forwards to another (cobbler, in this case). I know this works fine with traditional pxelinux.0 images, but it's failing when I try to forward to a gpxelinux.0 image. We had switched to using gpxelinux.0 (specified via DHCP option 67) so that we can use http protocol for fetching the kernel and initrd images. This provides significant performance improvements over UDP for us when we're booting from networks separated by many routers, firewalls, etc. I am making the assumption here that I need to be consistently using gpxelinux.0 here (i.e. both in the initial pxe server and in the second-in-chain server) in order for the http URLs to work. The problem is that this works fine when I forward to /pxelinux.0 image but not when I forward to /gpxelinux.0. For the sake of example/clarification: - My first pxe server is 192.168.1.200 - My cobbler server is 192.168.1.201 Both systems are running syslinux 4.06. DHCP has next-server set to 192.168.1.200 Option 67 sets the pxe filename to "/gpxelinux.0" On 192.168.1.200 /tftpboot/pxelinux.cfg/default file looks like: <snip> label cobbler kernel pxechain.com append 192.168.1.201::/gpxelinux.0 The first system loads up fine, but selecting "cobbler" starts loading the second gPXE stuff as expected (lots of output related to network information and environment) but then just hangs at this line: "Trying to load: pxelinux.cfg/<uuid>" Replacing "192.168.1.201::/gpxelinux.0" with "192.168.1.201::/pxelinux.0" works -- in that the next server loads --, but then it seems to silently fail/stop after downloading the initrd.img file (indeed, over http, which was surprising to me that this works at all since I chainloaded /pxelinux.0 ...). Perhaps this failure after the download is a separate issue. I'm sure the root here is that I don't understand exactly what gpxelinux.0 is doing, but again any tips appreciated. Thanks, Hans
On Wed, Aug 7, 2013 at 3:58 PM, Hans Lellelid <hans at velum.net> wrote:> I'm sure I'm doing something wrong here, but I would appreciate a pointer. > I have tried to rtfm, but find the docs a little sparse wrt > pxechain.comand gpxelinux.0. > > I am trying to setup a pxe chain server (aka chainloading?) where one of > the entries on one pxe server forwards to another (cobbler, in this case). > I know this works fine with traditional pxelinux.0 images, but it's > failing when I try to forward to a gpxelinux.0 image. > > We had switched to using gpxelinux.0 (specified via DHCP option 67) so that > we can use http protocol for fetching the kernel and initrd images. This > provides significant performance improvements over UDP for us when we're > booting from networks separated by many routers, firewalls, etc. I am > making the assumption here that I need to be consistently using gpxelinux.0 > here (i.e. both in the initial pxe server and in the second-in-chain > server) in order for the http URLs to work. > > The problem is that this works fine when I forward to /pxelinux.0 image but > not when I forward to /gpxelinux.0. > > For the sake of example/clarification: > - My first pxe server is 192.168.1.200 > - My cobbler server is 192.168.1.201 > > Both systems are running syslinux 4.06. > > DHCP has next-server set to 192.168.1.200 > Option 67 sets the pxe filename to "/gpxelinux.0" > > On 192.168.1.200 /tftpboot/pxelinux.cfg/default file looks like: > <snip> > label cobbler > kernel pxechain.com > append 192.168.1.201::/gpxelinux.0 > > The first system loads up fine, but selecting "cobbler" starts loading the > second gPXE stuff as expected (lots of output related to network > information and environment) but then just hangs at this line: > > "Trying to load: pxelinux.cfg/<uuid>" > > Replacing "192.168.1.201::/gpxelinux.0" with "192.168.1.201::/pxelinux.0" > works -- in that the next server loads --, but then it seems to silently > fail/stop after downloading the initrd.img file (indeed, over http, which > was surprising to me that this works at all since I chainloaded /pxelinux.0 > ...). Perhaps this failure after the download is a separate issue. > > I'm sure the root here is that I don't understand exactly what gpxelinux.0 > is doing, but again any tips appreciated.After my experiences with writing/testing pxechn.c32, I'm not surprised that this happens. What version(s) have you used? One of the goals of lpxelinux.0 is to replace gpxelinux.0 for HTTP/FTP fetch capability. This is available in versions 5.10+ and 6.00+ (BIOS only in 6.00+) however it still needs more testing/debugging as there are a few known issues (listed in bugzilla.syslinux.org ). -- -Gene
On Wed, Aug 7, 2013 at 7:26 PM, Gene Cumm <gene.cumm at gmail.com> wrote:> <snip> > > After my experiences with writing/testing pxechn.c32, I'm not > surprised that this happens. What version(s) have you used? > > One of the goals of lpxelinux.0 is to replace gpxelinux.0 for HTTP/FTP > fetch capability. This is available in versions 5.10+ and 6.00+ (BIOS > only in 6.00+) however it still needs more testing/debugging as there > are a few known issues (listed in bugzilla.syslinux.org ). > >I first tried this setup with version 4.02 (then with a pxehain.com from 4.04 [?] pulled in to get around known bug, which probably was a dumb idea) and then more recently with syslinux 4.06 on both systems. I'll happily try newer versions if they might work -- and give lpxelinux.0 a shot if that'll work w/ my (vmware) systems too. Hans