Merge pull request #615 from conqp/native_cpu_detection
Native cpu detection
This commit is contained in:
commit
81f3ccad40
1 changed files with 21 additions and 13 deletions
|
@ -1,7 +1,7 @@
|
|||
import json
|
||||
import os
|
||||
import subprocess
|
||||
from typing import Optional
|
||||
from pathlib import Path
|
||||
from typing import Iterator, Optional
|
||||
|
||||
from .general import SysCommand
|
||||
from .networking import list_interfaces, enrich_iface_types
|
||||
|
@ -57,25 +57,33 @@ AVAILABLE_GFX_DRIVERS = {
|
|||
"VMware / VirtualBox (open-source)": ["mesa", "xf86-video-vmware"],
|
||||
}
|
||||
|
||||
CPUINFO = Path("/proc/cpuinfo")
|
||||
|
||||
|
||||
def cpuinfo() -> Iterator[dict[str, str]]:
|
||||
"""Yields information about the CPUs of the system."""
|
||||
cpu = {}
|
||||
|
||||
with CPUINFO.open() as file:
|
||||
for line in file:
|
||||
if not (line := line.strip()):
|
||||
yield cpu
|
||||
cpu = {}
|
||||
continue
|
||||
|
||||
key, value = line.split(":", maxsplit=1)
|
||||
cpu[key.strip()] = value.strip()
|
||||
|
||||
|
||||
def has_wifi() -> bool:
|
||||
return 'WIRELESS' in enrich_iface_types(list_interfaces().values()).values()
|
||||
|
||||
|
||||
def has_amd_cpu() -> bool:
|
||||
try:
|
||||
return subprocess.check_output("lscpu | grep AMD", shell=True).strip().decode()
|
||||
except:
|
||||
pass
|
||||
return False
|
||||
|
||||
return any(cpu.get("vendor_id") == "AuthenticAMD" for cpu in cpuinfo())
|
||||
|
||||
def has_intel_cpu() -> bool:
|
||||
try:
|
||||
return subprocess.check_output("lscpu | grep Intel", shell=True).strip().decode()
|
||||
except:
|
||||
pass
|
||||
return False
|
||||
return any(cpu.get("vendor_id") == "GenuineIntel" for cpu in cpuinfo())
|
||||
|
||||
def has_uefi() -> bool:
|
||||
return os.path.isdir('/sys/firmware/efi')
|
||||
|
|
Loading…
Reference in a new issue