Browse Source

Tuning iPXE disk builds

* Switch to using xenial for iPXE builds
* Add workaround for arm64 builds on xenial
* Tune EFI ISO images so that they work on other platforms
  (https://github.com/antonym/netboot.xyz/pull/341)
* Disable OSCP checks as they can cause latency or connectivity
  issues
Antony Messerli 5 years ago
parent
commit
bccccd9d78
3 changed files with 15 additions and 6 deletions
  1. 3 3
      .travis.yml
  2. 1 0
      ipxe/local/crypto.h
  3. 11 3
      script/prep-release.sh

+ 3 - 3
.travis.yml

@@ -1,12 +1,12 @@
 sudo: true
-dist: trusty
+dist: xenial
 language: c
 before_install:
 - openssl aes-256-cbc -K $encrypted_7d306b01dc1f_key -iv $encrypted_7d306b01dc1f_iv -in script/secrets.tar.enc -out script/secrets.tar -d
 - tar xvf script/secrets.tar -C script/
 - sudo apt-get update -qq
-- sudo apt-get install -qq binutils-dev binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu genisoimage liblzma-dev syslinux 
-- sudo pip install awscli tornado==4.5.3
+- sudo apt-get install -qq binutils-dev binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu genisoimage liblzma-dev syslinux isolinux
+- sudo pip install awscli tornado
 script:
 - "./script/prep-release.sh"
 deploy:

+ 1 - 0
ipxe/local/crypto.h

@@ -0,0 +1 @@
+#undef OCSP_CHECK

+ 11 - 3
script/prep-release.sh

@@ -48,12 +48,20 @@ cp config/local/general.h.efi config/local/general.h
 make clean
 make bin-x86_64-efi/ipxe.efi \
 EMBED=../../ipxe/disks/netboot.xyz TRUST=ca-ipxe-org.crt,ca-netboot-xyz.crt
-mkdir -p efi_tmp/EFI/BOOT/
-cp bin-x86_64-efi/ipxe.efi efi_tmp/EFI/BOOT/bootx64.efi
-genisoimage -o ipxe.eiso efi_tmp
+mkdir -p efi_tmp
+dd if=/dev/zero of=efi_tmp/ipxe.img count=2880
+mformat -i efi_tmp/ipxe.img -m 0xf8 -f 2880
+mmd -i efi_tmp/ipxe.img ::efi ::efi/boot
+mcopy -i efi_tmp/ipxe.img bin-x86_64-efi/ipxe.efi ::efi/boot/bootx64.efi
+genisoimage -o ipxe.eiso -eltorito-alt-boot -e ipxe.img -no-emul-boot efi_tmp
 mv bin-x86_64-efi/ipxe.efi ../../build/ipxe/netboot.xyz.efi
 mv ipxe.eiso ../../build/ipxe/netboot.xyz-efi.iso
 
+# iPXE workaround
+# http://lists.ipxe.org/pipermail/ipxe-devel/2018-August/006254.html
+# apply patch to fix arm64 builds on amd64 builds
+sed -i '/WORKAROUND_CFLAGS/d' arch/arm64/Makefile
+
 # generate EFI arm64 iPXE disk
 make clean
 make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 \