+class RpiInitParams:
+ def initialize_parameters(self):
+ logging.debug("Initializing parameterss")
+ n = None
+ for i, p in enumerate(self.part_table):
+ if p['name'] == 'inform':
+ n = i + 1;
+ d = "/dev/" + get_partition_device(self.device, n)
+
+ subprocess.run(['tune2fs', '-O', '^metadata_csum', d],
+ stdin=subprocess.DEVNULL,
+ stdout=None, stderr=None)
+
+ with tempfile.TemporaryDirectory() as mnt:
+ proc = subprocess.run(['mount', '-t', 'ext4', d, mnt],
+ stdin=subprocess.DEVNULL,
+ stdout=None, stderr=None)
+ if proc.returncode != 0:
+ logging.error("Failed to mount {d} in {mnt}")
+ return
+ for param, value in self.params:
+ with open(os.path.join(mnt, param), 'w') as f:
+ f.write(value + '\n')
+ subprocess.run(['umount', d],
+ stdin=subprocess.DEVNULL,
+ stdout=None, stderr=None)
+
+class Rpi3(SdFusingTarget,RpiInitParams):