diff --git a/Containerfile b/Containerfile
index a3cc1ec50c5..05631c5b3a7 100644
--- a/Containerfile
+++ b/Containerfile
@@ -45,6 +45,7 @@ ARG IMAGE_NAME="${IMAGE_NAME}"
ARG IMAGE_VENDOR="${IMAGE_VENDOR}"
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}"
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR}"
+ARG AKMODS_FLAVOR="${AKMODS_FLAVOR}"
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}"
# dx specific files come from the dx directory in this repo
@@ -52,10 +53,13 @@ COPY build_files/dx build_files/shared /tmp/build/
COPY system_files/dx /
COPY packages.json /tmp/packages.json
+# Copy akmods-extra from ublue
+COPY --from=ghcr.io/ublue-os/akmods-extra:${AKMODS_FLAVOR}-${FEDORA_MAJOR_VERSION} /rpms /tmp/akmods-rpms
+
# Build, Clean-up, Commit
RUN bash -c ". /tmp/build/build-dx.sh" && \
fc-cache --system-only --really-force --verbose && \
rm -rf /tmp/* /var/* && \
mkdir -p /var/tmp && \
chmod -R 1777 /var/tmp && \
- ostree container commit
\ No newline at end of file
+ ostree container commit
diff --git a/build_files/dx/build-dx.sh b/build_files/dx/build-dx.sh
index 40c21e23e50..c6e43823a87 100644
--- a/build_files/dx/build-dx.sh
+++ b/build_files/dx/build-dx.sh
@@ -7,6 +7,7 @@ set -ouex pipefail
sysctl -p
. /tmp/build/copr-repos-dx.sh
+. /tmp/build/install-akmods-dx.sh
. /tmp/build/packages-dx.sh
. /tmp/build/image-info.sh
. /tmp/build/fetch-install-dx.sh
diff --git a/build_files/dx/copr-repos-dx.sh b/build_files/dx/copr-repos-dx.sh
index 27b32cc86d2..b64dcac11c2 100644
--- a/build_files/dx/copr-repos-dx.sh
+++ b/build_files/dx/copr-repos-dx.sh
@@ -12,4 +12,7 @@ wget https://copr.fedorainfracloud.org/coprs/ublue-os/staging/repo/fedora-"${FED
wget https://copr.fedorainfracloud.org/coprs/karmab/kcli/repo/fedora-"${FEDORA_MAJOR_VERSION}"/karmab-kcli-fedora-"${FEDORA_MAJOR_VERSION}".repo -O /etc/yum.repos.d/karmab-kcli-fedora-"${FEDORA_MAJOR_VERSION}".repo
# Fonts
-wget https://copr.fedorainfracloud.org/coprs/atim/ubuntu-fonts/repo/fedora-"${FEDORA_MAJOR_VERSION}"/atim-ubuntu-fonts-fedora-"${FEDORA_MAJOR_VERSION}".repo -O /etc/yum.repos.d/atim-ubuntu-fonts-fedora-"${FEDORA_MAJOR_VERSION}".repo
\ No newline at end of file
+wget https://copr.fedorainfracloud.org/coprs/atim/ubuntu-fonts/repo/fedora-"${FEDORA_MAJOR_VERSION}"/atim-ubuntu-fonts-fedora-"${FEDORA_MAJOR_VERSION}".repo -O /etc/yum.repos.d/atim-ubuntu-fonts-fedora-"${FEDORA_MAJOR_VERSION}".repo
+
+# Kvmfr module
+wget https://copr.fedorainfracloud.org/coprs/hikariknight/looking-glass-kvmfr/repo/fedora-"${FEDORA_MAJOR_VERSION}"/hikariknight-looking-glass-kvmfr-fedora-"${FEDORA_MAJOR_VERSION}".repo -O /etc/yum.repos.d/hikariknight-looking-glass-kvmfr-fedora-"${FEDORA_MAJOR_VERSION}".repo
diff --git a/build_files/dx/install-akmods-dx.sh b/build_files/dx/install-akmods-dx.sh
new file mode 100644
index 00000000000..3949c139759
--- /dev/null
+++ b/build_files/dx/install-akmods-dx.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/bash
+
+set -ouex pipefail
+
+sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo
+if [[ "${FEDORA_MAJOR_VERSION}" -ge "39" ]]; then
+ rpm-ostree install \
+ /tmp/akmods-rpms/kmods/*kvmfr*.rpm
+fi
diff --git a/just/bluefin-system.just b/just/bluefin-system.just
index 981f13d6909..9041836fa78 100644
--- a/just/bluefin-system.just
+++ b/just/bluefin-system.just
@@ -161,6 +161,100 @@ dx-group:
sudo usermod -aG libvirt $USER
@echo "Logout to use docker, incus-admin, lxd, libvirt"
+# Configure system to use vfio and kvmfr
+configure-vfio ACTION="":
+ #!/usr/bin/bash
+ source /usr/lib/ujust/ujust.sh
+ CURRENT_IMAGE=$(rpm-ostree status -b --json | jq -r '.deployments[0]."container-image-reference"')
+ if grep -q "dx" <<< $CURRENT_IMAGE
+ then
+ DEVMODE="enabled"
+ else
+ DEVMODE="disabled"
+ fi
+ if [ "$DEVMODE" == "disabled" ]; then
+ echo 'Please run "ujust devmode" first'
+ exit 0
+ fi
+ OPTION={{ ACTION }}
+ if [ "$OPTION" == "help" ]; then
+ echo "Usage: ujust configure-vfio