From 3c5fd58866a54b1534c3d5f2107aee6fcbb36efa Mon Sep 17 00:00:00 2001 From: Arturo Buzarra Date: Thu, 9 Jan 2020 18:37:22 +0100 Subject: [PATCH] trusfence-initramfs: generalize recipe to avoid redefinitions Signed-off-by: Arturo Buzarra --- .../trustfence/trustfence-initramfs.bb | 27 +++---- .../ccimx6/trustfence-initramfs-init | 81 ------------------- .../ccimx8mn/trustfence-initramfs-init | 81 ------------------- ...mfs-init => trustfence-initramfs-init_mmc} | 0 ...mfs-init => trustfence-initramfs-init_mtd} | 0 5 files changed, 9 insertions(+), 180 deletions(-) delete mode 100644 meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx6/trustfence-initramfs-init delete mode 100644 meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx8mn/trustfence-initramfs-init rename meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/{ccimx8x/trustfence-initramfs-init => trustfence-initramfs-init_mmc} (100%) rename meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/{ccimx6ul/trustfence-initramfs-init => trustfence-initramfs-init_mtd} (100%) diff --git a/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs.bb b/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs.bb index 442a45125..b5d7ac002 100644 --- a/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs.bb +++ b/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs.bb @@ -5,13 +5,18 @@ LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" SRC_URI = " \ - file://trustfence-initramfs-init \ + ${@bb.utils.contains('STORAGE_MEDIA', 'mmc', 'file://trustfence-initramfs-init_mmc', '', d)} \ + ${@bb.utils.contains('STORAGE_MEDIA', 'mtd', 'file://trustfence-initramfs-init_mtd', '', d)} \ " S = "${WORKDIR}" do_install() { - install -m 0755 trustfence-initramfs-init ${D}/init + if [ "${STORAGE_MEDIA}" = "mmc" ]; then + install -m 0755 trustfence-initramfs-init_mmc ${D}/init + else + install -m 0755 trustfence-initramfs-init_mtd ${D}/init + fi } # Do not create debug/devel packages @@ -21,27 +26,13 @@ FILES_${PN} = "/" # Runtime packages used in 'trustfence-initramfs-init' RDEPENDS_${PN} = " \ + ${@bb.utils.contains('STORAGE_MEDIA', 'mmc', 'cryptsetup', '', d)} \ + ${@bb.utils.contains('STORAGE_MEDIA', 'mtd', 'mtd-utils-ubifs', '', d)} \ trustfence-tool \ util-linux-findfs \ wipe \ u-boot-fw-utils \ " -RDEPENDS_${PN}_append_ccimx6 = " \ - cryptsetup \ -" - -RDEPENDS_${PN}_append_ccimx6ul = " \ - mtd-utils-ubifs \ -" - -RDEPENDS_${PN}_append_ccimx8x = " \ - cryptsetup \ -" - -RDEPENDS_${PN}_append_ccimx8m = " \ - cryptsetup \ -" - PACKAGE_ARCH = "${MACHINE_ARCH}" COMPATIBLE_MACHINE = "(ccimx6|ccimx6ul|ccimx8x|ccimx8m)" diff --git a/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx6/trustfence-initramfs-init b/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx6/trustfence-initramfs-init deleted file mode 100644 index 3d763a48c..000000000 --- a/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx6/trustfence-initramfs-init +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -#=============================================================================== -# -# trustfence-initramfs-init -# -# Copyright (C) 2016, 2017 by Digi International Inc. -# All rights reserved. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# -# -# !Description: Init script for Trustfence initramfs -# -#=============================================================================== - -POWEROFF_TIME="10" - -error() { - [ "${#}" != "0" ] && printf "\n[ERROR]: %s\n\n" "${1}" - echo "The system will poweroff in ${POWEROFF_TIME} seconds" - sleep "${POWEROFF_TIME}" - sync && poweroff -f -} - -# Main -#------------------------------------------------------------------------------ -# Setup the environment. -export PATH=/bin:/sbin:/usr/bin:/usr/sbin - -mkdir -p /proc /sys /dev -mount -t proc proc /proc -mount -t sysfs sysfs /sys -mount -t devtmpfs devtmpfs /dev - -# Set kernel console loglevel -LOGLEVEL="$(sysctl -n kernel.printk)" -sysctl -q -w kernel.printk=4 - -for arg in $(cat /proc/cmdline); do - case "${arg}" in - init=*|rescue=1|root=*) eval ${arg};; - esac -done - -# Translate "PARTUUID=..." to real device -root="$(findfs ${root})" - -# Jump to a rescue shell if requested -if [ -n "${rescue}" ]; then - # Expand console and respawn if exited - while true; do - setsid cttyhack sh -l - sleep 1 - done -fi - -# Open LUKS encrypted device -if trustfence-tool ${root} cryptroot; then - # Reset root variable to the decrypted mapped device - root="/dev/mapper/cryptroot" -else - error "unable to open encrypted partition." -fi - -# Mount mapped device -mkdir -p /newroot -FSTYPE="$(blkid ${root} | sed -e 's,.*TYPE="\([^"]\+\)".*,\1,g')" -mount ${FSTYPE:+-t ${FSTYPE}} ${root} /newroot - -# -# Clean-up and do the switch_root to the final rootfs -# -# - restore previous kernel console loglevel -# - umount virtual filesystems -# -[ -n "${LOGLEVEL}" ] && sysctl -q -w kernel.printk="${LOGLEVEL}" -mount --move /dev /newroot/dev -umount /sys /proc -exec switch_root /newroot ${init:-/sbin/init} diff --git a/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx8mn/trustfence-initramfs-init b/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx8mn/trustfence-initramfs-init deleted file mode 100644 index 9fdd4fc89..000000000 --- a/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx8mn/trustfence-initramfs-init +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -#=============================================================================== -# -# trustfence-initramfs-init -# -# Copyright (C) 2020 by Digi International Inc. -# All rights reserved. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# -# -# !Description: Init script for Trustfence initramfs -# -#=============================================================================== - -POWEROFF_TIME="10" - -error() { - [ "${#}" != "0" ] && printf "\n[ERROR]: %s\n\n" "${1}" - echo "The system will poweroff in ${POWEROFF_TIME} seconds" - sleep "${POWEROFF_TIME}" - sync && poweroff -f -} - -# Main -#------------------------------------------------------------------------------ -# Setup the environment. -export PATH=/bin:/sbin:/usr/bin:/usr/sbin - -mkdir -p /proc /sys /dev -mount -t proc proc /proc -mount -t sysfs sysfs /sys -mount -t devtmpfs devtmpfs /dev - -# Set kernel console loglevel -LOGLEVEL="$(sysctl -n kernel.printk)" -sysctl -q -w kernel.printk=4 - -for arg in $(cat /proc/cmdline); do - case "${arg}" in - init=*|rescue=1|root=*) eval ${arg};; - esac -done - -# Translate "PARTUUID=..." to real device -root="$(findfs ${root})" - -# Jump to a rescue shell if requested -if [ -n "${rescue}" ]; then - # Expand console and respawn if exited - while true; do - setsid cttyhack sh -l - sleep 1 - done -fi - -# Open LUKS encrypted device -if trustfence-tool ${root} cryptroot; then - # Reset root variable to the decrypted mapped device - root="/dev/mapper/cryptroot" -else - error "unable to open encrypted partition." -fi - -# Mount mapped device -mkdir -p /newroot -FSTYPE="$(blkid ${root} | sed -e 's,.*TYPE="\([^"]\+\)".*,\1,g')" -mount ${FSTYPE:+-t ${FSTYPE}} ${root} /newroot - -# -# Clean-up and do the switch_root to the final rootfs -# -# - restore previous kernel console loglevel -# - umount virtual filesystems -# -[ -n "${LOGLEVEL}" ] && sysctl -q -w kernel.printk="${LOGLEVEL}" -mount --move /dev /newroot/dev -umount /sys /proc -exec switch_root /newroot ${init:-/sbin/init} diff --git a/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx8x/trustfence-initramfs-init b/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/trustfence-initramfs-init_mmc similarity index 100% rename from meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx8x/trustfence-initramfs-init rename to meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/trustfence-initramfs-init_mmc diff --git a/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx6ul/trustfence-initramfs-init b/meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/trustfence-initramfs-init_mtd similarity index 100% rename from meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/ccimx6ul/trustfence-initramfs-init rename to meta-digi-dey/recipes-core/trustfence/trustfence-initramfs/trustfence-initramfs-init_mtd