Browse Source

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
Maksim Malchuk 3 years ago
parent
commit
8436205d92
4 changed files with 65 additions and 0 deletions
  1. 10
    0
      actions/prepare-environment.sh
  2. 3
    0
      config.sh
  3. BIN
      drivers/8086100e.isarom
  4. 52
    0
      drivers/README.md

+ 10
- 0
actions/prepare-environment.sh View File

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

+ 3
- 0
config.sh View File

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

BIN
drivers/8086100e.isarom View File


+ 52
- 0
drivers/README.md View File

@@ -0,0 +1,52 @@
1
+# iPXE - open source boot firmware for VirtualBox
2
+
3
+This is a prebuilt binary version of **iPXE** as an **VirtualBox PXE ROM**.
4
+
5
+The **iPXE** source code is maintained in a git repository. You can check out a copy of the code using:
6
+
7
+```
8
+git clone git://git.ipxe.org/ipxe.git
9
+```
10
+
11
+and build it using:
12
+
13
+```
14
+cd ipxe/src
15
+make
16
+```
17
+
18
+You will need to have at least the following packages installed in order to build **iPXE**:
19
+
20
+```
21
+* gcc (version 3 or later)
22
+* binutils (version 2.18 or later)
23
+* make
24
+* perl
25
+* syslinux (for isolinux, only needed for building .iso images)
26
+* liblzma or xz header files
27
+* zlib, binutils and libiberty header files (only needed for EFI builds)
28
+```
29
+
30
+to build this **Intel 82540EM Gigabit Ethernet PXE ROM** for VirtualBox use:
31
+
32
+```
33
+make CONFIG=vbox bin/8086100e.isarom
34
+```
35
+
36
+Max size of a VirtualBox ROM is 56KB (57344 bytes).  
37
+There should be no need to pad the image as long as the binary is smaller or equal to this size.
38
+
39
+To use the ROM in VirtualBox you need to enable it using this command:
40
+
41
+```
42
+vboxmanage setextradata global VBoxInternal/Devices/pcbios/0/Config/LanBootRom \
43
+  /absolute/path/to/8086100e.isarom
44
+```
45
+
46
+NB: If you build the ROM using the .rom prefix then it'll be built as a PCI  
47
+ROM, which won't work properly in VirtualBox.  The error message you'll see  
48
+is "No more network devices", which is somewhat confusing.  If you enter the  
49
+shell and use the "autoboot" command things will work as intended.  Remember  
50
+to always build as a .isarom to avoid this issue.
51
+
52
+You can find **iPXE** at the official site of the project: <http://ipxe.org/>.

Loading…
Cancel
Save