Bug #7046
closedChainloading iPXE fails on Broadcom NICs
Description
Just a heads up, for everybody who has recent HP Hardware (like the ProLiant BL465c Gen8 servers) or anything else using broadcom chips (also called netxtreme) and tries to use the bootdisk plugin.
iPXE will hang with the message "Try to free Memory without Signature".
According to https://github.com/puppetlabs/Razor/issues/41 (referenced from http://lists.ipxe.org/pipermail/ipxe-devel/2012-February/001232.html) this is triggered by chainloading iPXE through pxelinux/syslinux/isolinux.
According to my tests, that is still the case with the newest syslinux (6.02) and the current ipxe HEAD.
I've tried to create a workaround using a self-built undionly.lkrn instead of ipxe.lkrn, which indeed booted further, but still failed to detect the NIC in the end. I assume that's because isolinux is not a real PXE, which would provide the UNDI.
I guess a way out would be to skip ipxe and directly burn the installer kernel image and initrd into the bootiso. This would reduce the flexiblity (many updates would require re-creating the ISO), but - iff it works - would make installation on a wide range of H/W possible.
Updated by David Schmitt over 10 years ago
Update: I've successfully booted this cursed H/W by creating the following bootimage by hand:
[david@builder ~]$ find bootiso_tester_SL6.5_2014-08-13/ bootiso_tester_SL6.5_2014-08-13/isolinux.bin bootiso_tester_SL6.5_2014-08-13/initrd bootiso_tester_SL6.5_2014-08-13/kernel bootiso_tester_SL6.5_2014-08-13/isolinux.cfg [david@builder ~]$ cat bootiso_tester_SL6.5_2014-08-13/isolinux.cfg default linux label linux kernel /kernel initrd /initrd append initrd=/initrd ks=http://builder.example.com:80/unattended/provision?token=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee ksdevice=00:11:22:33:44:55 network kssendmac ip=10.0.0.100 netmask=255.255.255.0 gateway=10.0.0.1 dns=10.0.0.1 [david@builder ~]$ genisoimage -o bootiso_tester_SL6.5_2014-08-13.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table bootiso_tester_SL6.5_2014-08-13/ I: -input-charset not specified, using utf-8 (detected in locale settings) Size of boot image is 4 sectors -> No emulation 26.29% done, estimate finish Wed Aug 13 09:46:15 2014 52.46% done, estimate finish Wed Aug 13 09:46:15 2014 78.72% done, estimate finish Wed Aug 13 09:46:15 2014 Total translation table size: 2048 Total rockridge attributes bytes: 0 Total directory bytes: 292 Path table size(bytes): 10 Max brk space used 0 19072 extents written (37 MB) [david@builder ~]$
'kernel' and 'initrd' are the respective files from the Installation Media.
The isolinux.cfg is modeled after the Kickstart PXELinux template. This specific host has the static network info here, due to local circumstances.
I do understand that this image is much less flexible than the current implementation, but on the other hand, it actually boots.
Updated by Dominic Cleal over 10 years ago
Seems a reasonable tradeoff :)
I think I could add an OS-specific host image in as a third type so it can be used on hardware that has problems with the generic host image.
Updated by David Schmitt over 10 years ago
That would be awesome.
I don't know whether it is really necessary to put the token into the ISO, but if it is, it might be good to add a expiry date into the downloaded iso filename, and/or a big, fat warning in the docs.
Updated by Dominic Cleal over 10 years ago
Would you mind checking if naming the initrd and vmlinuz something more complicated, and building the image with Joliet extensions works? e.g. boot/CentOS-6.5-x86_64-initrd.img and then add -J
to genisoimage.
It'd save me trying to change the names that the template would usually refer to.
Updated by Dominic Cleal over 10 years ago
Oh never mind, it's isolinux which doesn't understand Joliet. I'll have to think of something.
Updated by Dominic Cleal about 10 years ago
- Status changed from New to Closed
- Assignee set to Dominic Cleal
- % Done changed from 0 to 100
Fixed in 3393cc9fe37934a5087b4cb5f5e850140bda1063, will release soon once it's been translated.
Updated by Dominic Cleal about 10 years ago
Bootdisk 3.2.0 is being released now with this feature.