Project

General

Profile

Bug #7046

Chainloading iPXE fails on Broadcom NICs

Added by David Schmitt almost 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Difficulty:
Triaged:
No
Bugzilla link:
Pull request:
Team Backlog:
Fixed in Releases:
Found in Releases:

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.

Associated revisions

Revision 3393cc9f (diff)
Added by Dominic Cleal almost 5 years ago

fixes #7046 - add per-host "full" image containing OS bootloader, without iPXE

Revision 20fab1a6 (diff)
Added by Dominic Cleal almost 5 years ago

refs #7046 - cache installation media for full host images

History

#1 Updated by David Schmitt almost 5 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.

#2 Updated by Dominic Cleal almost 5 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.

#3 Updated by David Schmitt almost 5 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.

#4 Updated by Dominic Cleal almost 5 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.

#5 Updated by Dominic Cleal almost 5 years ago

Oh never mind, it's isolinux which doesn't understand Joliet. I'll have to think of something.

#6 Updated by Dominic Cleal almost 5 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.

#7 Updated by Dominic Cleal almost 5 years ago

Bootdisk 3.2.0 is being released now with this feature.

Also available in: Atom PDF