Universal Core Gains NVIDIA Support
Universal Core is a Universal Blue custom image of Fedora CoreOS.
While Universal Blue has been receiving much attention on the desktop; Universal Core (ucore) has been quietly growing its own set of features for the server side of things.
Announcing NVIDIA Support
Today we get to announce a long awaited feature: ucore finally has images available with NVIDIA drivers built in!
As one of our oldest feature requests, which also happend to be created on April 1st, some probably wondered if it was an April Fools Day joke. But no, 6 months later, the feature has landed.
NVIDIA for a Homelab
What could this feature provide a CoreOS/ucore user with an NVIDIA card?
Typically its going to be one of:
- CUDA for AI, or other GPU accelerated workloads
- transcoding video, especially useful for users lacking newer Intel GPUs with QuickSync
FrigateNVR is a great example of a self-hostable open source project which can use both video transcode capabilities and compute capabilities to power a smart home camera solution.
Details
What's actually included with this "NVIDIA feature"?
- nvidia kernel driver
- We pre-build the latest nvidia driver (kmod) from negativo17's fedora-nvidia repository.
- This upstream was chosen over rpmfusion due to its granular packaging concept which allows the installation of only minimal
nvidia-driver-cuda
packages and does NOT require xorg/wayland/etc as dependencies.
- nvidia-container-toolkit
- CoreOS is focussed on container workloads, and to use NVIDIA on containers, you need their toolkit.
- The latest version is installed here which simultaneously supports both root and rootless containers.
- Both podman and docker can be used.
- nvidia container selinux policy
- NVIDIA's toolkit docs give examples of running with SELinux disabled on the container:
podman run --security-opt label=disable --device=nvidia.com/gpu=all ubuntu nvidia-smi
but some users may want more security. - This policy can preserve other SELinux protections while still providing access to the GPU:
podman run --security-opt label=type:nvidia_container_t --device=nvidia.com/gpu=all ubuntu nvidia-smi
- NVIDIA's toolkit docs give examples of running with SELinux disabled on the container:
Older GPUs
If you need an older (or different) driver, there are other ways to install a driver. Our approach is meant to be the easiest for the widest group of users.
Non-NVIDIA Features
Universal Core has plenty to offer even if you don't run NVIDIA GPUs in your server, want to host virtual machines, or even run it in a virtual machine!
Here's a quick summary of what we have to offer:
ucore
images add the following to CoreOS:
- cockpit - GUI for managing the server
- distrobox
- guest VM agents (
qemu-guest-agent
andopen-vm-tools
) - moby-engine(docker), docker-compose and podman-compose
- tailscale and wireguard-tools
- tmux
- Optionally
ucore-hci
builds upon ucore
to provide "hyper-converged infrastructure". These images add more hardware/driver support, more storage tools, and virtualization(hypervisor) support:
- cockpit-machines: Cockpit GUI for managing virtual machines
- Intel WiFi firmware - CoreOS omits this despite including Atheros WiFi firmware
- libvirt: libvirt KVM hypervisor management daemon and client tools
- mergerfs
- snapraid
- udev rules enabling full functionality on some Realtek 2.5Gbit USB Ethernet devices
Testers Wanted!
There's still feature requests in the pipeline and opportunities to contribute. Just using ucore
and providing feedback is incredibly helpful!
If you are interested in using something like Universal Blue, but on a server, take a look at ucore today.