read_info: Add reading linux kernel version and arch (via uname)

pull/86/head
remittor 8 months ago
parent 47622ef93d
commit 3fd19c10da

@ -31,7 +31,9 @@ class Bootloader():
spi_rom = False
class BaseInfo():
linux_stamp = None
linux_ver = None
linux_arch = None
cpu_arch = None
cpu_name = None
spi_rom = False
@ -432,6 +434,12 @@ class DevInfo():
x = re.search(r'Linux version (.*?) ', self.dmesg)
if x:
ret.linux_ver = x.group(1).strip()
kernel_version = self.get_kernel_version(verbose = verbose)
if not ret.linux_ver:
if kernel_version:
ret.linux_ver = kernel_version
ret.linux_stamp = self.kernel_ver_stamp
ret.linux_arch = self.kernel_arch
if verbose:
print(' Linux version: {}'.format(ret.linux_ver))
fn_local = 'outdir/openwrt_release.txt'
@ -545,6 +553,34 @@ class DevInfo():
#self.kcmdline = type("Names", [object], self.kcmdline)
return self.kcmdline
def get_kernel_version(self, verbose = None):
verbose = verbose if verbose is not None else self.verbose
self.kernel_ver_stamp = None
self.kernel_version = None
self.kernel_buildver = None
self.kernel_arch = None
fn = 'kver.txt'
cmd = f'uname -a > /tmp/{fn} ; ' # Linux XiaoQiang 5.4.213 #0 SMP PREEMPT Tue Feb 18 11:11:56 2025 armv7l GNU/Linux
cmd += f'uname -r >> /tmp/{fn} ; ' # 5.4.213
cmd += f'uname -v >> /tmp/{fn} ; ' # #0 SMP PREEMPT Tue Feb 18 11:11:56 2025
cmd += f'uname -m >> /tmp/{fn} ; ' # armv7l
cmd += f'uname -p >> /tmp/{fn} ; ' # <Processor type>
out_text = self.run_command(cmd, fn)
if not out_text:
return None
#if 'Linux' not in out_text:
# return None
out_lines = out_text.split('\n')
if len(out_lines) < 4:
return None
self.kernel_ver_stamp = out_lines[0].strip()
self.kernel_version = out_lines[1].strip()
self.kernel_buildver = out_lines[2].strip()
self.kernel_arch = out_lines[3].strip()
if verbose:
print(f" Kernel version: {self.kernel_ver_stamp}")
return self.kernel_version
def get_nvram(self, verbose = None, retdict = True):
verbose = verbose if verbose is not None else self.verbose
self.nvram = {} if retdict else None
@ -1110,6 +1146,7 @@ if __name__ == "__main__":
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 stamp: {}\n'.format(info.info.linux_stamp))
file.write(' Linux version: {}\n'.format(info.info.linux_ver))
file.write(' CPU arch: {}\n'.format(info.info.cpu_arch))
file.write(' CPU name: {}\n'.format(info.info.cpu_name))

Loading…
Cancel
Save