OCI images providing a set of cached kernel RPMs and extra kernel modules to Universal Blue images. Used for better hardware support and consistent build process.
The akmods image is built and published daily. However, there's not a single image but several, given various kernels we now support.
The akmods packages are divided up for building in a few different "groups":
- common- any kmod installed by default in Bluefin/Aurora (or were originally in main images pre-Fedora 39)
- extra- any kmods used by Bazzite but not Bluefine/Aurora
- nvidia- only the nvidia proprietary kmod and addons
- nvidia-open- only the nvidia-open kmod and addons
- zfs- only the zfs kmod and utilities built for select kernels
Each of these images contains a cached copy of the respective kernel RPMs compatible with the respective kmods for the image.
Builds also run for different kernels:
- bazzite- Bazzite builds a kernel with gaming specific patches for the current release of Fedora
- ublue 41- Fedora 41 kernel builds:- main- current default kernel version
- coreos-stable- current Fedora CoreOS stable kernel version
- coreos-testing- current Fedora CoreOS testing kernel version
 
- ublue 42- Fedora 42 kernel builds:- main- current default kernel version
- coreos-stable- current Fedora CoreOS stable kernel version
- coreos-testing- current Fedora CoreOS testing kernel version
 
This table shows what groups build for which kernel and Fedora release:
| Build | Kernel | akmods group | 
|---|---|---|
| bazzite | bazzite | common | 
| bazzite | bazzite | extra | 
| bazzite | bazzite | nvidia | 
| bazzite | bazzite | nvidia-open | 
| 41 | main | common | 
| 41 | main | nvidia | 
| 41 | main | nvidia-open | 
| 41 | coreos-stable | common | 
| 41 | coreos-stable | nvidia | 
| 41 | coreos-stable | nvidia-open | 
| 41 | coreos-stable | zfs | 
| 42 | main | common | 
| 42 | main | nvidia | 
| 42 | main | nvidia-open | 
| 42 | coreos-stable | common | 
| 42 | coreos-stable | nvidia | 
| 42 | coreos-stable | nvidia-open | 
| 42 | coreos-stable | zfs | 
The common images contain related kmod packages, plus:
- ublue-os-akmods-addons- installs extra repos and our kmods signing key; install and import to allow SecureBoot systems to use these kmods
- ublue-os-ucore-addons- a slightly lighter- ublue-os-akmods-addonsfor CoreOS/uCore systems
The nvidia and nvidia-open images contains
- ublue-os-nvidia-addons- installs extra repos enabling our nvidia support- nvidia container selinux policy - uses RHEL9 policy as the closest match
- nvidia-container-tookkit repo - version 1.14 (and newer) provide CDI for podman use of nvidia gpus
 
- ublue-os-ucore-nvidia- a slightly lighter- ublue-os-nvidia-addonsfor CoreOS/uCore systems
| Group | Package | Description | Source | 
|---|---|---|---|
| common | framework-laptop | A kernel module that exposes the Framework Laptop (13, 16)'s battery charge limit and LEDs to userspace | |
| common | kvmfr | KVM framebuffer relay kernel module for use with Looking Glass | |
| common | openrazer | kernel module adding additional features to Razer hardware | |
| common | v4l2loopback | allows creating "virtual video devices" | RPMFusion - free | 
| common | wl | support for some legacy broadcom wifi devices | RPMFusion - nonfree | 
| common | xone | xbox one controller USB wired/RF driver modified to work along-side xpad | |
| extra | ayaneo-platform | Linux drivers for AYANEO x86 handhelds | |
| extra | ayn-platform | Linux drivers for AYN x86 handhelds | |
| extra | bmi260 | kernel module driver for the Bosch BMI260 IMU | |
| extra | evdi | kernel module required for use of displaylink | negativo17 - fedora-multimedia | 
| extra | gcadapter_oc | kernel module for overclocking the Nintendo Wii U/Mayflash GameCube adapter | |
| extra | gpd-fan | kernel module to control fan speeds on GPD handhelds | |
| extra | nct6687d | Linux kernel module for Nuvoton NCT6687-R found on AMD B550 chipset motherboards | |
| extra | ryzen-smu | A Linux kernel driver that exposes access to the SMU (System Management Unit) for certain AMD Ryzen Processors | |
| extra | system76 | A Linux kernel driver for System76 laptops | |
| extra | system76-io | A Linux kernel driver for the System76 Io board, which is used in System76's Thelio desktop line | |
| extra | zenergy | Based on AMD_ENERGY driver, but with some jiffies added so non-root users can read it safely | |
| nvidia | nvidia | nvidia GPU drivers | negativo17 - fedora-nvidia | 
| nvidia-open | nvidia | nvidia-open GPU drivers | negativo17 - fedora-nvidia | 
| zfs | zfs | OpenZFS advanced file system and volume manager (From Ucore, CoreOS Only) | 
We build both the open and closed drivers from NVIDIA. The open driver is the only option for supporting the latest hardware. The closed driver is required for older hardware, but even it doesn't support "legacy" hardware.
nvidia-open - newest current and most open driver supports the following hardware:
- GeForce RTX: 50 Series, 40 Series, 30 Series, 20 Series
- GeForce: 16 Series
- and more: NVIDIA Compatible GPUs list
nvidia - closed proprietary driver supports the following hardware:
- GeForce RTX: 40 Series, 30 Series, 20 Series
- GeForce: 16 Series, 10 Series, 900 Series, 700 Series
- NVIDIA Turing: T4, T4G
- NVIDIA Volta: V100
- NVIDIA Pascal: Quadro: P2000, P4000, P5000, P6000, GP100; Tesla: P100, P40, P4
- NVIDIA Maxwell: Quadro: K2200, M2000, M4000, M5000, M6000, M6000 24GB; - - Tesla: M60, M40, M6, M4
To install one of these kmods, you'll need to install any of their specific dependencies (checkout the build-prep.sh and the specific build-FOO.sh script for details), and ensure you are on a compatible kernel.
Using common images as an example, add something like this to your Containerfile, replacing TAG with the appropriate tag for the image:
COPY --from=ghcr.io/ublue-os/akmods:TAG / /tmp/akmods-common
RUN find /tmp/akmods-common
## optionally install remove old and install new kernel
# dnf -y remove --no-autoremove kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra
## install ublue support package and desired kmod(s)
RUN dnf install /tmp/rpms/ublue-os/ublue-os-akmods*.rpm
RUN dnf install /tmp/rpms/kmods/kmod-v4l2loopback*.rpm
For NVIDIA images, add something like this to your Containerfile, replacing TAG with the appropriate tag for the image:
COPY --from=ghcr.io/ublue-os/akmods-nvidia:TAG / /tmp/akmods-nvidia
RUN find /tmp/akmods-nvidia
## optionally install remove old and install new kernel
# dnf -y remove --no-autoremove kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra
## install ublue support package and desired kmod(s)
RUN rpm-ostree install /tmp/rpms/ublue-os/ublue-os-nvidia*.rpm
RUN rpm-ostree install /tmp/rpms/kmods/kmod-nvidia*.rpm
These images are signed with sisgstore's cosign. You can verify the signature by downloading the cosign.pub key from this repo and running the following command, replacing RELEASE with either 40, 41 or 42:
cosign verify --key cosign.pub ghcr.io/ublue-os/akmods:RELEASE