From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6518670333635985408 X-Received: by 10.223.157.2 with SMTP id k2mr3046997wre.2.1517819302878; Mon, 05 Feb 2018 00:28:22 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.223.142.69 with SMTP id n63ls1132027wrb.11.gmail; Mon, 05 Feb 2018 00:28:22 -0800 (PST) X-Google-Smtp-Source: AH8x226nnGax0UqBC5xCF3OBJ+itQxEWIlFayvVfAQz/jjlvWffi+AJR8JqPa+VH2qnHcYXpH8M8 X-Received: by 10.223.133.198 with SMTP id 6mr5092419wru.31.1517819302325; Mon, 05 Feb 2018 00:28:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517819302; cv=none; d=google.com; s=arc-20160816; b=zFhbsx/vI5semtUTEQ6mgonemtVP0wP0iloBaGfI4N3yh50oJVsAOXng31PTG/H0IG Ve7IVkh1qevdvQXjh7NUsl6k8ws+S7An3+kJ8ud9i/8oCn4BfXrbYvigkTYNxBBBHI7K emrhLv9ltgkk8OPSU2SwZGtQqz+dH1RADSdRp0IYv9i02OfmMbyQrIkvQWY0iYdZxlKg j3o0yVe5o+zORqxcHqmic5ow34JG2GpIvD+y1mDYjPOfvljLfWnlldrBg+99zSPyyR1H 5kGakGe47ej8HXGt6WySCM+PG2TiE6YwGRwdoWypypNSCXcF7kDFru8LTGyK0ObZSqz3 GduA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:references:to:from:subject :arc-authentication-results; bh=uPbyS2OW8q4mJUE51kaQaphgUMeQDPetCgPRjVs+ClU=; b=BuFhRnLl2LruMAxwUVujh9UgCM/+iFX0UomNpfz5XR42XFhdYpDAC3zXsVrIJWv1uw nfXanyJd2PIuJyW2SKoPK6sDKeVEc/Qeyq/yQ5RKTSeZ315kIfsTy8I0KmSZVv9LoCcj IRkbuPD37uaDGeWcaBsL3LYxEUGyNbrxbcNCdvawv8AgcX1JQ1DRIsPILQAlJGNtTSmS fDE+dSodZDZ8BW2is51iD1kW6WAVPGTp9nEiIT+UYkkedUTCbebrrK+DPdWMatMMj4Zd kmOXhE9jbgsUqs1tETXOIcaAeLm1xuYh3yO9SP1fmRvJDqxolADrmlPZTzJPO7drnNE1 alKQ== 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 200si851647wml.2.2018.02.05.00.28.22 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Feb 2018 00:28:22 -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 mail2.siemens.de (mail2.siemens.de [139.25.208.11]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id w158SLcG009819 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 5 Feb 2018 09:28:22 +0100 Received: from [167.87.56.101] ([167.87.56.101]) by mail2.siemens.de (8.15.2/8.15.2) with ESMTP id w158SLOQ030728 for ; Mon, 5 Feb 2018 09:28:21 +0100 Subject: Re: [PATCH] Bind-mount /dev into chroot environments From: Jan Kiszka To: isar-users References: <7f43e742-d909-ce77-19f3-888eef264e7d@siemens.com> Message-ID: <44bae312-a5c1-1b3d-884b-2234bdbe8c5a@siemens.com> Date: Mon, 5 Feb 2018 09:28:20 +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 In-Reply-To: <7f43e742-d909-ce77-19f3-888eef264e7d@siemens.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: dHt6ANilko6s On 2018-02-04 13:10, [ext] Jan Kiszka wrote: > 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" > Self-NACK: This patch is causing troubles, at least when creating the buildchroot. I suspect multistrap does something special /dev while setting up the rootfs, and therefore we rather need a hook than the bind mount. Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux