From 68adb3108f8111b1be434bf63c03562d72bbbe6f Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Mon, 25 Jan 2021 10:31:02 +0100 Subject: Created an embryo for hardware detection. Supports detecting WiFi and UEFI. This fixes #44 and is a start for #82. --- archinstall/lib/hardware.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 archinstall/lib/hardware.py (limited to 'archinstall/lib/hardware.py') diff --git a/archinstall/lib/hardware.py b/archinstall/lib/hardware.py new file mode 100644 index 00000000..c9483919 --- /dev/null +++ b/archinstall/lib/hardware.py @@ -0,0 +1,10 @@ +import os +from .networking import list_interfaces, enrichIfaceTypes + +def hasWifi(): + if 'WIRELESS' in enrichIfaceTypes(list_interfaces().values()).values(): + return True + return False + +def hasUEFI(): + return os.path.isdir('/sys/firmware/efi') \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 7358dc5a03b0652132ca9debba2aeb43f3610f2b Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Mon, 25 Jan 2021 10:42:02 +0100 Subject: Added some basic/crude graphics checks in hardware.py --- .gitignore | 1 + archinstall/lib/hardware.py | 28 +++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) (limited to 'archinstall/lib/hardware.py') diff --git a/.gitignore b/.gitignore index aebb999d..dc75bed8 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ SAFETY_LOCK **/**.network **/**.target **/**.qcow2 +**/test.py diff --git a/archinstall/lib/hardware.py b/archinstall/lib/hardware.py index c9483919..93eb560f 100644 --- a/archinstall/lib/hardware.py +++ b/archinstall/lib/hardware.py @@ -1,4 +1,5 @@ import os +from .general import sys_command from .networking import list_interfaces, enrichIfaceTypes def hasWifi(): @@ -7,4 +8,29 @@ def hasWifi(): return False def hasUEFI(): - return os.path.isdir('/sys/firmware/efi') \ No newline at end of file + return os.path.isdir('/sys/firmware/efi') + +def graphicsDevices(): + cards = {} + for line in sys_command(f"lspci"): + if b' VGA ' in line: + _, identifier = line.split(b': ',1) + cards[identifier.strip().lower().decode('UTF-8')] = line + return cards + +def hasNvidiaGraphics(): + if [x for x in graphicsDevices() if 'nvidia' in x]: + return True + return False + +def hasAmdGraphics(): + if [x for x in graphicsDevices() if 'amd' in x]: + return True + return False + +def hasIntelGraphics(): + if [x for x in graphicsDevices() if 'intel' in x]: + return True + return False + +# TODO: Add more identifiers \ No newline at end of file -- cgit v1.2.3-70-g09d2