From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6563939828400914432 X-Received: by 2002:a1c:ed14:: with SMTP id l20-v6mr243045wmh.30.1528381860834; Thu, 07 Jun 2018 07:31:00 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a5d:4345:: with SMTP id u5-v6ls544103wrr.1.gmail; Thu, 07 Jun 2018 07:31:00 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLn3MHAmjXciY0qTCoYJKreaEPK5EN1CELBoFzscS1KrBMnpsUeVQYwbomWsZ9As8XqozZV X-Received: by 2002:adf:bf05:: with SMTP id p5-v6mr206068wrh.27.1528381860306; Thu, 07 Jun 2018 07:31:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528381860; cv=none; d=google.com; s=arc-20160816; b=KLlEa4rgNVREQoR74xxvwCgfia+sTsNQoB3gGpI4KNULH2TIPoFFV9k/baUh4mk7E6 OcuI1POQgpuCTDunrUTQK6Ck7G+Oyq0nhXIb05K9DlAHQpqmUmLxFRhIWU87RC7NuthD L8ZnHUfBXIuZQBRMw08uKPpgl870lwrvvOQA+dezo2J06zCFsgJC9R2t96OT/zRLUBte eRh6pnX6bN5QYD3MuKLM38rJWKuuSlGcM2kpHQTHWVrKt+EzBWoi2fKE8NRyoTF1+MoW Pkfc6S8EzTlW6eJvlLhke/9EHRe4U2apSo/OwZGsaeWvIEnAOSVY9VEeLHfbKg/3YdQU tOzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:references:in-reply-to:message-id:date :subject:to:from:arc-authentication-results; bh=r4DnWrm+Lyk894WiPNGYTsT5Emq+SiPo9JwtgGfTWYk=; b=NLXHFC0da+EJV1kJH1FGdNx9ATdYTBEK6DCtD/2BVw40jhpRxRMzC2N/3s1bA4tocv X7jzL3OKpKYPoN2/7gE7vU4zW3N1ejIfjWnUEYUWNt5Xi5TPAoodpvkgtmVvQtBN41KA 4s8RFrYP4YBuNCnzz0/46UAfVOsCd6FbIIrEU9ozgsQxcXfV9+jTaNU+EUAJEYLw6YWo O0jEFewFd4BZk1wT1gAzbILPFz75g8qR/zkPUsqHX3uVf+e6TIFOCMeOVRxl0g6jgYWU 4V63yUUdlcoeYT/4nt2lENoq0D6EMMXK0EipZdybkWKRzih8iQLkWQ2SxRFzgZFJkFq4 Z2Lw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Return-Path: Received: from goliath.siemens.de (goliath.siemens.de. [192.35.17.28]) by gmr-mx.google.com with ESMTPS id c18-v6si1380077wrq.5.2018.06.07.07.31.00 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Jun 2018 07:31:00 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 as permitted sender) client-ip=192.35.17.28; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Received: from mail2.siemens.de (mail2.siemens.de [139.25.208.11]) by goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id w57EUxQp008594 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 7 Jun 2018 16:31:00 +0200 Received: from md1f2u6c.ad001.siemens.net (md1q0hnc.ad001.siemens.net [139.25.68.37] (may be forged)) by mail2.siemens.de (8.15.2/8.15.2) with ESMTP id w57EUxNV019240 for ; Thu, 7 Jun 2018 16:30:59 +0200 From: Jan Kiszka To: isar-users Subject: [PATCH v2 4/6] Set up target image fstab prior to installing any packages Date: Thu, 7 Jun 2018 16:30:57 +0200 Message-Id: X-Mailer: git-send-email 2.13.7 In-Reply-To: References: In-Reply-To: References: X-TUID: qxJpKph/TQIc From: Jan Kiszka Package postinst hooks may need the fstab or may want to modify it, including customization packages or the upcoming u-boot-script generator. So extract the already identical setup pattern from the distro config scripts, generate the fstab prior to calling setup_root_file_system and let the latter inject the file before starting the package installation. By specifying "-" as fstab file, we can skip the injection for the buildchroot which does not need it. Signed-off-by: Jan Kiszka --- .../recipes-core/images/files/debian-configscript.sh | 14 -------------- .../images/files/raspbian-configscript.sh | 14 -------------- meta-isar/recipes-core/images/isar-image-base.bb | 20 +++++++++++++++----- meta/classes/isar-bootstrap-helper.bbclass | 3 +++ 4 files changed, 18 insertions(+), 33 deletions(-) diff --git a/meta-isar/recipes-core/images/files/debian-configscript.sh b/meta-isar/recipes-core/images/files/debian-configscript.sh index 136918c..bcd5507 100755 --- a/meta-isar/recipes-core/images/files/debian-configscript.sh +++ b/meta-isar/recipes-core/images/files/debian-configscript.sh @@ -7,20 +7,6 @@ set -e readonly MACHINE_SERIAL="$1" readonly BAUDRATE_TTY="$2" -readonly ROOTFS_DEV="$3" -readonly ROOTFS_TYPE="$4" - -cat > /etc/fstab << EOF -# Begin /etc/fstab -/dev/$ROOTFS_DEV / $ROOTFS_TYPE defaults 1 1 -proc /proc proc nosuid,noexec,nodev 0 0 -sysfs /sys sysfs nosuid,noexec,nodev 0 0 -devpts /dev/pts devpts gid=5,mode=620 0 0 -tmpfs /run tmpfs defaults 0 0 -devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 - -# End /etc/fstab -EOF # Create console device if [ ! -e /dev/console ]; then diff --git a/meta-isar/recipes-core/images/files/raspbian-configscript.sh b/meta-isar/recipes-core/images/files/raspbian-configscript.sh index 04ea571..3631c26 100644 --- a/meta-isar/recipes-core/images/files/raspbian-configscript.sh +++ b/meta-isar/recipes-core/images/files/raspbian-configscript.sh @@ -7,20 +7,6 @@ set -e readonly MACHINE_SERIAL="$1" readonly BAUDRATE_TTY="$2" -readonly ROOTFS_DEV="$3" -readonly ROOTFS_TYPE="$4" - -cat > /etc/fstab << EOF -# Begin /etc/fstab -/dev/$ROOTFS_DEV / $ROOTFS_TYPE defaults 1 1 -proc /proc proc nosuid,noexec,nodev 0 0 -sysfs /sys sysfs nosuid,noexec,nodev 0 0 -devpts /dev/pts devpts gid=5,mode=620 0 0 -tmpfs /run tmpfs defaults 0 0 -devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 - -# End /etc/fstab -EOF # Enable tty conditionally, systemd does not have the file but its own magic if [ -f /etc/inittab ]; then diff --git a/meta-isar/recipes-core/images/isar-image-base.bb b/meta-isar/recipes-core/images/isar-image-base.bb index 891f80a..6cdc6b2 100644 --- a/meta-isar/recipes-core/images/isar-image-base.bb +++ b/meta-isar/recipes-core/images/isar-image-base.bb @@ -28,15 +28,25 @@ do_rootfs[root_cleandirs] = "${IMAGE_ROOTFS} \ ${IMAGE_ROOTFS}/isar-apt" do_rootfs() { - setup_root_file_system --clean "${IMAGE_ROOTFS}" \ - ${IMAGE_PREINSTALL} ${IMAGE_INSTALL} + cat > ${WORKDIR}/fstab << EOF +# Begin /etc/fstab +/dev/${ROOTFS_DEV} / ${ROOTFS_TYPE} defaults 1 1 +proc /proc proc nosuid,noexec,nodev 0 0 +sysfs /sys sysfs nosuid,noexec,nodev 0 0 +devpts /dev/pts devpts gid=5,mode=620 0 0 +tmpfs /run tmpfs defaults 0 0 +devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 + +# End /etc/fstab +EOF + + setup_root_file_system --clean --fstab "${WORKDIR}/fstab" \ + "${IMAGE_ROOTFS}" ${IMAGE_PREINSTALL} ${IMAGE_INSTALL} # Configure root filesystem sudo install -m 755 "${WORKDIR}/${DISTRO_CONFIG_SCRIPT}" "${IMAGE_ROOTFS}" sudo chroot ${IMAGE_ROOTFS} /${DISTRO_CONFIG_SCRIPT} ${MACHINE_SERIAL} \ - ${BAUDRATE_TTY} \ - ${ROOTFS_DEV} \ - ${ROOTFS_TYPE} + ${BAUDRATE_TTY} # Cleanup sudo rm "${IMAGE_ROOTFS}/${DISTRO_CONFIG_SCRIPT}" diff --git a/meta/classes/isar-bootstrap-helper.bbclass b/meta/classes/isar-bootstrap-helper.bbclass index 91dfc1a..3c10fc7 100644 --- a/meta/classes/isar-bootstrap-helper.bbclass +++ b/meta/classes/isar-bootstrap-helper.bbclass @@ -16,9 +16,11 @@ def reverse_bb_array(d, varname): setup_root_file_system() { CLEAN="" + FSTAB="" while true; do case "$1" in --clean) CLEAN=1 ;; + --fstab) FSTAB=$2; shift ;; -*) bbfatal "$0: invalid option specified: $1" ;; *) break ;; esac @@ -33,6 +35,7 @@ setup_root_file_system() { sudo cp -Trpfx \ "${DEPLOY_DIR_IMAGE}/isar-bootstrap-${DISTRO}-${DISTRO_ARCH}/" \ "$ROOTFSDIR" + [ -n "${FSTAB}" ] && cat ${FSTAB} | sudo tee "$ROOTFSDIR/etc/fstab" echo "deb [trusted=yes] file:///isar-apt ${DEBDISTRONAME} main" | \ sudo tee "$ROOTFSDIR/etc/apt/sources.list.d/isar-apt.list" >/dev/null -- 2.13.7