diff --git a/read_info.py b/read_info.py index 20caa76..3cc4b1f 100644 --- a/read_info.py +++ b/read_info.py @@ -124,6 +124,8 @@ class DevInfo(): def get_dmesg(self, verbose = None): verbose = verbose if verbose is not None else self.verbose self.dmesg = self.run_command('dmesg', 'dmesg.log') + if self.dmesg is None: + print(f'ERROR on downloading "/tmp/dmesg.log"') return self.dmesg def get_part_table(self, verbose = None): @@ -148,6 +150,7 @@ class DevInfo(): print(' %2d > addr: 0x%08X size: 0x%08X name: "%s"' % (i, addr, size, name)) if verbose: print(" ") + self.get_part_readonly() return self.partlist def get_part_table2(self, verbose = None): @@ -175,7 +178,21 @@ class DevInfo(): print(' %2d > addr: 0x%08X size: 0x%08X name: "%s"' % (i, addr, size, name)) if verbose: print(" ") + self.get_part_readonly() return self.partlist + + def get_part_readonly(self, verbose = None): + verbose = verbose if verbose is not None else self.verbose + if self.partlist: + for i, mtd in enumerate(self.partlist): + readonly = self.run_command(f'cat /sys/class/mtd/mtd{i}/mtdblock{i}/ro', 'mtd_ro.txt', verbose = 0) + if readonly is None: + return False + if readonly.startswith('0'): + self.partlist[i]['ro'] = False + if readonly.startswith('1'): + self.partlist[i]['ro'] = True + return True def get_part_num(self, name_or_addr, comptype = None): if not self.partlist: @@ -886,13 +903,17 @@ if __name__ == "__main__": os.rename(fn_local, fn_old) info = DevInfo(verbose = 1, infolevel = 99) - #if not info.partlist: - # die("В ядерном логе не обнаружена информация о разметке NAND") file = open(fn_local, "w") file.write("_MTD_partitions_:\n") for i, part in enumerate(info.partlist): - file.write(" %2d > addr: %08X size: %08X name: \"%s\" \n" % (i, part['addr'], part['size'], part['name'])) + name = part['name'] + addr = "%08X" % part['addr'] + size = "%08X" % part['size'] + ro = "?" + if 'ro' in part: + ro = '1' if part['ro'] else '0' + file.write(f' {"%2d" % i} > addr: {addr} size: {size} ro: {ro} name: "{name}" \n') file.write("\n") file.write("_Base_info_:\n") file.write(' Linux version: {}\n'.format(info.info.linux_ver))