index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | archinstall/lib/hardware.py | 21 | ||||
-rw-r--r-- | archinstall/scripts/guided.py | 3 |
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() diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py index 37cc1cad..9cb4ec2a 100644 --- a/archinstall/scripts/guided.py +++ b/archinstall/scripts/guided.py @@ -182,6 +182,9 @@ def perform_installation(mountpoint: Path): PipewireProfile().install(installation) elif audio == 'pulseaudio': installation.add_additional_packages("pulseaudio") + + if SysInfo.requires_sof(): + installation.add_additional_packages('sof-firmware') else: info("No audio server will be installed") |