Install the package `sof-firmware` if required (#1811)

This commit is contained in:
codefiles 2023-05-12 02:24:14 -04:00 committed by GitHub
parent 89cefb9a1c
commit 128db1cdf6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 1 deletions

View File

@ -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()

View File

@ -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")

View File

@ -161,6 +161,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.")