mirror of
https://github.com/moparisthebest/arch-ppa
synced 2024-12-21 22:18:48 -05:00
Add ipxe-netboot
This commit is contained in:
parent
4d6e03da28
commit
d25a9c244d
66
src/ipxe-netboot/PKGBUILD
Normal file
66
src/ipxe-netboot/PKGBUILD
Normal file
@ -0,0 +1,66 @@
|
||||
# Maintainer: Lily Wilson <hotaru@thinkindifferent.net>
|
||||
# Contributor: Thomas Bächler <thomas@archlinux.org>
|
||||
pkgname=ipxe-netboot
|
||||
pkgver=r5925.3fe683eb
|
||||
pkgrel=1
|
||||
pkgdesc="iPXE build for Arch Linux netboot"
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://ipxe.org"
|
||||
license=('GPL')
|
||||
makedepends=('git'
|
||||
'gcc'
|
||||
'binutils'
|
||||
'make'
|
||||
'perl'
|
||||
'xz'
|
||||
'zlib')
|
||||
options=(!strip)
|
||||
source=('ipxe::git+https://git.ipxe.org/ipxe.git#branch=master'
|
||||
arch.ipxe
|
||||
codesigning_thomas_archlinux.pem
|
||||
codesigning_pierre_archlinux.pem
|
||||
dst_x1.pem
|
||||
test-netboot)
|
||||
sha256sums=('SKIP'
|
||||
'f789c81cade88537b4dc0acd1ce1beb26d1c1e63b837423a14a7c096b31b0230'
|
||||
'3ba0cf390975bb07bf1d3c7ff802d6977bdf901c94883ea2de44c16d444252e5'
|
||||
'64d021f345a0b4633de17ba43d816295076adc8a378eaa54e6796e8c0e95d6d0'
|
||||
'139a5e4a4e0fa505378c72c5f700934ce8333f4e6b1b508886c4b0eb14f4be99'
|
||||
'63cdadea20fd5ba0f1a632d1ebd34e7b3d91f08b88a3b43508cc825bb42e55a4')
|
||||
|
||||
pkgver() {
|
||||
cd "$srcdir/ipxe"
|
||||
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd "$srcdir/ipxe/src"
|
||||
mkdir -p config/local
|
||||
: > config/local/general.h
|
||||
echo '#define NET_PROTO_IPV6' >> config/local/general.h
|
||||
echo '#define DOWNLOAD_PROTO_HTTPS' >> config/local/general.h
|
||||
echo '#define IMAGE_TRUST_CMD' >> config/local/general.h
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "$srcdir/ipxe/src"
|
||||
|
||||
NO_WERROR=1
|
||||
export NO_WERROR
|
||||
|
||||
make \
|
||||
CERT="$srcdir/codesigning_pierre_archlinux.pem","$srcdir/codesigning_thomas_archlinux.pem","$srcdir/dst_x1.pem" \
|
||||
TRUST="$srcdir/codesigning_pierre_archlinux.pem","$srcdir/codesigning_thomas_archlinux.pem","$srcdir/dst_x1.pem" \
|
||||
bin/ipxe.lkrn \
|
||||
bin/ipxe.pxe \
|
||||
bin-x86_64-efi/ipxe.efi
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "$srcdir/ipxe/src"
|
||||
install -d -m755 "$pkgdir"/usr/share/ipxe-netboot
|
||||
install -m644 bin/ipxe.lkrn "$pkgdir"/usr/share/ipxe-netboot/
|
||||
install -m644 bin/ipxe.pxe "$pkgdir"/usr/share/ipxe-netboot/
|
||||
install -m644 bin-x86_64-efi/ipxe.efi "$pkgdir"/usr/share/ipxe-netboot/
|
||||
install -D -m755 "$srcdir"/test-netboot "$pkgdir"/usr/bin/test-netboot
|
||||
}
|
3
src/ipxe-netboot/arch.ipxe
Normal file
3
src/ipxe-netboot/arch.ipxe
Normal file
@ -0,0 +1,3 @@
|
||||
#!ipxe
|
||||
ifconf
|
||||
chain https://www.archlinux.org/releng/netboot/archlinux.ipxe || shell
|
30
src/ipxe-netboot/codesigning_pierre_archlinux.pem
Normal file
30
src/ipxe-netboot/codesigning_pierre_archlinux.pem
Normal file
@ -0,0 +1,30 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
30
src/ipxe-netboot/codesigning_thomas_archlinux.pem
Normal file
30
src/ipxe-netboot/codesigning_thomas_archlinux.pem
Normal file
@ -0,0 +1,30 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFDzCCAvegAwIBAgIJAN4v13b770twMA0GCSqGSIb3DQEBCwUAMDQxITAfBgNV
|
||||
BAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1UEAwwGdGhvbWFzMB4X
|
||||
DTE2MDIwMTIwMzczMloXDTI2MDEyOTIwMzczMlowNDEhMB8GA1UECgwYSW50ZXJu
|
||||
ZXQgV2lkZ2l0cyBQdHkgTHRkMQ8wDQYDVQQDDAZ0aG9tYXMwggIiMA0GCSqGSIb3
|
||||
DQEBAQUAA4ICDwAwggIKAoICAQDE3PB51dG9qXSG7b/9gdoVyxIa/47hsaus8Ufv
|
||||
8cZp452uKJVCZE9tne6oChC4Dflt1QnMITO7iQzb+rW2yLCOiqZJqRHuEuwqY3Tn
|
||||
B7eQE0iE2C/FWujHrz0W2PV/xKq/HXcQVkVhdAi8eqEx9oDuV/OQgATOWWZcIqQe
|
||||
xt1qdbaunU2H4imfJ/HZGBj9UTwUBM3cVf3YfLGka0AbRdWDiUpAZco9P7XOf1oR
|
||||
sWwSB9JW097IO0FfLt5BgfuT2p9w8delWyLrwwzty9/z5LMMBi4u5MH2EOyTBwpQ
|
||||
ez4miAYiG5KZcJ2RZWvWONy6fB5az8nancyQ1Vy3fsh0l24fyBg5iPNIiySABuZ2
|
||||
q2Bp500AZNsaHMC3rFlodpgAn65KtiwvC7Bp5cr+dFhytRC9sH6zNGqCCW7L3vQu
|
||||
YzyoL6kdB8PquHHisApAV5j/Fa9texadwW0AhbPr678Dj14Wg750R6npfrhRSGv2
|
||||
w8xWn0ADX1xbD6rbtVYvZTVjVyuV/WkfcHysDr0SCksmahHLQWowA7mdH73STDjx
|
||||
mAF2wHLMEx2H5k8rrjWbneTavP66EagUyFcteI1Qu+4Qev9L17Fst7gRfS/Tv4Zj
|
||||
g8XtN4fFPkL82XYEyuGrhUx3lNwIAlUZfmldYvJfg9jdrqHJfvQfUJ6m5tBQLFZy
|
||||
zxnfOwIDAQABoyQwIjALBgNVHQ8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMw
|
||||
DQYJKoZIhvcNAQELBQADggIBAFBdJgJNnUL2bBphqmKTlkhUTAA92SIJCpjMR7KJ
|
||||
mpqNPmodLeDt/rIbVYOtFxXHHDpIwSDeoPegL80HrNacg8YmmPRws7FAFPev4oic
|
||||
G8h1HfyfDaXBiLsXqDQ8mZkXgQhGtojXWsCe2t30IZ3nYhFZw7AzidiikXUVKFTR
|
||||
tx8KPK0hqbRP41kqJsySG2xjx8ed0HB2xEWMJ3jQwDuLmC1rXrPu4HdHRfc3yjr+
|
||||
OJ/Oyxidmml6oUliQd8Zmdu/PD6yLvrDwBCpS24YZ2jSNWAA1jihBh8q0qcJcfQx
|
||||
drz8fyOX5YuTb/IWPGZU655G252IX3Kb9d7PAH/7ybPAWnMnXag0F4Bt6jJfsloP
|
||||
stib5kM87gyHNANu+iQPtNTaIhHvrfu1OxE0DTrSYXJw5cwM719FVkMCW6FX3Uhp
|
||||
x18WsPaWLRKjA3gTDs5pa/0lFASmSpdurYfnat8xRvnyWEf+WVfdpZNVvAWpfCSR
|
||||
Bjc3bZfY2KPNdcTkrxlPvHe4wQ2sBwUjBOak4Ugj+Qrni2XFp/LLd23xZmsQMLxc
|
||||
xRD7FxZqNoiYP18PZxvfhxOH8O14tAYX6ysA/V2xhFSjulCISKtFe3POMC7/Us2u
|
||||
9sSSjlyFapIqczGVJRDTznDiTW5Qc3luIw2pQXOfk7bks+t7PG48XCNzlfcqmIq4
|
||||
qq39
|
||||
-----END CERTIFICATE-----
|
20
src/ipxe-netboot/dst_x1.pem
Normal file
20
src/ipxe-netboot/dst_x1.pem
Normal file
@ -0,0 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
|
||||
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
|
||||
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
|
||||
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
|
||||
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
||||
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
|
||||
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
|
||||
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
|
||||
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
|
||||
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
|
||||
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
|
||||
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
|
||||
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
|
||||
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
|
||||
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
|
||||
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
|
||||
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
|
||||
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
|
||||
-----END CERTIFICATE-----
|
36
src/ipxe-netboot/test-netboot
Executable file
36
src/ipxe-netboot/test-netboot
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
OVMFDIR=/usr/share/ovmf
|
||||
OVMF_CODE=${OVMFDIR}/x64/OVMF_CODE.fd
|
||||
OVMF_VARS=${OVMFDIR}/x64/OVMF_VARS.fd
|
||||
IPXE_IMAGE=/usr/share/ipxe-netboot/ipxe.efi
|
||||
|
||||
if [[ ! -f ${OVMF_CODE} ]]; then
|
||||
echo "ERROR: ${OVMF_CODE} is missing, install the ovmf package." >&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -f ${OVMF_VARS} ]]; then
|
||||
echo "ERROR: ${OVMF_VARS} is missing, install the ovmf package." >&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -f ${IPXE_IMAGE} ]]; then
|
||||
echo "ERROR: ${IPXE_IMAGE} is missing." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
WORKDIR=$(mktemp -d --tmpdir netboot.XXXXXX)
|
||||
cd "${WORKDIR}"
|
||||
|
||||
cp "${OVMF_VARS}" efivars
|
||||
mkdir -p ./fat/EFI/Boot/
|
||||
cp "${IPXE_IMAGE}" ./fat/EFI/Boot/bootx64.efi
|
||||
|
||||
exec qemu-system-x86_64 \
|
||||
-enable-kvm \
|
||||
-device virtio-net-pci,netdev=n -netdev user,ipv4,id=n \
|
||||
-m 2G \
|
||||
-drive if=pflash,format=raw,readonly,file="${OVMF_CODE}" \
|
||||
-drive if=pflash,format=raw,file=efivars \
|
||||
-usb -usbdevice disk:format=raw:fat:./fat \
|
||||
"$@"
|
Loading…
Reference in New Issue
Block a user