if not os.path.exists(dirname):
os.mkdir(dirname)
- def setup_image(ubman, devnum, part_type, img_size=20, second_part=False,
- basename='mmc'):
- """Create a disk image with a single partition
-
- Args:
- ubman (ConsoleBase): Console to use
- devnum (int): Device number to use, e.g. 1
- part_type (int): Partition type, e.g. 0xc for FAT32
- img_size (int): Image size in MiB
- second_part (bool): True to contain a small second partition
- basename (str): Base name to use in the filename, e.g. 'mmc'
-
- Returns:
- tuple:
- str: Filename of MMC image
- str: Directory name of scratch directory
- """
- fname = os.path.join(ubman.config.source_dir, f'{basename}{devnum}.img')
- mnt = os.path.join(ubman.config.persistent_data_dir, 'scratch')
- mkdir_cond(mnt)
-
- spec = f'type={part_type:x}, size={img_size - 2}M, start=1M, bootable'
- if second_part:
- spec += '\ntype=c'
-
- utils.run_and_log(ubman, f'qemu-img create {fname} 20M')
- utils.run_and_log(ubman, f'sfdisk {fname}',
- stdin=spec.encode('utf-8'))
- return fname, mnt
-
+def copy_partition(ubman, fsfile, outname):
+ """Copy a partition into a disk iamge
+
+ Args:
+ ubman (ConsoleBase): U-Boot fixture
+ fsfile (str): Name of partition file
+ outname (str): Name of full-disk file to update
+ """
+ utils.run_and_log(ubman,
+ f'dd if={fsfile} of={outname} bs=1M seek=1 conv=notrunc')
+
def setup_bootmenu_image(ubman):
"""Create a 20MB disk image with a single ext4 partition