diff --git a/scripts/wk/hw/system.py b/scripts/wk/hw/system.py index d0f4fc02..8da2ed15 100644 --- a/scripts/wk/hw/system.py +++ b/scripts/wk/hw/system.py @@ -115,6 +115,7 @@ def get_ram_list_linux() -> list[list]: cmd = ['sudo', 'dmidecode', '--type', 'memory'] dimm_list = [] manufacturer = 'Unknown' + part_number = 'Unknown' size = 0 # Get DMI data @@ -125,8 +126,12 @@ def get_ram_list_linux() -> list[list]: for line in dmi_data: line = line.strip() if line == 'Memory Device': + # Add to list + if size and (manufacturer or part_number): + dimm_list.append([size, manufacturer, part_number]) # Reset vars manufacturer = 'Unknown' + part_number = 'Unknown' size = 0 elif line.startswith('Size:'): size = line.replace('Size: ', '') @@ -137,7 +142,18 @@ def get_ram_list_linux() -> list[list]: size = 0 elif line.startswith('Manufacturer:'): manufacturer = line.replace('Manufacturer: ', '') - dimm_list.append([size, manufacturer]) + elif line.startswith('Part Number: '): + part_number = line.replace('Part Number: ', '') + + # Add last DIMM + if size and (manufacturer or part_number): + dimm_list.append([size, manufacturer, part_number]) + + # Cleanup list + dimm_list = [ + [dimm[0], dimm[1] if dimm[1] != 'Unknown' else dimm[2]] + for dimm in dimm_list + ] # Save details return dimm_list