From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6518670333635985408 X-Received: by 10.80.186.135 with SMTP id x7mr5581873ede.0.1517746209932; Sun, 04 Feb 2018 04:10:09 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.80.171.6 with SMTP id s6ls3034760edc.2.gmail; Sun, 04 Feb 2018 04:10:09 -0800 (PST) X-Google-Smtp-Source: AH8x227RO1oQAAsSPm/7EaEnpQYqw5P/pUD8qoGmzho/RcR60ACMJ1LUYiV8T3SdgWCWQR8zMMSp X-Received: by 10.80.204.74 with SMTP id n10mr3869740edi.12.1517746208968; Sun, 04 Feb 2018 04:10:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517746208; cv=none; d=google.com; s=arc-20160816; b=LKy88IlC1pmxvsFm00pai4G4ou2InLxnNecvj2OCa8xvVsJViUj4LUlkKTMDA/AUfp q0Zi3yJzmJ+jpilmjgyn7OYj2f2isXSQT86Em9IGjDoybbCcre3gD69z2Swaf47er0bp HVQB+7mGlLTMY8zydbIGDsv0JgS3HXbRe4EtJYsZkpuwnomlSAUHxgh67ANW97bJJ91t xKSYuE48llUbdoaPYc70xghWYh6Pu6xfNCOofXSiWGQ4BLKmlv+MJXYnkaOGHyWBty8o ce4o7GpEfggSu/0rbTISW1WGWpTj0u8hg2fpdTQZJx5pxzM3Ah1wRQE2RN5tB8lBM5ii klkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:mime-version:user-agent :date:message-id:subject:from:to:arc-authentication-results; bh=gXrAduaDzNAyqZWSR9XJdvRAYSNvCFRxhH3n47lEhvk=; b=q4Q8zapF0ADsDYMuXfEN6URVnsHP8p5/taqU7pGR//q/EfB3arf/liLj6SA0hqxqEn uWA/ixIwVLRDP9Dw8DwDPeAvKnZKZeVVt5gCeeTBLtIRKP0YB20C9cYvo0GYPS1vCCiL taT6i9PjPsnzEt5cvqEhWPBohkA5xwm6KIWC2Z1agXyZmIEkGJU8oLgtqw59F3CdMnvn gYvdJhSDeI766w7LDrX7LI+Z4BTZfO5PoqQGB7dzQwuDsf4uQGIubrXwj1UMUoKBTig/ 0tFFud+FVpEVQlbRvUm1wG6Zsm4b+LZUfPjdXxrX3O+fB7hFEXA3h8BzZgem1FJD6HcV 0+FA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Return-Path: Received: from thoth.sbs.de (thoth.sbs.de. [192.35.17.2]) by gmr-mx.google.com with ESMTPS id z17si561647edz.1.2018.02.04.04.10.08 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 04 Feb 2018 04:10:08 -0800 (PST) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.2 as permitted sender) client-ip=192.35.17.2; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id w14CA8AD032009 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sun, 4 Feb 2018 13:10:08 +0100 Received: from [167.87.162.90] ([167.87.162.90]) by mail1.siemens.de (8.15.2/8.15.2) with ESMTP id w14CA6WC030469 for ; Sun, 4 Feb 2018 13:10:07 +0100 To: isar-users From: Jan Kiszka Subject: [PATCH] Bind-mount /dev into chroot environments Message-ID: <7f43e742-d909-ce77-19f3-888eef264e7d@siemens.com> Date: Sun, 4 Feb 2018 13:10:05 +0100 User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: ZkgV+2Z2NlgJ From: Jan Kiszka Specifically the missing /dev/null caused troubles: x86 kernel builds will generate strange modules.order/builtin files. That's because drivers/firmware/Makefile does $(call as-instr,.arch armv7-a\n.arch_extension sec,-DREQUIRES_SEC=1) That tries the above assembly on the x86 gcc which will not understand it and complain. It's output is directed to /dev/null, but that does not exist, so it will be printed to the above modules.* files. Argh. Instead of adding /dev/null to the two random nodes installed so far, simply bind-mount the whole host /dev into the chroots. Signed-off-by: Jan Kiszka --- This obsoletes "Install /dev/null in rootfs". .../recipes-core/images/files/download_dev-random | 24 ---------------------- meta-isar/recipes-core/images/isar-image-base.bb | 7 ++++--- meta/recipes-devtools/buildchroot/buildchroot.bb | 5 +++-- .../buildchroot/files/download_dev-random | 13 ------------ 4 files changed, 7 insertions(+), 42 deletions(-) delete mode 100644 meta-isar/recipes-core/images/files/download_dev-random delete mode 100644 meta/recipes-devtools/buildchroot/files/download_dev-random diff --git a/meta-isar/recipes-core/images/files/download_dev-random b/meta-isar/recipes-core/images/files/download_dev-random deleted file mode 100644 index f7f5fe5..0000000 --- a/meta-isar/recipes-core/images/files/download_dev-random +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -# -# This software is a part of ISAR. -# Copyright (C) 2017 ilbers GmbH - -set -e - -readonly ROOTFS="$1" - -if [ ! -c ${ROOTFS}/dev/random ]; then - rm -f ${ROOTFS}/dev/random - mknod "${ROOTFS}/dev/random" c 1 8 - chmod 666 "${ROOTFS}/dev/random" - chown 0:0 "${ROOTFS}/dev/random" -fi - -if [ ! -c ${ROOTFS}/dev/urandom ]; then - rm -f ${ROOTFS}/dev/urandom - mknod "${ROOTFS}/dev/urandom" c 1 9 - chmod 666 "${ROOTFS}/dev/urandom" - chown 0:0 "${ROOTFS}/dev/urandom" -fi - -exit 0 diff --git a/meta-isar/recipes-core/images/isar-image-base.bb b/meta-isar/recipes-core/images/isar-image-base.bb index e359ac3..39f368f 100644 --- a/meta-isar/recipes-core/images/isar-image-base.bb +++ b/meta-isar/recipes-core/images/isar-image-base.bb @@ -11,8 +11,7 @@ LIC_FILES_CHKSUM = "file://${LAYERDIR_isar}/licenses/COPYING.GPLv2;md5=751419260 FILESPATH =. "${LAYERDIR_isar}/recipes-core/images/files:" SRC_URI = "file://multistrap.conf.in \ file://${DISTRO_CONFIG_SCRIPT} \ - file://setup.sh \ - file://download_dev-random" + file://setup.sh" PV = "1.0" @@ -33,7 +32,6 @@ do_rootfs() { chmod +x "${WORKDIR}/${DISTRO_CONFIG_SCRIPT}" chmod +x "${WORKDIR}/setup.sh" - install -m 755 "${WORKDIR}/download_dev-random" "${WORKDIR}/hooks_multistrap/" # Multistrap accepts only relative path in configuration files, so get it: cd ${TOPDIR} @@ -55,10 +53,13 @@ do_rootfs() { -e 's|##ISAR_DISTRO_SUITE##|${DEBDISTRONAME}|g' \ "${WORKDIR}/multistrap.conf.in" > "${WORKDIR}/multistrap.conf" + [ ! -d ${IMAGE_ROOTFS}/dev ] && sudo install -d -o 0 -g 0 -m 555 ${IMAGE_ROOTFS}/dev + sudo mount -t devtmpfs none ${IMAGE_ROOTFS}/dev [ ! -d ${IMAGE_ROOTFS}/proc ] && sudo install -d -o 0 -g 0 -m 555 ${IMAGE_ROOTFS}/proc sudo mount -t proc none ${IMAGE_ROOTFS}/proc _do_rootfs_cleanup() { ret=$? + sudo umount ${IMAGE_ROOTFS}/dev 2>/dev/null || true sudo umount ${IMAGE_ROOTFS}/proc 2>/dev/null || true (exit $ret) || bb_exit_handler } diff --git a/meta/recipes-devtools/buildchroot/buildchroot.bb b/meta/recipes-devtools/buildchroot/buildchroot.bb index 51f9d5d..8b570b7 100644 --- a/meta/recipes-devtools/buildchroot/buildchroot.bb +++ b/meta/recipes-devtools/buildchroot/buildchroot.bb @@ -12,7 +12,6 @@ FILESPATH =. "${LAYERDIR_core}/recipes-devtools/buildchroot/files:" SRC_URI = "file://multistrap.conf.in \ file://configscript.sh \ file://setup.sh \ - file://download_dev-random \ file://build.sh" PV = "1.0" @@ -39,7 +38,6 @@ do_build() { chmod +x "${WORKDIR}/setup.sh" chmod +x "${WORKDIR}/configscript.sh" - install -m 755 "${WORKDIR}/download_dev-random" "${WORKDIR}/hooks_multistrap/" # Multistrap accepts only relative path in configuration files, so get it: cd ${TOPDIR} @@ -58,10 +56,13 @@ do_build() { -e 's|##DIR_HOOKS##|./'"$WORKDIR_REL"'/hooks_multistrap|g' \ "${WORKDIR}/multistrap.conf.in" > "${WORKDIR}/multistrap.conf" + [ ! -d ${BUILDCHROOT_DIR}/dev ] && install -d -m 555 ${BUILDCHROOT_DIR}/dev + sudo mount -t devtmpfs none ${BUILDCHROOT_DIR}/dev [ ! -d ${BUILDCHROOT_DIR}/proc ] && install -d -m 555 ${BUILDCHROOT_DIR}/proc sudo mount -t proc none ${BUILDCHROOT_DIR}/proc _do_build_cleanup() { ret=$? + sudo umount ${BUILDCHROOT_DIR}/dev 2>/dev/null || true sudo umount ${BUILDCHROOT_DIR}/proc 2>/dev/null || true (exit $ret) || bb_exit_handler } diff --git a/meta/recipes-devtools/buildchroot/files/download_dev-random b/meta/recipes-devtools/buildchroot/files/download_dev-random deleted file mode 100644 index 5b5b96b..0000000 --- a/meta/recipes-devtools/buildchroot/files/download_dev-random +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -set -e - -readonly ROOTFS="$1" - -mknod "${ROOTFS}/dev/random" c 1 8 -chmod 640 "${ROOTFS}/dev/random" -chown 0:0 "${ROOTFS}/dev/random" - -mknod "${ROOTFS}/dev/urandom" c 1 9 -chmod 640 "${ROOTFS}/dev/urandom" -chown 0:0 "${ROOTFS}/dev/urandom" -- 2.13.6