Brian H. Nelson
2009-Jan-21 20:53 UTC
[syslinux] Problem with Symantec's UNDI driver and PXELINUX
Hello, We use undi_drv.exe that is provided with Symantec Ghost Enterprise. This driver loads a UNDI PXE stack into memory. It, along with a UNDI packet driver are bundled into a 1.44MB disk image that we use for netbooting computer lab machines into the ghost client. This is done with pxelinux. This driver has been working fine for a couple years now. Recently, I upgraded the pxelinux.0 to the current version, and now the UNDI driver no longer works. I get this error (no idea what it means): "Load undi driver failed with status code 0xC8" After playing around with different versions of syslinux, it seems that the driver works correctly with syslinux <= 3.63 and is broken with syslinux >= 3.70. Note that we are NOT using the 'keeppxe' option (not needed). Could this be a bug in syslinux? I can provide the driver file if needed (it's 27KB). It is their 'universal' driver and should work on any PXE enabled NIC. Thanks, -Brian -- --------------------------------------------------- Brian H. Nelson Youngstown State University System Administrator Media and Academic Computing bnelson[at]cis.ysu.edu ---------------------------------------------------
H. Peter Anvin
2009-Jan-22 01:42 UTC
[syslinux] Problem with Symantec's UNDI driver and PXELINUX
Brian H. Nelson wrote:> > "Load undi driver failed with status code 0xC8" > > After playing around with different versions of syslinux, it seems that > the driver works correctly with syslinux <= 3.63 and is broken with > syslinux >= 3.70. Note that we are NOT using the 'keeppxe' option (not > needed). > > Could this be a bug in syslinux? I can provide the driver file if needed > (it's 27KB). It is their 'universal' driver and should work on any PXE > enabled NIC. >I don't know what they do, but there definitely isn't a guaranteed way to load the UNDI driver once it has been removed from memory. There are systems where it can be made to work, but it is definitely nothing that is guaranteed. I know some of those systems rely on the UNDI stack still being present in memory, for example; others will try to read it out of the PCI ROM (which doesn't work for LOM or non-PCI systems.) Status code 0xc5 is PXENV_STATUS_LOADER_BAD_UNDI_ROMID, which implies that it is trying to reinitialize UNDI from ROM somehow and failing. Using the keeppxe option is the right way to do this kind of stuff; without knowing exactly what the Symantec driver is trying to do I have absolutely no idea how even begin to approach this. I also note that you're asking here rather than asking Symantec... -hpa