|
1 | 1 | #!/usr/bin/env bash |
2 | 2 |
|
| 3 | +gen_common_ipxe() { |
| 4 | + local version="$1" |
| 5 | + cat <<EOF |
| 6 | +#!ipxe |
| 7 | +set dts_version ${version} |
| 8 | +set dts_prefix \${dts_version} |
| 9 | +set path_kernel \${dts_prefix}/bzImage-\${dts_version} |
| 10 | +set path_initrd \${dts_prefix}/dts-base-image-\${dts_version}.cpio.gz |
| 11 | +
|
| 12 | +imgfetch --name file_kernel \${path_kernel} |
| 13 | +imgfetch --name file_initrd \${path_initrd} |
| 14 | +
|
| 15 | +kernel file_kernel initrd=file_initrd console=ttyUSB0 |
| 16 | +EOF |
| 17 | +} |
| 18 | + |
| 19 | +gen_fum_workaround_ipxe() { |
| 20 | + gen_common_ipxe "$@" |
| 21 | + cat <<EOF |
| 22 | +
|
| 23 | +iseq \${platform} efi && goto is_efi || goto not_efi |
| 24 | +:is_efi |
| 25 | +chain replace_fum_efivar.efi |
| 26 | +
|
| 27 | +:not_efi |
| 28 | +boot |
| 29 | +EOF |
| 30 | +} |
| 31 | + |
| 32 | +gen_without_fum_workaround_ipxe() { |
| 33 | + gen_common_ipxe "$@" |
| 34 | + echo "boot" |
| 35 | +} |
| 36 | + |
3 | 37 | VERSION=$1 |
4 | 38 | RC_VER_PATTERN="v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+$" |
5 | 39 | IPXE_FILE="dts.ipxe" |
6 | 40 | IPXE_RC_FILE="dts-rc.ipxe" |
| 41 | +IPXE_NO_FUM_FIX_FILE="dts-no-fum-fix.ipxe" |
7 | 42 |
|
8 | 43 | if [ $# -ne 1 ]; then |
9 | 44 | echo "Provide version, e.g. v1.2.3" |
|
26 | 61 | # imgverify file_kernel \${sig_kernel} |
27 | 62 | # imgverify file_initrd \${sig_initrd} |
28 | 63 |
|
29 | | -cat <<EOF > "${IPXE_FILE}" |
30 | | -#!ipxe |
31 | | -set dts_version ${VERSION} |
32 | | -set dts_prefix \${dts_version} |
33 | | -set path_kernel \${dts_prefix}/bzImage-\${dts_version} |
34 | | -set path_initrd \${dts_prefix}/dts-base-image-\${dts_version}.cpio.gz |
35 | | -
|
36 | | -imgfetch --name file_kernel \${path_kernel} |
37 | | -imgfetch --name file_initrd \${path_initrd} |
38 | | -
|
39 | | -kernel file_kernel initrd=file_initrd console=ttyUSB0 |
40 | | -
|
41 | | -iseq \${platform} efi && goto is_efi || goto not_efi |
42 | | -:is_efi |
43 | | -chain replace_fum_efivar.efi |
44 | | -
|
45 | | -:not_efi |
46 | | -boot |
47 | | -EOF |
| 64 | +gen_fum_workaround_ipxe "${VERSION}" >"${IPXE_FILE}" |
| 65 | +gen_without_fum_workaround_ipxe "${VERSION}" >"${IPXE_NO_FUM_FIX_FILE}" |
48 | 66 |
|
49 | 67 | if [ "${IPXE_FILE}" != "${IPXE_RC_FILE}" ]; then |
50 | 68 | cp "${IPXE_FILE}" "${IPXE_RC_FILE}" |
|
0 commit comments