No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Joseph DiGiovanni 0e9e88c10f
Some checks failed
build-ublue / Build Custom Image (push) Failing after 52s
Initial commit
2026-06-30 13:07:10 -04:00
.forgejo/workflows Initial commit 2026-06-30 13:07:10 -04:00
recipes Initial commit 2026-06-30 13:07:10 -04:00
README.md Initial commit 2026-06-30 13:07:10 -04:00

silverblue-surface

Custom Fedora Silverblue 43 image with the linux-surface kernel and support packages for Microsoft Surface devices.

Built with BlueBuild.

What's included

  • linux-surface kernel (kernel-surface) — patched kernel with full Surface hardware support
  • iptsd — IPTS touchscreen/stylus userspace daemon
  • libwacom-surface — Surface pen and touch input support

Usage

Rebase to this image

After the GitHub Actions workflow builds and pushes the image, rebase your existing Silverblue installation:

# First rebase (unverified, to get the signing key)
rpm-ostree rebase ostree-unverified-registry:ghcr.io/YOUR_GITHUB_USERNAME/silverblue-surface:latest

# After reboot, rebase again with signature verification
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/YOUR_GITHUB_USERNAME/silverblue-surface:latest

Replace YOUR_GITHUB_USERNAME with your GitHub username.

Secure Boot

The linux-surface kernel RPMs are pre-signed with the linux-surface Secure Boot key. To enroll it:

sudo mokutil --import /etc/pki/akmods/certs/public_key.der

Then reboot and follow the MOK enrollment prompt.

Building

Prerequisites

  1. Fork or clone this repo to your GitHub account.
  2. The GitHub Actions workflow runs automatically on push to main.
  3. No additional secrets are required for unsigned builds. For cosign image signing, add a SIGNING_SECRET to your repo secrets (see BlueBuild signing docs).

Local build

# Install BlueBuild CLI
brew install blue-build/tap/bluebuild    # macOS
cargo install blue-build                  # Linux

# Build locally (requires podman)
bluebuild build recipes/recipe.yml

Customization

Edit recipes/recipe.yml to add packages or modules. See the BlueBuild module reference for available modules.

Common additions:

  # Add more surface packages
  - type: rpm-ostree
    install:
      - surface-control    # Surface hardware control CLI
      - surface-dtx-daemon # Surface Book detachment daemon

  # Install flatpaks
  - type: default-flatpaks
    install:
      - org.mozilla.firefox

References