From patchwork Sun Jan 26 12:37:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?J=C3=B6rg_Sommer?= X-Patchwork-Id: 56126 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 63DACC02181 for ; Sun, 26 Jan 2025 12:38:13 +0000 (UTC) Received: from EUR02-VI1-obe.outbound.protection.outlook.com (EUR02-VI1-obe.outbound.protection.outlook.com [40.107.241.91]) by mx.groups.io with SMTP id smtpd.web10.29287.1737895082587663919 for ; Sun, 26 Jan 2025 04:38:03 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@navimatix.de header.s=selector1 header.b=gfm7Tcqa; spf=pass (domain: navimatix.de, ip: 40.107.241.91, mailfrom: joerg.sommer@navimatix.de) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M+BuYF8p4jn9ADIrqN+6SvXkr0noZp7dUb1FG58OIJSVJRbrcvp/ZiZSzv7X4OILqLu/CUT2Pu/dIJFHeLYcZRrXNwcsuI7NZC6YfFdSk8urKftgMLDUsNxhrgt3P8DaOLK0EhuqZzfpNtfIdMh3t24r8R2LC9vYbEuf5FFYgfanyVOlGbxKZIBN7vRtWJhB/yEUHyEWuDZdi1kfX8dJ7xZE9gHE02hxHXK5H18tgtatr8BhBAYECCrAbUqt60T7ZxJmqg183XYq0sBE9jAY0efteDqD4BABXK6bW6I7BiF93UnyTk/W3muAgSeu5x4UYw/he+wllKxuQhP/3mhFXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AUvOuSz6jibGYY+h0974igw8yREFrAWkVDWhtF8iweY=; b=aerDYKDKmpFbWmkC+0mBeQCbg3PNAZDu/WHUfhZMF6F8hZHXR9/P/M2c7QMFZrqgbQ2vTTrRnscUmfmGZZDF2TNOu5h/qaeSPrvEuu9HJIe951hULrrxRfYI03GHG1OYiWvUVlO/dvLGHdvJLlniV/EVfVuaVlRSXIZLZhjaUTh1/jRD17ZWgu6AwPFNADG0XxJjjT+TaQ0rqJcBTgOd40Dgl0IvjMK0D/T6HSSyM7c+dtooDV9o9K9OpBjcUadCNxKMv4QLwUjMRIOnFxXCqrw8r58DNmYl7Wy+QeWVLgVd4vNAm0eIq2zkDDEHMxPKr8/NlVq1XENXgLzrtuAsoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=navimatix.de; dmarc=pass action=none header.from=navimatix.de; dkim=pass header.d=navimatix.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=navimatix.de; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AUvOuSz6jibGYY+h0974igw8yREFrAWkVDWhtF8iweY=; b=gfm7Tcqa3ivoKf58zj25jZHTgmJXGXCSJ7RAyyxB5oyj4jad2OZMsoxR54EfjnrsTNKpuzfFjf/t5fy30Bs9el1x1PlmbHpmb5Qfw4MrHmRh+4ccAp2l+9aUbJZAxKPgeRLa3ZQgbf4KUQlrzeyhXZ5id5wjTQVjbMLbWR3AlAc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=navimatix.de; Received: from DU2PR01MB8293.eurprd01.prod.exchangelabs.com (2603:10a6:10:2d4::5) by AS1PR01MB8914.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4c6::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8377.21; Sun, 26 Jan 2025 12:37:58 +0000 Received: from DU2PR01MB8293.eurprd01.prod.exchangelabs.com ([fe80::d520:1b9e:a30e:69a7]) by DU2PR01MB8293.eurprd01.prod.exchangelabs.com ([fe80::d520:1b9e:a30e:69a7%4]) with mapi id 15.20.8377.021; Sun, 26 Jan 2025 12:37:56 +0000 Date: Sun, 26 Jan 2025 13:37:54 +0100 From: =?utf-8?b?SsO2cmc=?= Sommer To: docs@lists.yoctoproject.org, joerg.sommer@navimatix.de CC: =?utf-8?b?SsO2cmc=?= Sommer Subject: [PATCH] doc/wic,README.hardware: add dd option conv=sparse Message-ID: <2cef35c707ab0d985578ca4d042cfb33902dbcb5.1737894876.git.joerg.sommer@navimatix.de> X-Mailer: git-send-email 2.47.1 Content-Disposition: inline X-ClientProxiedBy: BE0P281CA0036.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:14::23) To DU2PR01MB8293.eurprd01.prod.exchangelabs.com (2603:10a6:10:2d4::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR01MB8293:EE_|AS1PR01MB8914:EE_ X-MS-Office365-Filtering-Correlation-Id: 0d0b6467-ea06-4afe-3b34-08dd3e064256 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: Zjsv65xaXf5dfttQu48xyYCoyNGujIW3UBb+4KH/qKhI7YOanisn6AZ1NJhIZDUb8CISbOLCht0UQcy5LNtBm16vKCF6t/m1JM8tdvyGqCnlXgdKuHmq+KipA/Bu9zMU9xfik+UKxh4vlBoxBAEAWLApn1lriofBhCowj9b09tqOPgaso6y/NTsMu1xbwd9azXSq7hwR4oV7aGcl9GoB8j6I0ntD7Jw7b+phRRRY8pWq9uZAkhK0so5VeDXfI5XgoOrGe1V4U0sUj6hGCQVxLzws9OMd7BATlf9Yo5uS7c2dvL8uTy0oKFMiEn0DL3T8vSmICh03fpYxQmw21y8DoW2vCPcleis5Q1GEqCFey50R1ktij7VJ1PIUeuLOenllCi55+uxMER8cIhTS+mvyzrUqAfUzgJHUDCCPe0FwmwIug4KyZb4rSuGjuE8QKXMC6VA8QKe3cm3U0NbZLXDn2aK9XfM2Qq6U7wZTT0CNwmI3RiwYdPFyhxNxiFE1S5E1dVPymRD4E3I0fMI52hExi8yirl30QbWfreGU9H1JuWRUZ7Lz/5+ESyIX4pELsem2GFgDsdPZkoqEfMEnah7W+DkzcKs9bRBbBp6V6gexA79BsfSSXMd/zmFtcbiBujhyJZo0Mvr86cR+soV1G6bzhhHNa+/JS7Uwcuc0eaL8TtMmm9dt9ahZGWW06aWQYmgtYcViZVe3iNcDllypabeAtgh3/IeezcMo3poK6+LjZ2Sm3StvVj32xBNuizUCxDMOk80TB3FFtecg0RpRI/akNfQKTuR3+BIu2SGRBkcYzwQGonM9Q19LqYweOqhPvIWSxZ1GFeU2S4/EYLQNVTtLE6BiZ7MTe9fnOjLJ+nZW5QyBKbGyMEVFiRmKsG7GKP4jauereZA/n6uIZ6aPRn3IGtC+7RTN5+fgQSKB0sOUfPoZ7f30Nho7W2AEaAkogzJ+CxKant0M6IgYPsG9BguJo/LragA4xGVJMEpqgr/e85pdQdjG+lL5F/NI3LUH+eRyuhbowe6svnV06mAd5dS5GZVjwkczfg6AIKjTbeQ6H83EcQWfi5jOs/b1T90SYShHTR8hqf17fl68VqXKR2JWXJtLV6QoFUdBOiPPGEuhOe7q0jT1OMRV8eqXm4Y+q4vlFS4ePH+eH5qogbh5ZDM1bFBzaG2qw2ONqj8gmFuT4giFhgt6yxGV0oSrD9jmGerzmDcXhFLBhIGdgGlSHIJyNeHC7PgGOlVrl/yx3HW/4phNXW+Kd/fQPGK4VrITCSASGwpAY2tHrEup3rAF8N6LgIJF7ICdx23hFDFxFSdnkwKYp9CzeFwDml8+MhkiQ5AMwSlQ0RhBKffGO992JKhdrnp3FFPOhAkrENGl5YBRSMLG6cU8cVi+CFkyrAu0Zw1c X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR01MB8293.eurprd01.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Ld+ZqV43iuPGdnYKK9e48pb4G0QZ5sPg+LnMJpPz6SlPATFBPJSM7HxFJ5tpuiSQBFoVOijmogDaHnIweaYz9jg19D5kohQl1Q+dSFFKR4GRPZ9jy+sV5rDd/nO8Ft6I1zP0U7uMbEqVHHyo7c9SfJQov5V4estGAHLjt6eL7WGt06KS3It4ho9R4Gq+sYJoO49bDWt2fAO7/PcMkIVKCyxLAn9w9yI8lOkFte2ncpESTPOBtAnrwq4HSMoxD6MnPSTlzNs7qlNPJVz0K/MDhrAbBy2cZtwZBnmnWQ3JS/6dwsjUUuy7DNOifz7NkoN8Oj5kNJtA5eOR8eNKy92g0uuHsD07qyY0LAGFUmgBm8jvTSW0jzwq2AOZXPTtyJxqJPyMcX4+g9+bk10IOSg75lVcSF3q23HyjsNL4fY1UkR5e79j7KaBXkzRI59oBgrj80mxqvrRFEEflncJKNudjVrIc7mt6kN67ro42OnwUWhyWhV4gRCHiunC2wLJbgD+0uPYBrpRHH+6MBqpCLcvCsD/V+LI8Eovtn9QStfxpS7kpr3EUU1usWrnB2HvuK8bZuH/R6NyMFXbTzMSE9l2XEiUKZPCqAcymhUaM3PF3t0SYbspNshSOldDO1AXU0MOCqNt8u06jsJjwoQm/ZXmUX610wK3kNZec16JTqDaRQw5O6Brc8mmpIPokiTLhbzH3bjlBmCYbKBtJ78/xSnFDjS6wEHksTraYxF1N1y8qw21v17FC3y8JfCAVZg62gaoZeIOjLOWSBAl7PDg6TBRMwOSgehSAqecPfkTaAh+Ay+pW8w8kuYkymJh7XilV+BclEpTGDUFG+EoStUUD6znfQiPeNro7XFVM0yjyqwRrixVgtEr01dklI26Cwq3wSAXu/+WzTMky8WoFFT/SQ9kn/jabdtl9N8Ec2IzGsjcH9bivvSGsV+eD62nKI9nzdQ/ydCkeP1nkoSpRGpVk2In8fU3ESfT0fcFXpO73RA09MCvVYlhipL3TQsxnfcY+NU+aCbJZpzDbcG6QX3V4B1rVe6cVydUGB0K8TOm4hwp9cdXjOTR6J6L9DL8PHL7QfJp3VnSbT29kD4gVa5G6FCPQZr6Cb4jitzYsnbfu42/FF5u6jm2glJoakEQf4ibZcNSxSQnNwt+8KJwAStQXOwXIuH3DAs9WROGuSIyZ6rvtBwcjQ/222l5KgK/RPhHvQLd1PRKZ/Y9AQT8zK8pld/yj/MsZsTeoVC326q32k47u8tSr9zEnaMX+nMHRh7DFgG+xwjAulB/xT8Xw7MhAmvlzy23MXcPmXKyD0mm6IvNXiV/BM2/3D9mrOappveDMQQe0nfocO+IG3TiJq5w5PFhUE9o1d4Eaz4N/aWfpKqrZthJe7gEvkTzqIJFlcxwRALLGKEwR3+l0lALjNPOTzHdudEHwcNsSKs1ka+0fRMowJgIPb4qXyoMLaSvce/Atw4OnLR2EZZocZdZT6J/Tdx39PCwPFm944TkpzF/tBf0reOzBZzSVeCF2ZU139hrqKIrJq7Mc1fHVVfBXlfbj5lJ0vHGvAPzHfQBJFzUcOu5e7gdovMt3nLKxeuApTnPjJFXn14ihS4Ye6oUoQMYmGnixw== X-OriginatorOrg: navimatix.de X-MS-Exchange-CrossTenant-Network-Message-Id: 0d0b6467-ea06-4afe-3b34-08dd3e064256 X-MS-Exchange-CrossTenant-AuthSource: DU2PR01MB8293.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jan 2025 12:37:56.1039 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: c87b4f54-b992-4813-8f3f-4a876324197f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1T14hv5AcfYvi/KuzKuvF0LY+fLHJUh2vdmT7qrQhb45LQk/b3x+88AJcf6DK/cjT5J1YWU7KnTwVFRZBV/HmUY/1bvvoA2pHWO8Km/BM5c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR01MB8914 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 26 Jan 2025 12:38:13 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/docs/message/6178 From: Jörg Sommer The GNU implementation of dd supports the skipping of sparse blocks which can speed-up the write, esp. of wic images with big holes: $ sudo dd if=image.wic of=/dev/sdb bs=2M 2683+1 Datensätze ein 2683+1 Datensätze aus 5628735488 Bytes (5,6 GB, 5,2 GiB) kopiert, 84,2773 s, 66,8 MB/s $ sudo dd if=image.wic of=/dev/sdb bs=2M conv=sparse 2683+1 Datensätze ein 2683+1 Datensätze aus 5628735488 Bytes (5,6 GB, 5,2 GiB) kopiert, 11,3314 s, 497 MB/s Signed-off-by: Jörg Sommer --- documentation/dev-manual/wic.rst | 8 +++++++- meta-yocto-bsp/README.hardware.md | 20 ++++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) I don't know if I should amend the "dd if=directdisksdb-gpt-201710090938-sdb.direct" in line 595, because this wouldn't match the output of dd. diff --git a/documentation/dev-manual/wic.rst b/documentation/dev-manual/wic.rst index fced0e170c..792fa35fa7 100644 --- a/documentation/dev-manual/wic.rst +++ b/documentation/dev-manual/wic.rst @@ -507,7 +507,13 @@ built your image, and boot from the media. You can write the image by using or :: - $ sudo dd if=mkefidisk-201804191017-sda.direct of=/dev/sdX + $ sudo dd if=mkefidisk-201804191017-sda.direct of=/dev/sdX bs=2M conv=sparse + +.. note:: + + The option ``conv=sparse`` is a GNU extension to skip writing of blocks + with purely zeros. If your ``dd`` (e.g. BusyBox) does not support it, you + can safely remove this option. .. note:: diff --git a/meta-yocto-bsp/README.hardware.md b/meta-yocto-bsp/README.hardware.md index d2cc05f909..a824963e4e 100644 --- a/meta-yocto-bsp/README.hardware.md +++ b/meta-yocto-bsp/README.hardware.md @@ -91,7 +91,7 @@ Depending on the device, it can boot from a traditional hard-disk, a USB device, or over the network. Writing generated images to physical media is straightforward with a caveat for USB devices. The following examples assume the target boot device is /dev/sdb, be sure to verify this and use the correct -device as the following commands are run as root and are not reversable. +device as the following commands are run as root and are not reversible. USB Device: @@ -105,7 +105,11 @@ USB Device: 2. Use the `dd` utility to write the image to the raw block device. For example: - # dd if=core-image-minimal-genericx86.hddimg of=/dev/sdb + # dd if=core-image-minimal-genericx86.hddimg of=/dev/sdb bs=2M conv=sparse + + The option `conv=sparse` is a GNU extension to skip writing of blocks with + purely zeros. If your `dd` doesn't support it, you can safely drop this + option. If the device fails to boot with "Boot error" displayed, or apparently stops just after the SYSLINUX version banner, it is likely the BIOS cannot @@ -119,9 +123,11 @@ USB Device: 2. Use a ".wic" image with an EFI partition - 1. With a default grub-efi bootloader: + 1. With a default grub-efi bootloader (`conv=sparse` is a GNU extension to + skip empty blocks for speed up; remove it, if your `dd` doesn't support + it): - # dd if=core-image-minimal-genericx86-64.wic of=/dev/sdb + # dd if=core-image-minimal-genericx86-64.wic of=/dev/sdb bs=2M conv=sparse 2. Use systemd-boot instead. Build an image with `EFI_PROVIDER="systemd-boot"` then use the above `dd` command to write the image to a USB stick. @@ -179,8 +185,10 @@ From a Linux system with access to the image files perform the following steps: $ bitbake core-image-minimal - 2. Use the "dd" utility to write the image to the SD card. For example: + 2. Use the `dd` utility to write the image to the SD card. For example + (`conv=sparse` is a GNU extension to skip empty blocks for speed up; remove + it, if your `dd` doesn't support it): - # dd if=core-image-minimal-beaglebone-yocto.wic of=/dev/sdb + # dd if=core-image-minimal-beaglebone-yocto.wic of=/dev/sdb bs=2M conv=sparse 3. Insert the SD card into the Beaglebone and boot the board.