diff --git a/modules/akmods/README.md b/modules/akmods/README.md new file mode 100644 index 0000000..613cbde --- /dev/null +++ b/modules/akmods/README.md @@ -0,0 +1,40 @@ +> [!WARNING] +> Only Universal Blue based images are officially supported. + +> [!WARNING] +> Universal Blue builds with Fedora 38 & below are not supported. + +> [!WARNING] +> Custom kernels are not supported. + +# `akmods` Module for Startingpoint + +The `akmods` module is a tool used for managing and installing kernel modules. It simplifies the installation of kernel modules, improving the capabilities of your system. + +List of all available kernel modules & versions/tags are here: +https://github.com/ublue-os/akmods + +Ublue-os-akmods-addons & ublue-os-nvidia-addons are already included when necessary, so they are not needed to install. + +To use the `akmods` module, specify the kernel modules you wish to install in the `install:` section of your recipe/configuration file. + +## Example configuration +```yaml +type: akmods +install: + - openrazer + - openrgb + - v4l2loopback + - winesync +``` + +By default, the `akmods` module installs the `main` akmods for `latest` version of Fedora. +`main` akmods are also compatible with other images except `surface(-nvidia)` & `asus(-nvidia)`. + +If you want to install akmods for `surface(-nvidia)` or `asus(-nvidia)` images, or for `older version of Fedora`, change this part in the Containerfile: +See available tags here: https://github.com/ublue-os/akmods/#how-its-organized + +``` +# Change this if you want different version/tag of akmods. +COPY --from=ghcr.io/ublue-os/akmods:main-39 /rpms /tmp/rpms +``` diff --git a/modules/akmods/akmods.sh b/modules/akmods/akmods.sh new file mode 100644 index 0000000..17a5984 --- /dev/null +++ b/modules/akmods/akmods.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -oue pipefail + +BASED_IMAGE=$(echo "${BASE_IMAGE}") + +get_yaml_array INSTALL '.install[]' "$1" + +INSTALL_PATH=("${INSTALL[@]/#/\/tmp/rpms/kmods/*}") +INSTALL_PATH=("${INSTALL_PATH[@]/%/*.rpm}") +INSTALL_STR=$(echo "${INSTALL_PATH[*]}" | tr -d '\n') + +if [[ ${#INSTALL[@]} -gt 0 ]]; then + echo "Installing akmods" + echo "Installing: $(echo "${INSTALL[*]}" | tr -d '\n')" + if [[ "$BASED_IMAGE" =~ "surface" ]]; then + rpm-ostree install kernel-surface-devel-matched $INSTALL_STR + else + rpm-ostree install kernel-devel-matched $INSTALL_STR + fi +fi