summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-efi-secure-boot/recipes-kernel/linux/kernel-initramfs.bbappend61
-rw-r--r--meta/recipes-core/images/kernel-initramfs.bb41
2 files changed, 39 insertions, 63 deletions
diff --git a/meta-efi-secure-boot/recipes-kernel/linux/kernel-initramfs.bbappend b/meta-efi-secure-boot/recipes-kernel/linux/kernel-initramfs.bbappend
index 7a82aa7..bb61f70 100644
--- a/meta-efi-secure-boot/recipes-kernel/linux/kernel-initramfs.bbappend
+++ b/meta-efi-secure-boot/recipes-kernel/linux/kernel-initramfs.bbappend
@@ -4,56 +4,33 @@ inherit user-key-store deploy
4do_install[nostamp] = "1" 4do_install[nostamp] = "1"
5 5
6fakeroot python do_sign() { 6fakeroot python do_sign() {
7 initramfs = None
8
9 if d.getVar('BUNDLE', True) == '0': 7 if d.getVar('BUNDLE', True) == '0':
10 initramfs = d.expand('${D}/boot/${INITRAMFS_IMAGE}${INITRAMFS_EXT_NAME}.cpio.gz') 8 for compr in d.getVar('INITRAMFS_FSTYPES').split():
9 uks_sel_sign(d.expand('${D}/boot/${INITRAMFS_IMAGE}${INITRAMFS_EXT_NAME}.') + compr, d)
11 else: 10 else:
12 initramfs = d.expand('${D}/boot/${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}') 11 uks_sel_sign(d.expand('${D}/boot/${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}'), d)
13
14 if initramfs == None or not os.path.exists(initramfs):
15 return
16
17 uks_sel_sign(initramfs, d)
18} 12}
19addtask sign after do_install before do_deploy do_package 13addtask sign after do_install before do_deploy do_package
20do_sign[prefuncs] += "check_deploy_keys" 14do_sign[prefuncs] += "check_deploy_keys"
21 15
22do_deploy() { 16do_deploy() {
23 initramfs="" 17 install -d "${DEPLOYDIR}"
24 initramfs_dest="" 18 for SIG in ${D}/boot/*.p7b; do
25 19 install -m 0644 ${SIG} ${DEPLOYDIR}
26 if [ "${BUNDLE}" = "0" ]; then 20 done
27 initramfs="${D}/boot/${INITRAMFS_IMAGE}${INITRAMFS_EXT_NAME}.cpio.gz"
28 initramfs_dest="${DEPLOYDIR}/${INITRAMFS_IMAGE}-${MACHINE}.cpio.gz"
29 else
30 initramfs="${D}/boot/${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}"
31 initramfs_dest="${DEPLOYDIR}/${KERNEL_IMAGETYPE}-initramfs-${MACHINE}.bin"
32 fi
33
34 if [ -f "$initramfs.p7b" ]; then
35 install -d "${DEPLOYDIR}"
36
37 install -m 0644 "$initramfs.p7b" "$initramfs_dest.p7b"
38 fi
39} 21}
40addtask deploy after do_install before do_build 22addtask deploy after do_install before do_build
41 23
42pkg_postinst_${PN}_append() { 24python do_package_prepend () {
43 if [ "${BUNDLE}" = "1" ] ; then 25 if d.getVar('BUNDLE') == '1':
44 update-alternatives --install "/boot/${KERNEL_IMAGETYPE}.p7b" \ 26 d.appendVar(d.expand('ALTERNATIVE_${PN}'), ' ' + d.expand('${KERNEL_IMAGETYPE}' + '-initramfs.p7b'))
45 "${KERNEL_IMAGETYPE}.p7b" \ 27 d.setVarFlag('ALTERNATIVE_LINK_NAME', d.expand('${KERNEL_IMAGETYPE}') + '-initramfs.p7b', d.expand('/boot/${KERNEL_IMAGETYPE}-initramfs.p7b'))
46 "/boot/${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}.p7b" 50101 28 d.setVarFlag('ALTERNATIVE_TARGET', d.expand('${KERNEL_IMAGETYPE}') + '-initramfs.p7b', d.expand('/boot/${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}.p7b'))
47 fi 29 d.setVarFlag('ALTERNATIVE_PRIORITY', d.expand('${KERNEL_IMAGETYPE}') + '-initramfs.p7b', '50101')
48 30 else:
49 true 31 for compr in d.getVar('INITRAMFS_FSTYPES').split():
50} 32 d.appendVar(d.expand('ALTERNATIVE_${PN}'), ' ' + d.expand('${INITRAMFS_IMAGE}') + '.p7b')
51 33 d.setVarFlag('ALTERNATIVE_LINK_NAME', d.expand('${INITRAMFS_IMAGE}') + '.p7b', d.expand('/boot/${INITRAMFS_IMAGE}.p7b'))
52pkg_prerm_${PN}_append() { 34 d.setVarFlag('ALTERNATIVE_TARGET', d.expand('${INITRAMFS_IMAGE}') + '.p7b', d.expand('/boot/${INITRAMFS_IMAGE}${INITRAMFS_EXT_NAME}.' + compr + '.p7b'))
53 if [ "${BUNDLE}" = "1" ] ; then 35 d.setVarFlag('ALTERNATIVE_PRIORITY', d.expand('${INITRAMFS_IMAGE}') + '.p7b', '50101')
54 update-alternatives --remove "${KERNEL_IMAGETYPE}.p7b" \
55 "${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}.p7b"
56 fi
57
58 true
59} 36}
diff --git a/meta/recipes-core/images/kernel-initramfs.bb b/meta/recipes-core/images/kernel-initramfs.bb
index 5b17403..fd23e74 100644
--- a/meta/recipes-core/images/kernel-initramfs.bb
+++ b/meta/recipes-core/images/kernel-initramfs.bb
@@ -35,39 +35,38 @@ do_populate_lic[depends] += "virtual/kernel:do_deploy"
35do_install() { 35do_install() {
36 [ -z "${INITRAMFS_IMAGE}" ] && exit 0 36 [ -z "${INITRAMFS_IMAGE}" ] && exit 0
37 37
38 install -d "${D}/boot"
38 if [ "${BUNDLE}" = "0" ]; then 39 if [ "${BUNDLE}" = "0" ]; then
39 for suffix in cpio.gz cpio.lzo cpio.lzma cpio.xz; do 40 for suffix in ${INITRAMFS_FSTYPES}; do
40 img="${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$suffix" 41 img="${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$suffix"
41 42
42 if [ -s "$img" ]; then 43 install -m 0644 "$img" \
43 install -d "${D}/boot" 44 "${D}/boot/${INITRAMFS_IMAGE}${INITRAMFS_EXT_NAME}.$suffix"
44 install -m 0644 "$img" \
45 "${D}/boot/${INITRAMFS_IMAGE}${INITRAMFS_EXT_NAME}.$suffix"
46 break
47 fi
48 done 45 done
49 else 46 else
50 if [ -e "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-initramfs-${MACHINE}.bin" ]; then 47 if [ -e "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-initramfs-${MACHINE}.bin" ]; then
51 install -d "${D}/boot"
52 install -m 0644 "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-initramfs-${MACHINE}.bin" \ 48 install -m 0644 "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-initramfs-${MACHINE}.bin" \
53 "${D}/boot/${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}" 49 "${D}/boot/${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}"
54 fi 50 fi
55 fi 51 fi
56} 52}
57 53
58pkg_postinst_${PN}() { 54inherit update-alternatives
59 if [ "${BUNDLE}" = "1" ]; then 55
60 update-alternatives --install "/boot/${KERNEL_IMAGETYPE}" \ 56ALTERNATIVES_${PN} = ""
61 "${KERNEL_IMAGETYPE}" "/boot/${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}" \ 57
62 50101 || true 58python do_package_prepend () {
63 fi 59 if d.getVar('BUNDLE') == '1':
64} 60 d.appendVar(d.expand('ALTERNATIVE_${PN}'), ' ' + d.expand('${KERNEL_IMAGETYPE}' + '-initramfs'))
65 61 d.setVarFlag('ALTERNATIVE_LINK_NAME', d.expand('${KERNEL_IMAGETYPE}') + '-initramfs', d.expand('/boot/${KERNEL_IMAGETYPE}-initramfs'))
66pkg_prerm_${PN}() { 62 d.setVarFlag('ALTERNATIVE_TARGET', d.expand('${KERNEL_IMAGETYPE}') + '-initramfs', d.expand('/boot/${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}'))
67 if [ "${BUNDLE}" = "1" ]; then 63 d.setVarFlag('ALTERNATIVE_PRIORITY', d.expand('${KERNEL_IMAGETYPE}') + '-initramfs', '50101')
68 update-alternatives --remove "${KERNEL_IMAGETYPE}" \ 64 else:
69 "${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}" || true 65 for compr in d.getVar('INITRAMFS_FSTYPES').split():
70 fi 66 d.appendVar(d.expand('ALTERNATIVE_${PN}'), ' ' + d.expand('${INITRAMFS_IMAGE}'))
67 d.setVarFlag('ALTERNATIVE_LINK_NAME', d.expand('${INITRAMFS_IMAGE}'), d.expand('/boot/${INITRAMFS_IMAGE}'))
68 d.setVarFlag('ALTERNATIVE_TARGET', d.expand('${INITRAMFS_IMAGE}'), d.expand('/boot/${INITRAMFS_IMAGE}${INITRAMFS_EXT_NAME}.' + compr))
69 d.setVarFlag('ALTERNATIVE_PRIORITY', d.expand('${INITRAMFS_IMAGE}'), '50101')
71} 70}
72 71
73PACKAGE_ARCH = "${MACHINE_ARCH}" 72PACKAGE_ARCH = "${MACHINE_ARCH}"