[ipxe-devel] "No iBFT detected" on Intel NUC

Floris Bos bos at je-eigen-domein.nl
Sun Sep 28 14:54:14 BST 2014


On 09/28/2014 01:36 AM, Floris Bos wrote:
> Using undionly.kkpxe, with a script that registers an iSCSI SAN and 
> then attempts a network installation of CentOS 6:
>
> ==
> set keep-san 1
> set skip-san-boot 1
> sanboot 
> iscsi:192.168.178.99::3260::iqn.2000-01.com.synology:DiskStation.diskless
> kernel http://myserver/images/pxeboot/vmlinuz vga=normal 
> ks=http://myserver/kickstart
> initrd http://myserver/images/pxeboot/initrd.img
> boot
> ==
>
> Does not work on an Intel NUC. CentOS complains it cannot find any 
> storage, and going to console and entering "dmesg |grep -i ibft" gives 
> "No iBFT detected"
>
> The same does work fine when using Virtualbox and Vmware VMs for testing.
> "dmesg |grep -i ibft" gives "iBFT detected at 0x8eff0" there.

Did some more testing.

It seems the iBFT gets placed too low in memory.
The data MUST be located between 512K and 1024K according to the iBFT 
specification, for the OS to find it there.

I added the following line to int13_describe() in int13.c to see where 
it gets placed:

==
DBGC( int13, "Segment 0x%x Offset 0x%x\n", xbft_address.segment, 
xbft_address.offset);
==

And when run on the NUC it prints out: "Segment 0x70db Offset 0x1a40" 
which is around 457 K



Does end up at a higher address when running iPXE under Virtualbox, 
which explains why it does work there.


Yours sincerely,

Floris Bos



More information about the ipxe-devel mailing list