mirror of
https://github.com/openwrt-xiaomi/xmir-patcher.git
synced 2026-09-22 22:57:55 +03:00
read_info: Add reading linux kernel version and arch (via uname)
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user