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
|
spi_rom = False
|
||||||
|
|
||||||
class BaseInfo():
|
class BaseInfo():
|
||||||
|
linux_stamp = None
|
||||||
linux_ver = None
|
linux_ver = None
|
||||||
|
linux_arch = None
|
||||||
cpu_arch = None
|
cpu_arch = None
|
||||||
cpu_name = None
|
cpu_name = None
|
||||||
spi_rom = False
|
spi_rom = False
|
||||||
@@ -432,6 +434,12 @@ class DevInfo():
|
|||||||
x = re.search(r'Linux version (.*?) ', self.dmesg)
|
x = re.search(r'Linux version (.*?) ', self.dmesg)
|
||||||
if x:
|
if x:
|
||||||
ret.linux_ver = x.group(1).strip()
|
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:
|
if verbose:
|
||||||
print(' Linux version: {}'.format(ret.linux_ver))
|
print(' Linux version: {}'.format(ret.linux_ver))
|
||||||
fn_local = 'outdir/openwrt_release.txt'
|
fn_local = 'outdir/openwrt_release.txt'
|
||||||
@@ -545,6 +553,34 @@ class DevInfo():
|
|||||||
#self.kcmdline = type("Names", [object], self.kcmdline)
|
#self.kcmdline = type("Names", [object], self.kcmdline)
|
||||||
return 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):
|
def get_nvram(self, verbose = None, retdict = True):
|
||||||
verbose = verbose if verbose is not None else self.verbose
|
verbose = verbose if verbose is not None else self.verbose
|
||||||
self.nvram = {} if retdict else None
|
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(f' {"%2d" % i} > addr: {addr} size: {size} ro: {ro} name: "{name}" \n')
|
||||||
file.write("\n")
|
file.write("\n")
|
||||||
file.write("_Base_info_:\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(' Linux version: {}\n'.format(info.info.linux_ver))
|
||||||
file.write(' CPU arch: {}\n'.format(info.info.cpu_arch))
|
file.write(' CPU arch: {}\n'.format(info.info.cpu_arch))
|
||||||
file.write(' CPU name: {}\n'.format(info.info.cpu_name))
|
file.write(' CPU name: {}\n'.format(info.info.cpu_name))
|
||||||
|
|||||||
Reference in New Issue
Block a user