diff options
| -rw-r--r-- | meta-efi-secure-boot/recipes-kernel/linux/kernel-initramfs.bbappend | 61 | ||||
| -rw-r--r-- | meta/recipes-core/images/kernel-initramfs.bb | 41 |
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 | |||
| 4 | do_install[nostamp] = "1" | 4 | do_install[nostamp] = "1" |
| 5 | 5 | ||
| 6 | fakeroot python do_sign() { | 6 | fakeroot 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 | } |
| 19 | addtask sign after do_install before do_deploy do_package | 13 | addtask sign after do_install before do_deploy do_package |
| 20 | do_sign[prefuncs] += "check_deploy_keys" | 14 | do_sign[prefuncs] += "check_deploy_keys" |
| 21 | 15 | ||
| 22 | do_deploy() { | 16 | do_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 | } |
| 40 | addtask deploy after do_install before do_build | 22 | addtask deploy after do_install before do_build |
| 41 | 23 | ||
| 42 | pkg_postinst_${PN}_append() { | 24 | python 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')) | |
| 52 | pkg_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" | |||
| 35 | do_install() { | 35 | do_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 | ||
| 58 | pkg_postinst_${PN}() { | 54 | inherit update-alternatives |
| 59 | if [ "${BUNDLE}" = "1" ]; then | 55 | |
| 60 | update-alternatives --install "/boot/${KERNEL_IMAGETYPE}" \ | 56 | ALTERNATIVES_${PN} = "" |
| 61 | "${KERNEL_IMAGETYPE}" "/boot/${KERNEL_IMAGETYPE}-initramfs${INITRAMFS_EXT_NAME}" \ | 57 | |
| 62 | 50101 || true | 58 | python 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')) | |
| 66 | pkg_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 | ||
| 73 | PACKAGE_ARCH = "${MACHINE_ARCH}" | 72 | PACKAGE_ARCH = "${MACHINE_ARCH}" |
