Loading...
# SPDX-License-Identifier: GPL-2.0+ # Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved. """Create Ubuntu test disk images""" from img.common import setup_extlinux_image def setup_ubuntu_image(config, log, devnum, basename, version='24.04.1 LTS', use_fde=0, luks_kdf='pbkdf2', encrypt_keyfile=None, master_keyfile=None): """Create a Ubuntu disk image with a FAT partition and ext4 partition This creates a FAT partition containing extlinux files, kernel, etc. and a separate ext4 partition containing the root disk Args: config (ArbitraryAttributeContainer): Configuration log (multiplexed_log.Logfile): Log to write to devnum (int): Device number to use, e.g. 1 basename (str): Base name to use in the filename, e.g. 'mmc' use_fde (int): LUKS version for full-disk encryption (0=none, 1=LUKS1, 2=LUKS2) luks_kdf (str): Key derivation function for LUKS2: 'pbkdf2' or 'argon2id'. Defaults to 'pbkdf2'. Ignored for LUKS1. encrypt_keyfile (str, optional): Path to key file for LUKS encryption. If provided, takes precedence over passphrase. master_keyfile (str, optional): Path to file containing the raw master key. If provided, this exact key is used as the LUKS master key, enabling pre_derived unlock mode. """ vmlinux = 'vmlinuz-6.8.0-53-generic' initrd = 'initrd.img-6.8.0-53-generic' dtbdir = None script = '''## /boot/extlinux/extlinux.conf ## ## IMPORTANT WARNING ## ## The configuration of this file is generated automatically. ## Do not edit this file manually, use: u-boot-update default l0 menu title U-Boot menu prompt 1 timeout 50 label l0 menu label Ubuntu %s 6.8.0-53-generic linux /boot/%s initrd /boot/%s append root=/dev/disk/by-uuid/bcfdda4a-8249-4f40-9f0f-7c1a76b6cbe8 ro earlycon include rescue.conf ''' % (version, vmlinux, initrd) rescue = '''label l0r menu label Ubuntu %s 6.8.0-53-generic (rescue target) linux /boot/%s initrd /boot/%s ''' % (version, vmlinux, initrd) setup_extlinux_image(config, log, devnum, basename, vmlinux, initrd, dtbdir, script, part2_size=60 if use_fde else 1, use_fde=use_fde, luks_kdf=luks_kdf, encrypt_keyfile=encrypt_keyfile, master_keyfile=master_keyfile, extra_conf={'rescue.conf': rescue}) |