From: Łukasz Stelmach Date: Mon, 2 Oct 2023 09:12:44 +0000 (+0200) Subject: WIP: log all calls to external processes X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5a1e2a5cbfe1e233557f076b8e81bd083ff7f57a;p=platform%2Fkernel%2Fu-boot.git WIP: log all calls to external processes Change-Id: I56145d2a247bc417a4623b150eaed42713f8dcec Signed-off-by: Łukasz Stelmach --- diff --git a/scripts/tizen/sd_fusing.py b/scripts/tizen/sd_fusing.py index 2a79df0b87..c527e13b33 100755 --- a/scripts/tizen/sd_fusing.py +++ b/scripts/tizen/sd_fusing.py @@ -117,12 +117,16 @@ class RpiInitParams: n = i + 1; d = "/dev/" + get_partition_device(self.device, n) - subprocess.run(['tune2fs', '-O', '^metadata_csum', d], + argv = ['tune2fs', '-O', '^metadata_csum', d] + logging.debug(" ".join(argv)) + subprocess.run(argv, stdin=subprocess.DEVNULL, stdout=None, stderr=None) with tempfile.TemporaryDirectory() as mnt: - proc = subprocess.run(['mount', '-t', 'ext4', d, mnt], + argv = ['mount', '-t', 'ext4', d, mnt] + logging.debug(" ".join(argv)) + proc = subprocess.run(argv, stdin=subprocess.DEVNULL, stdout=None, stderr=None) if proc.returncode != 0: @@ -131,7 +135,9 @@ class RpiInitParams: for param, value in self.params: with open(os.path.join(mnt, param), 'w') as f: f.write(value + '\n') - subprocess.run(['umount', d], + argv = ['umount', d] + logging.debug(" ".join(argv)) + subprocess.run(argv, stdin=subprocess.DEVNULL, stdout=None, stderr=None) @@ -335,8 +341,10 @@ TARGETS = { } def device_size(device): - proc = subprocess.run(["sfdisk", "-s", device], - stdout=subprocess.PIPE) + argv = ["sfdisk", "-s", device] + logging.debug(" ".join(argv)) + proc = subprocess.run(argv, + stdout=subprocess.PIPE) size = int(proc.stdout.decode('utf-8').strip()) >> 10 logging.debug(f"{device} size {size}MiB") return size @@ -367,15 +375,21 @@ def mkpart(args, target): #TODO: unmount target devices if support_delete: - logging.debug("Removing old partitions") - subprocess.run(['sfdisk', '--delete', Device]) + logging.info("Removing old partitions") + argv = ['sfdisk', '--delete', Device] + logging.debug(" ".join(argv)) + subprocess.run(argv) else: - logging.debug("Removing old partition table") - subprocess.run(['dd', 'if=/dev/zero', 'of=' + Device, - 'bs=512', 'count=32', 'conv=notrunc']) + logging.info("Removing old partition table") + argv = ['dd', 'if=/dev/zero', 'of=' + Device, + 'bs=512', 'count=32', 'conv=notrunc'] + logging.debug(" ".join(argv)) + subprocess.run(argv) logging.debug("New partition table:\n" + str(target.label)) - proc = subprocess.run(['sfdisk', Device], + argv = ['sfdisk', Device] + logging.debug(" ".join(argv)) + proc = subprocess.run(argv, stdout=None, stderr=None, input=str(target.label).encode()) @@ -391,14 +405,18 @@ def mkpart(args, target): continue logging.debug(f"Formatting {d} as {part['fstype']}") if part['fstype'] == 'vfat': - proc = subprocess.run(['mkfs.vfat', '-F', '16', '-n', part['name'], d], + argv = ['mkfs.vfat', '-F', '16', '-n', part['name'], d] + logging.debug(" ".join(argv)) + proc = subprocess.run(argv, stdin=subprocess.DEVNULL, stdout=None, stderr=None) if proc.returncode != 0: log.error(f"Failed to create FAT filesystem on {d}") sys.exit(1) elif part['fstype'] == 'ext4': - proc = subprocess.run(['mkfs.ext4', '-q', '-L', part['name'], d], + argv = ['mkfs.ext4', '-q', '-L', part['name'], d] + logging.debug(" ".join(argv)) + proc = subprocess.run(argv, stdin=subprocess.DEVNULL, stdout=None, stderr=None) if proc.returncode != 0: @@ -435,9 +453,10 @@ def check_device(args): logging.error(f"Failed to create '{Device}', the file alread exists") sys.exit(1) else: - logging.debug(f"dd if=/dev/zero of={Device} conv=sparse bs=1M count={args.size}") - rc = subprocess.run(["dd", "if=/dev/zero", f"of={Device}", - "conv=sparse", "bs=1M", f"count={args.size}"]) + argv = ["dd", "if=/dev/zero", f"of={Device}", + "conv=sparse", "bs=1M", f"count={args.size}"] + logging.debug(" ".join(argv)) + rc = subprocess.run(argv) if rc.returncode != 0: logging.error("Failed to create the backing file") sys.exit(1) @@ -445,12 +464,11 @@ def check_device(args): if os.path.isfile(Device): global File File = Device - logging.debug(f"losetup --show --partscan --find {File}") - - proc = subprocess.run(["losetup", "--show", "--partscan", - "--find", f"{File}"], - stdout=subprocess.PIPE) + argv = ["losetup", "--show", "--partscan", "--find", f"{File}"] + logging.debug(" ".join(argv)) + proc = subprocess.run(argv, + stdout=subprocess.PIPE) Device = proc.stdout.decode('utf-8').strip() if proc.returncode != 0: logging.error(f"Failed to attach {File} to a loopback device") @@ -493,7 +511,9 @@ def check_ddversion(): return True def get_partition_device(device, idx): - proc = subprocess.run(['lsblk', device, '-o', 'TYPE,KNAME'], + argv = ['lsblk', device, '-o', 'TYPE,KNAME'] + logging.debug(" ".join(argv)) + proc = subprocess.run(argv, stdout=subprocess.PIPE) for l in proc.stdout.decode('utf-8').splitlines(): match = re.search(f"^part\s+(.*[^0-9]{idx})", l) @@ -507,11 +527,13 @@ def do_fuse_file(f, name, target): logging.info(f"No partition defined for {name}, skipping.") return pdevice = "/dev/" + get_partition_device(Device, idx) - proc_dd = subprocess.Popen(['dd', 'bs=4M', - 'oflag=direct', - 'iflag=fullblock', - 'conv=nocreat', - f"of={pdevice}"], + argv = ['dd', 'bs=4M', + 'oflag=direct', + 'iflag=fullblock', + 'conv=nocreat', + f"of={pdevice}"] + logging.debug(" ".join(argv)) + proc_dd = subprocess.Popen(argv, bufsize=(4 << 20), stdin=subprocess.PIPE, stdout=None, stderr=None) @@ -553,21 +575,23 @@ def do_fuse_image_super(tmpd, target): group_size = hal_aligned_size + rootfs_aligned_size super_size = metadata_aligned_size + 2 * group_size - proc = subprocess.run(["lpmake", "-F", - f"-o={super_path}", - f"--device-size={super_size}", - f"--metadata-size={metadata_size}", - f"--metadata-slots={metadata_slots}", - "-g", f"tizen_a:{group_size}", - "-p", f"rootfs_a:none:{rootfs_aligned_size}:tizen_a", - "-p", f"hal_a:none:{hal_aligned_size}:tizen_a", - "-g", f"tizen_b:{group_size}", - "-p", f"rootfs_b:none:{rootfs_aligned_size}:tizen_b", - "-p", f"hal_b:none:{hal_aligned_size}:tizen_b", - "-i", "rootfs_a={root_path}", - "-i", "rootfs_b={root_path}", - "-i", "hal_a={hal_path}", - "-i", "hal_b={hal_path}"], + argv = ["lpmake", "-F", + f"-o={super_path}", + f"--device-size={super_size}", + f"--metadata-size={metadata_size}", + f"--metadata-slots={metadata_slots}", + "-g", f"tizen_a:{group_size}", + "-p", f"rootfs_a:none:{rootfs_aligned_size}:tizen_a", + "-p", f"hal_a:none:{hal_aligned_size}:tizen_a", + "-g", f"tizen_b:{group_size}", + "-p", f"rootfs_b:none:{rootfs_aligned_size}:tizen_b", + "-p", f"hal_b:none:{hal_aligned_size}:tizen_b", + "-i", f"rootfs_a={rootfs_path}", + "-i", f"rootfs_b={rootfs_path}", + "-i", f"hal_a={hal_path}", + "-i", f"hal_b={hal_path}"] + logging.debug(" ".join(argv)) + proc = subprocess.run(argv, stdin=subprocess.DEVNULL, stdout=None, stderr=None)