Add GPU info to hardware
This commit is contained in:
@@ -185,4 +185,45 @@ def hardware() -> str:
|
|||||||
f"🧬 Arch: {uname.machine}",
|
f"🧬 Arch: {uname.machine}",
|
||||||
f"🐧 Kernel: {uname.release}",
|
f"🐧 Kernel: {uname.release}",
|
||||||
]
|
]
|
||||||
|
gpu_lines = _gpu_info()
|
||||||
|
if gpu_lines:
|
||||||
|
lines.append("")
|
||||||
|
lines.extend(gpu_lines)
|
||||||
return "\n".join(lines)
|
return "\n".join(lines)
|
||||||
|
|
||||||
|
|
||||||
|
def _gpu_info() -> list[str]:
|
||||||
|
# 1) NVIDIA: use nvidia-smi if available for model + memory
|
||||||
|
smi = _cmd("nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv,noheader")
|
||||||
|
if smi and "ERROR:" not in smi and "not found" not in smi.lower():
|
||||||
|
lines = ["🎮 GPU (NVIDIA)"]
|
||||||
|
for line in smi.splitlines():
|
||||||
|
parts = [p.strip() for p in line.split(",")]
|
||||||
|
if len(parts) >= 2:
|
||||||
|
name = parts[0]
|
||||||
|
mem = parts[1]
|
||||||
|
drv = parts[2] if len(parts) > 2 else "n/a"
|
||||||
|
lines.append(f"• {name} | {mem} | driver {drv}")
|
||||||
|
return lines
|
||||||
|
|
||||||
|
# 2) Generic: lspci (VGA/3D/Display)
|
||||||
|
lspci = _cmd("lspci -mm | egrep -i 'vga|3d|display'")
|
||||||
|
if lspci and "ERROR:" not in lspci and "not found" not in lspci.lower():
|
||||||
|
lines = ["🎮 GPU"]
|
||||||
|
for line in lspci.splitlines():
|
||||||
|
# Format: "00:02.0" "VGA compatible controller" "Intel Corporation" "..."
|
||||||
|
parts = [p.strip().strip('"') for p in line.split('"') if p.strip()]
|
||||||
|
if len(parts) >= 4:
|
||||||
|
vendor = parts[2]
|
||||||
|
model = parts[3]
|
||||||
|
lines.append(f"• {vendor} {model}")
|
||||||
|
elif line.strip():
|
||||||
|
lines.append(f"• {line.strip()}")
|
||||||
|
# Try AMD VRAM from sysfs if present
|
||||||
|
vram = _cmd("cat /sys/class/drm/card*/device/mem_info_vram_total 2>/dev/null | head -n 1")
|
||||||
|
if vram and vram.strip().isdigit():
|
||||||
|
bytes_val = int(vram.strip())
|
||||||
|
lines.append(f"• VRAM: {bytes_val / (1024**3):.2f} GiB")
|
||||||
|
return lines
|
||||||
|
|
||||||
|
return []
|
||||||
|
|||||||
Reference in New Issue
Block a user