Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/lib
diff options
context:
space:
mode:
authorcodefiles <11915375+codefiles@users.noreply.github.com>2023-05-12 02:24:14 -0400
committerGitHub <noreply@github.com>2023-05-12 08:24:14 +0200
commit128db1cdf6698aba09915bb7c044404f713755ef (patch)
tree3d224e5b5aa7eae96c94866ba6ae186efb75d1a6 /archinstall/lib
parent89cefb9a1c7d4c4968e7d8645149078e601c9d1c (diff)
Install the package `sof-firmware` if required (#1811)
Diffstat (limited to 'archinstall/lib')
-rw-r--r--archinstall/lib/hardware.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/archinstall/lib/hardware.py b/archinstall/lib/hardware.py
index b95301f9..8d0fb74f 100644
--- a/archinstall/lib/hardware.py
+++ b/archinstall/lib/hardware.py
@@ -1,7 +1,7 @@
import os
from functools import cached_property
from pathlib import Path
-from typing import Optional, Dict
+from typing import Optional, Dict, List
from .general import SysCommand
from .networking import list_interfaces, enrich_iface_types
@@ -169,3 +169,22 @@ class SysInfo:
debug(f"System is not running in a VM: {err}")
return False
+
+ @staticmethod
+ def _loaded_modules() -> List[str]:
+ """
+ Returns loaded kernel modules
+ """
+ modules_path = Path('/proc/modules')
+ modules: List[str] = []
+
+ with modules_path.open() as file:
+ for line in file:
+ module = line.split(maxsplit=1)[0]
+ modules.append(module)
+
+ return modules
+
+ @staticmethod
+ def requires_sof() -> bool:
+ return 'snd_sof' in SysInfo._loaded_modules()