diff --git a/actions/prepare-environment.sh b/actions/prepare-environment.sh index 91f3acc..a7bc5da 100755 --- a/actions/prepare-environment.sh +++ b/actions/prepare-environment.sh @@ -73,12 +73,14 @@ 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 + echo "SKIP" + echo "VirtualBox iPXE firmware is not found. Used standard firmware from the VirtualBox Extension Pack." + execute VBoxManage setextradata global VBoxInternal/Devices/pcbios/0/Config/LanBootRom +else + 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" 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... " diff --git a/config.sh b/config.sh index 8cca902..c2bfcff 100755 --- a/config.sh +++ b/config.sh @@ -21,7 +21,7 @@ source ./functions/shell.sh 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` +pxe_path=`ls -1t drivers/*.*rom 2>/dev/null | head -1` # Every Mirantis OpenStack machine name will start from this prefix vm_name_prefix=fuel- diff --git a/drivers/8086100e.isarom b/drivers/Intel 82540EM Gigabit Ethernet [8086100e]/8086100e.isarom similarity index 100% rename from drivers/8086100e.isarom rename to drivers/Intel 82540EM Gigabit Ethernet [8086100e]/8086100e.isarom diff --git a/drivers/Intel 82540EM Gigabit Ethernet [8086100e]/8086100e.mrom b/drivers/Intel 82540EM Gigabit Ethernet [8086100e]/8086100e.mrom new file mode 100644 index 0000000..624a709 Binary files /dev/null and b/drivers/Intel 82540EM Gigabit Ethernet [8086100e]/8086100e.mrom differ diff --git a/drivers/Intel 82540EM Gigabit Ethernet [8086100e]/8086100e.rom b/drivers/Intel 82540EM Gigabit Ethernet [8086100e]/8086100e.rom new file mode 100644 index 0000000..04475c1 Binary files /dev/null and b/drivers/Intel 82540EM Gigabit Ethernet [8086100e]/8086100e.rom differ diff --git a/drivers/Intel 82540EM Gigabit Ethernet [8086100e]/README.md b/drivers/Intel 82540EM Gigabit Ethernet [8086100e]/README.md new file mode 100644 index 0000000..253f022 --- /dev/null +++ b/drivers/Intel 82540EM Gigabit Ethernet [8086100e]/README.md @@ -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: . diff --git a/drivers/README.md b/drivers/README.md index 253f022..e9860d6 100644 --- a/drivers/README.md +++ b/drivers/README.md @@ -1,52 +1 @@ -# 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: . +Put ROM firmware in this folder