[ipxe-devel] Feedback of tests iPXE with UEFI

Rémi Palancher remi at rezib.org
Tue Sep 16 19:15:19 BST 2014


Hi developers,

I'm giving a try to iPXE for booting RHEL installer (versions 6.5 and 7.0) on
UEFI based server (IBM System x3550 M4) with Intel 8086:1521 Gigabit Ethernet
controllers.

So I compiled iPXE EFI image for this controller:

  $ make bin-x86_64-efi/80861521.efi

This image is downloaded by the server through TFTP and then it downloads the
following iPXE config through HTTP:

#!ipxe
initrd http://10.89.89.60/disk/rhel6.5/initrd.img
kernel http://10.89.89.60/disk/rhel6.5/vmlinuz
boot

Both the kernel and the initrd are those officially delivered by RedHat in
their ISO (in images/pxeboot/ directory).

But unfortunately, it finally hangs on these errors:

http://10.89.89.60/disk/rhel6.5/initrd.img... ok
http://10.89.89.60/disk/rhel6.5/vmlinuz... ok
Could not select: Exec format error (http://ipxe.org/2e008081)
Could not boot image: Exec format error (http://ipxe.org/2e008081)
No more network devices

(yep, I gave a look to the provided URL and checked the common errors.)

With the RHEL 7.0 installer (similar setup, just different URLs in iPXE
config file), the kernel and the initrd are loaded properly:

UEFI PXE PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(6CAE8B54091A,0x0)/IPv4(0.0.0.0,0x0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)

>>Start PXE over IPv4.
  Station IP address is 10.89.89.72

  Server IP address is 10.89.89.61
  NBP filename is 80861521.efi
  NBP filesize is 120928 Bytes
 Downloading NBP file...

  Succeed to download NBP file.

 Downloading NBP file...

  Succeed to download NBP file.

iPXE initialising  devices...ok



iPXE 1.0.0+(5de37) -- Open Source Network Boot Firmware -- http://ipxe.org
Features: HTTP DNS TFTP EFI Menu

net0: 6c:ae:8b:54:09:1a using i350 on PCI06:00.0 (open)
  [Link:up, TX:0 TXE:0 RX:0 RXE:0]
Configuring (net0 6c:ae:8b:54:09:1a)... ok
net0: 10.89.89.72/255.255.248.0
Next server: 10.89.89.61
Filename: http://10.89.89.60/ipxe.cfg
http://10.89.89.60/ipxe.cfg... ok
http://10.89.89.60/disk/rhel7/initrd.img... ok
http://10.89.89.60/disk/rhel7/vmlinuz... ok

But it finally fails with a kernel panic when trying to mount the root FS from
of the initrd:

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0-123.el7.x86_64 (mockbuild at x86-017.build.eng.bos.redhat.com) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Mon May 5 11:16:57 EDT 2014
[    0.000000] Command line: vmlinuz ip=eth0:dhcp ipv6.disable=1 console=ttyS0,115200n8r ksdevice=eth0 ks=http://10.89.89.60/disk/rhel7/kickstart.ks autostep net.ifnames=0 biosdevname=0
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000006bfff] usable
[    0.000000] BIOS-e820: [mem 0x000000000006c000-0x000000000006cfff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000000006d000-0x000000000009efff] usable
[ ... snip quite a lot of stuff ... ]
[    6.186652] List of all partitions:
[    6.190550] No filesystem could mount root, tried: [    6.191779] usb 2-1.1.5: New USB device found, idVendor=04b3, idProduct=4010
[    6.191781] usb 2-1.1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    6.191782] usb 2-1.1.5: Product: RNDIS/Ethernet Gadget
[    6.191783] usb 2-1.1.5: Manufacturer: IBM
[    6.222641] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    6.231874] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.10.0-123.el7.x86_64 #1
[    6.239940] Hardware name: IBM IBM System x3550 M4: -[7914FT1]-/00AM544, BIOS -[D7E142AUS-1.71]- 07/30/2014
[    6.250819]  ffffffff817dfe50 00000000fbfdf0ee ffff880469ccfd60 ffffffff815e19ba
[    6.259116]  ffff880469ccfde0 ffffffff815db549 ffffffff00000010 ffff880469ccfdf0
[    6.267414]  ffff880469ccfd90 00000000fbfdf0ee 00000000fbfdf0ee ffff880469ccfe00
[    6.275710] Call Trace:
[    6.278444]  [<ffffffff815e19ba>] dump_stack+0x19/0x1b
[    6.284184]  [<ffffffff815db549>] panic+0xd8/0x1e7
[    6.289535]  [<ffffffff81a0755d>] mount_block_root+0x2a1/0x2b0
[    6.296048]  [<ffffffff81a075bf>] mount_root+0x53/0x56
[    6.301786]  [<ffffffff81a076fe>] prepare_namespace+0x13c/0x174
[    6.308398]  [<ffffffff81a071cb>] kernel_init_freeable+0x203/0x22a
[    6.315301]  [<ffffffff81a0692b>] ? do_early_param+0x88/0x88
[    6.321624]  [<ffffffff815c3930>] ? rest_init+0x80/0x80
[    6.327458]  [<ffffffff815c393e>] kernel_init+0xe/0x180
[    6.333295]  [<ffffffff815f206c>] ret_from_fork+0x7c/0xb0
[    6.339325]  [<ffffffff815c3930>] ? rest_init+0x80/0x80

I would be glad if this feedback could be helpful in any way! So, if you need
any kind of information, or if you want me to proceed with further tests,
please ask, I would be pleased to help.

As a side note, fortunately, undionly.kpxe with legacy BIOS supports works like
a charm on this server. Let me thank you for your awesome work on iPXE.

Best,
--
Rémi Palancher


More information about the ipxe-devel mailing list