From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6543937367387930624 X-Received: by 10.46.93.219 with SMTP id v88mr362867lje.36.1523629150310; Fri, 13 Apr 2018 07:19:10 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.46.36.20 with SMTP id k20ls907304ljk.16.gmail; Fri, 13 Apr 2018 07:19:09 -0700 (PDT) X-Google-Smtp-Source: AIpwx48ZkIV1kycknxt0NfC4kRfO6EOiOepFC96XeBMgi81EUfCtdSNZF8FrOnGFg20vrEO0tRCS X-Received: by 10.46.99.129 with SMTP id s1mr333950lje.15.1523629149808; Fri, 13 Apr 2018 07:19:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523629149; cv=none; d=google.com; s=arc-20160816; b=t4L/ER32IHoQz/yzyIttKbasp4C+t1j0c9kV17V2HMz0eCin0/2+d/IYN7qAdJKZXx lYh74J4dvvamsBc7eM77sxUJiIXtJCeCSMRd6a+8lomSYg+05Qg4q8p6xRHYXSpsieO9 fVGMl1bcwzeodqkPoFeRRfy1hcmENKJ5KKfB4Ax6Vk4g8mBs5Po9T12J0MQ7TPVkYPYe oxIFYxO4fdLEUfRiIiO+NukoRXzb2edVwGjljwbKl+bMwEVU9e4d23X54hBP90a4qKI2 zTfA7Xm6vzyZtEADao2XNb2HdXSakDb/8LBmEBec/b0Rnyed7yXuuv8508scX6qhv7uR M1YA== 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:cc:to:from:arc-authentication-results; bh=+k2PunfbOxxxE1wpBE0GElcISivSnPlXqgvUIf5k04M=; b=AMceF9nA86Xc9OTE5oahtcrpy9I7tuSCRJoZj1IenYusRcqtUjUkmqAlV1EDvQHKin B1VUxqc7imRiJs+GwMzkpRRs5BZqomZnyuDsEd8WPc7XWnE8XVt7DwdYXbvgna2C7KoQ bawFOnBfheS77Cp2hFqyEIfZcmGmnmLkW//aamqMY0vVu01slZbrqNqGvIdpXSa6HJ6l n0f+WcXMYRNadfuI1hze3y/T2iUeplpjdgD+mRCmX8F8GTmWiejw+Ky81jraOufISXr7 sfBrFOKDBtwdaHD0xDdZJ9hlWw1YHEntIem4w4yX11vP4yKPvoQDmljiIDeCNxdhBFKc xi0w== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id d14si294696ljj.5.2018.04.13.07.19.09 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Apr 2018 07:19:09 -0700 (PDT) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id w3DEJ8UV005523 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 13 Apr 2018 16:19:09 +0200 Received: from md1pvb1c.ad001.siemens.net (md1pvb1c.ad001.siemens.net [139.25.68.40] (may be forged)) by mail1.siemens.de (8.15.2/8.15.2) with ESMTP id w3DEJ8W0011006; Fri, 13 Apr 2018 16:19:08 +0200 From: Henning Schild To: isar-users@googlegroups.com Cc: Cedric Hombourger , Andreas Reichel , Henning Schild Subject: [PATCH v2 08/17] classes: image: introduce size measuring function, for before do_*_image Date: Fri, 13 Apr 2018 16:18:57 +0200 Message-Id: <08b425a4b904308ddb06bbcb69583a3ac4f88a8a.1523628814.git.henning.schild@siemens.com> X-Mailer: git-send-email 2.16.1 In-Reply-To: References: In-Reply-To: References: X-TUID: bLQYkSMmyMFH Measure the size and export it to the variable ROOTFS_SIZE just before the imaging step. The concept is inspired by OE. Issue: The size of the rootfs is required for all sort of images, at the moment Isar only supports one "real" image. Later patches will introduce another image. And this patch prepares for that by moving the size measurement into our image base class. Impact: - Issue is solved - nothing changes for users Signed-off-by: Henning Schild --- meta/classes/ext4-img.bbclass | 7 ++----- meta/classes/image.bbclass | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/meta/classes/ext4-img.bbclass b/meta/classes/ext4-img.bbclass index 8a978e6..d19d036 100644 --- a/meta/classes/ext4-img.bbclass +++ b/meta/classes/ext4-img.bbclass @@ -1,9 +1,6 @@ # This software is a part of ISAR. # Copyright (C) 2015-2017 ilbers GmbH -# Extra space for rootfs in MB -ROOTFS_EXTRA ?= "64" - ROOTFS_TYPE = "ext4" EXT4_IMAGE_FILE = "${DEPLOY_DIR_IMAGE}/${PN}-${DISTRO}-${MACHINE}.ext4.img" @@ -14,8 +11,7 @@ do_ext4_image[stamp-extra-info] = "${DISTRO}-${MACHINE}" do_ext4_image() { rm -f ${EXT4_IMAGE_FILE} - ROOTFS_SIZE=`sudo du -sm ${IMAGE_ROOTFS} | awk '{print $1 + ${ROOTFS_EXTRA};}'` - dd if=/dev/zero of=${EXT4_IMAGE_FILE} bs=1M count=${ROOTFS_SIZE} + dd if=/dev/zero of=${EXT4_IMAGE_FILE} bs=1k count=${ROOTFS_SIZE} sudo mkfs.ext4 -F ${EXT4_IMAGE_FILE} @@ -33,3 +29,4 @@ do_ext4_image() { } addtask ext4_image before do_build after do_copy_boot_files +do_ext4_image[prefuncs] = 'set_image_size' diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index a6537f9..2243860 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -5,6 +5,9 @@ IMAGE_INSTALL ?= "" IMAGE_TYPE ?= "ext4-img" IMAGE_ROOTFS = "${WORKDIR}/rootfs" +# Extra space for rootfs in MB +ROOTFS_EXTRA ?= "64" + def get_image_name(d, name_link): S = d.getVar("IMAGE_ROOTFS", True) path_link = os.path.join(S, name_link) @@ -15,6 +18,22 @@ def get_image_name(d, name_link): '/')) return "" +def get_rootfs_size(d): + import subprocess + rootfs_extra = int(d.getVar("ROOTFS_EXTRA", True)) + + output = subprocess.check_output(['sudo', 'du', '-s', '--block-size=1k', + d.getVar("IMAGE_ROOTFS", True)]) + base_size = int(output.split()[0]) + + return base_size + rootfs_extra * 1024 + +python set_image_size () { + rootfs_size = get_rootfs_size(d) + d.setVar('ROOTFS_SIZE', str(rootfs_size)) + d.setVarFlag('ROOTFS_SIZE', 'export', '1') +} + # These variables are used by wic and start_vm KERNEL_IMAGE ?= "${@get_image_name(d, 'vmlinuz')}" INITRD_IMAGE ?= "${@get_image_name(d, 'initrd.img')}" -- 2.16.1