iPXE - open source boot firmware for VirtualBox

This is the new open source boot firmware for VirtualBox default
Ethernet controller (Intel Corporation 82540EM Gigabit Ethernet
Controller [8086:100e]) set by virtualbox scripts.

This is the leading open source network boot firmware, which
provides a full PXE implementation enhanced with additional features
such as boot from a web server via HTTP which now used by the
Fuel 8.0.

Change-Id: I0b9a3f6f80ba88eb5e7f7db75834f65916af6f66
Depends-On: I26b62414e1cc0193c75f954ed7ed76570a4bf2f6
Doc-Impact: ops-guide
Closes-Bug: 1527474
This commit is contained in:
Maksim Malchuk 2015-12-18 08:06:52 +03:00
parent c5cbe939d6
commit 8436205d92
4 changed files with 65 additions and 0 deletions

View File

@ -70,6 +70,16 @@ if [ "$extpacks" -le 0 ]; then
fi
echo "OK"
# Check for VirtualBox iPXE firmware
echo -n "Checking for VirtualBox iPXE firmware..."
if [ -z $pxe_path ]; then
echo "VirtualBox iPXE firmware is not found. Please put it under the 'drivers' directory."
exit 1
fi
execute VBoxManage setextradata global VBoxInternal/Devices/pcbios/0/Config/LanBootRom "$(pwd)/$pxe_path" 2>/dev/null
echo "OK"
echo "Going to use iPXE boot firmware file $pxe_path"
# Check for ISO image to be available
echo -n "Checking for Mirantis OpenStack ISO image... "
if [ -z $iso_path ]; then

View File

@ -20,6 +20,9 @@ source ./functions/shell.sh
# Get the first available ISO from the directory 'iso'
iso_path=`ls -1t iso/*.iso 2>/dev/null | head -1`
# get the first available iPXE boot firmware from the directory 'drivers'
pxe_path=`ls -1t drivers/*.isarom 2>/dev/null | head -1`
# Every Mirantis OpenStack machine name will start from this prefix
vm_name_prefix=fuel-

BIN
drivers/8086100e.isarom Normal file

Binary file not shown.

52
drivers/README.md Normal file
View File

@ -0,0 +1,52 @@
# iPXE - open source boot firmware for VirtualBox
This is a prebuilt binary version of **iPXE** as an **VirtualBox PXE ROM**.
The **iPXE** source code is maintained in a git repository. You can check out a copy of the code using:
```
git clone git://git.ipxe.org/ipxe.git
```
and build it using:
```
cd ipxe/src
make
```
You will need to have at least the following packages installed in order to build **iPXE**:
```
* gcc (version 3 or later)
* binutils (version 2.18 or later)
* make
* perl
* syslinux (for isolinux, only needed for building .iso images)
* liblzma or xz header files
* zlib, binutils and libiberty header files (only needed for EFI builds)
```
to build this **Intel 82540EM Gigabit Ethernet PXE ROM** for VirtualBox use:
```
make CONFIG=vbox bin/8086100e.isarom
```
Max size of a VirtualBox ROM is 56KB (57344 bytes).
There should be no need to pad the image as long as the binary is smaller or equal to this size.
To use the ROM in VirtualBox you need to enable it using this command:
```
vboxmanage setextradata global VBoxInternal/Devices/pcbios/0/Config/LanBootRom \
/absolute/path/to/8086100e.isarom
```
NB: If you build the ROM using the .rom prefix then it'll be built as a PCI
ROM, which won't work properly in VirtualBox. The error message you'll see
is "No more network devices", which is somewhat confusing. If you enter the
shell and use the "autoboot" command things will work as intended. Remember
to always build as a .isarom to avoid this issue.
You can find **iPXE** at the official site of the project: <http://ipxe.org/>.