[ipxe-devel] iPXE finds no PCI devices in Nitro-based Amazon VMs
Dominique Lefevre
domingolefevre at gmail.com
Thu Mar 26 06:03:46 UTC 2020
Hi,
I've tried to run iPXE in Amazon VMs, and it seems to have a problem
enumerating PCI devices in nitro-based instances.
I've built an ipxe.usb image this way:
$ make bin/ipxe.usb CONFIG=cloud \
DEBUG=pci,ena,dhcp,iscsi \
EMBED=embed-stage0
As of now, embed-stage0 is an empty script (it just contains #!ipxe).
iPXE version is bdf0e029ae8c9a0e173d5988ee64ff910538af53.
When run in Xen-based and Nitro-based instances, ipxe.usb produces two
very different outputs.
In a Xen-based t2.micro instance I see the following printed to the console:
> Booting from Hard Disk...
> iPXE initialising devices...0000:00:00.0 (8086:1237 class 060000) has no driver
> 0000:00:01.0 (8086:7000 class 060100) has no driver
> 0000:00:01.1 (8086:7010 class 010180) has no driver
> 0000:00:01.3 (8086:7113 class 068000) has no driver
> 0000:00:02.0 (1013:00b8 class 030000) has no driver
> 0000:00:03.0 (5853:0001) has driver "hvm"
> 0000:00:03.0 has mem f2000000 io c000 irq 5
> 0000:00:03.0 latency timer is unreasonably low at 0. Setting to 32.
> ok
>
>
>
> iPXE 1.20.1+ (gbdf0e) -- Open Source Network Boot Firmware -- http://ipxe.org
> blah-blah-blah
So far so good. PCI devices get enumerated, and iPXE recognises a
device that interfaces with Xen.
Booting the same image in a t3.micro instance gives me the following:
> Booting from Hard Disk 0...
> iPXE initialising devices...ok
>
>
>
> iPXE 1.20.1+ (gbdf0e) -- Open Source Network Boot Firmware -- http://ipxe.org
> Features: DNS HTTP iSCSI TFTP SRP AoE ELF MBOOT PXE bzImage menu PXEXT
> No bootable device. Retrying in 60 seconds.
As if PCI devices were not there!
I've also tried another nitro-based instance type (c5.large), and
tried booting bin-x86_64-pcbios/ipxe.usb instead of a 32 bit version.
Still no PCI devices were found.
Amazon's ena is available in nitro-based EC2 instances only. Since
iPXE has a driver for ena, there certainly is a way to run iPXE in
nitro-based VMs. How did you do that? Is there a build option that I
have missed?
Thanks in advance, and best regards,
Dominique.
More information about the ipxe-devel
mailing list