XR-optimized kernel builds for Bigscreen Beyond 2e on AMD GPUs (Rocky Linux 10).
Builds are run on tinyland-inc/GloriousFlywheel infrastructure, including machines running kernel built from this tree.
Fork of torvalds/linux with CI-built RPMs carrying VR/XR patches.
As of 2026-04-25:
| Area | Status | Notes |
|---|---|---|
| Release artifacts | Proven | Latest public release ships generic and RT RPMs. |
honey rollout |
Proven (generic) | honey is persistently defaulted to the generic XR kernel lane. |
honey RT boot |
Reboot-valid, gated | One-time RT boot and /sys/kernel/realtime=1 verification succeeded; regular use still needs latency and XR smoke. |
yoga rollout |
Proven one-time generic boot | Generic XR RPM install and one-time boot succeeded; stock Rocky remains the persistent fallback. |
| Install surface | Active | GitHub Pages and stable installer paths live in site/. |
| Patch carry set | Localized | Kernel-owned carry patches live under xr/patches/. |
| Local checkout requirement | Case-sensitive | Linux source checkouts must be on Linux or a case-sensitive filesystem; macOS case-insensitive checkouts corrupt case-distinct kernel paths. |
- Releases: https://github.com/tinyland-inc/linux-xr/releases
- Stable install docs:
https://tinyland-inc.github.io/linux-xr/ - Generic installer:
https://tinyland-inc.github.io/linux-xr/install/rocky10-generic.sh - RT installer:
https://tinyland-inc.github.io/linux-xr/install/rocky10-rt.sh - Carry patches:
xr/patches
This repo owns the kernel carry, RPM build, release, installer, and upstream
watch surfaces. It does not own live workstation evidence for honey.
For the Dell Precision 7810 host lane, keep BIOS, SMI, C-state, NUMA, tuned,
rollback, and RT acceptance records in the companion Jesssullivan/Dell-7810
repo. linux-xr may state which kernel features the RPMs ship, but Dell-owned
captures decide whether honey is prepared for RT, BCI, or downstream XR
validation.
This repo now carries a thin flake surface in flake.nix for
developer tooling and cacheable checks. It is intentionally not the canonical
kernel release build.
nix developprovides a shell with the core patch/report tooling.nix flake checkvalidates the patch series and shell-script syntax.nix run .#cadence-report -- --upstream-ref <ref> --stable-ref <ref>runs the weekly cadence report helper from a repo checkout..github/workflows/determinate-ci.ymlpushes those lightweight flake outputs through Determinate CI / FlakeHub Cache.
The real RPM release lane remains build-kernel.yml plus xr/scripts/build-rpm.sh on Linux. Modeling the full kernel RPM build itself as a flake output is a separate, larger piece of work that should stay explicitly tracked.
| Patch | Purpose |
|---|---|
0007-vesa-dsc-bpp.patch |
VESA DisplayID DSC BPP parser, QP table + RC offset fixes for 8bpc 4:4:4 @ 8 BPP |
bigscreen-beyond-edid.patch |
EDID non-desktop quirk for Beyond (BIG/0x1234 + 0x5095) |
patch-6.19.3-rt1.patch |
PREEMPT_RT real-time scheduling (RT variant only, downloaded from kernel.org) |
Patches are maintained in this repository under xr/patches.
RT opinions come primarily from very large AD/DA and related busses used for sensors on BCI server (~100:100 channels of carefully clocked I/O; uses external C777 sample wordclock).
Each release includes two kernel variants:
| Variant | Package | Use case |
|---|---|---|
| Generic | kernel-xr |
Standard XR workloads, desktop compositing |
| RT | kernel-xr-rt |
Sub-ms VR frame scheduling, BCI/AD-DA I/O |
Both variants include the DSC and EDID patches. The RT variant additionally applies PREEMPT_RT for deterministic scheduling.
| Component | Detail |
|---|---|
| Machine | Dell Precision Tower 7810 (0GWHMW) |
| CPU | Dual Xeon E5-2630 v3 (Haswell-EP, 16 cores) |
| Chipset | Intel C610/C612 (Wellsburg PCH) |
| GPU | AMD Radeon 9070 XT (Navi 48 / RDNA4) |
| NIC | Intel 82599ES 10GbE (dual SFP+) |
| Storage | NVMe (CT2000P310SSD8) |
| BIOS | Host-specific; honey BIOS evidence is tracked in Dell-7810 |
| VR | Bigscreen Beyond 2e (3840x1920, DSC required for 90Hz) |
Order of operations for first kernel deployment on a Dell T7810:
This checklist is supplier-side bootstrap guidance for the kernel package. It
does not replace the current Dell workstation validation ledger. Current BIOS,
SMI, C-state, PREEMPT_RT acceptance, NUMA, and rollback evidence for honey
lives in Jesssullivan/Dell-7810; this repo should only claim package
availability, install flow, and kernel carry status.
- Confirm the Dell-owned host runbook says the target is ready for this kernel lane.
- Confirm the intended fallback kernel remains bootable.
- For
honey, treat RT as gated until the Dell RT contract says C3 is acceptable for regular workstation use. - Keep BIOS, SMI, C-state, NUMA, and tuned validation in
Dell-7810; do not update this README as the host evidence ledger.
- Install from Releases or the stable Pages installer surface
- Generic:
curl -fsSL https://tinyland-inc.github.io/linux-xr/install/rocky10-generic.sh | bash - RT:
curl -fsSL https://tinyland-inc.github.io/linux-xr/install/rocky10-rt.sh | bash -
sudo dnf install ./kernel-xr-6.19.5-*.xr.el10.x86_64.rpm - Let
kernel-installcreate the initramfs and BLS entry, or use the manual fallback below if needed. - Reboot through the host runbook's rollback-safe path.
- Verify
uname -rshows the intendedkernel-xrlane.
-
dmesg | grep "VESA.*DSC.*BPP"— parser finds BPP=128 - Capture the headset DRM connector property showing
non-desktop=1; usedrm_info,modetest, DRM debugfs, or sysfs if the host exposes it. -
zcat /proc/config.gz | grep PREEMPT_RT— showsCONFIG_PREEMPT_RT=y - Power on Beyond via HID, check link training in dmesg
- Verify DSC BPP=8.0 selected by VESA DisplayID parser
- Confirm 90Hz output (DTN log: OTG active, no underflow)
-
just deploy honey all(compositor + sway-beyond + monado-beyond via nix copy) -
just deploy-verify honey
The RPM normally uses kernel-install to orchestrate depmod, dracut, and
BLS entry creation. If a target system lacks that path or a recovery procedure
needs a manual entry, use a host-runbook-reviewed fallback like:
# Generate initramfs
sudo dracut --force /boot/initramfs-6.19.5-rt1-1.xr.el10.img 6.19.5-rt1-1.xr.el10
# Create BLS entry (machine-id from /etc/machine-id)
MACHINE_ID=$(cat /etc/machine-id)
sudo tee /boot/loader/entries/${MACHINE_ID}-6.19.5-rt1-1.xr.el10.conf << 'EOF'
title Rocky Linux (6.19.5-rt1-1.xr.el10) XR Kernel
version 6.19.5-rt1-1.xr.el10
linux /vmlinuz-6.19.5-rt1-1.xr.el10
initrd /initramfs-6.19.5-rt1-1.xr.el10.img
options ro tsc=nowatchdog clocksource=tsc nosoftlockup intel_pstate=disable processor.max_cstate=1 intel_idle.max_cstate=0 crashkernel=2G-64G:256M,64G-:512M resume=UUID=<your-swap-uuid> rd.lvm.lv=rl00/root rd.lvm.lv=rl00/swap amdgpu.modeset=1 amdgpu.dc=1 amdgpu.dcdebugmask=0x10
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel
EOF
# Set as default only when the host runbook says this lane is safe to promote.
sudo grubby --set-default /boot/vmlinuz-6.19.5-rt1-1.xr.el10This repo owns the kernel package and installer surface, not the live Dell workstation acceptance ledger.
For honey, the Dell-owned host runbook defines the RT cmdline posture, early
boot debug parameters, T7810 SMI/timer checks, C610 register landmarks, and the
generic-lane fallback rule:
- https://github.com/Jesssullivan/Dell-7810/blob/main/docs/platform/linux-xr-install-and-rollback.md
- https://github.com/Jesssullivan/Dell-7810/blob/main/docs/platform/t7810-rt-boot-troubleshooting.md
- https://github.com/Jesssullivan/Dell-7810/blob/main/docs/platform/rt-research-contract.md
linux-xr should not claim that honey is RT-acceptable because an RT package
exists or because a historical boot succeeded. It may claim C0 supplier facts:
the package was built, the installer exists, and the kernel feature set is
available for Dell-owned validation.
# Extract base config from target machine first:
ssh jess@honey "cat /boot/config-$(uname -r)" > xr/config/base.config
# Build generic kernel:
./xr/scripts/build-rpm.sh \
--kernel-version 6.19.5 \
--xr-release 2
# Build RT kernel:
./xr/scripts/build-rpm.sh \
--kernel-version 6.19.5 \
--xr-release 2 \
--rt-version 6.19.3-rt1Use a Linux or case-sensitive checkout for source truth. On macOS, do not treat a default case-insensitive checkout as authoritative for kernel files because Linux carries case-distinct paths such as xt_DSCP.c and xt_dscp.c.
Tag push (v6.19.5-xr2) or manual dispatch triggers RPM builds on
tinyland-docker ARC runners (4 CPU / 16Gi).
Both variants are built sequentially (sharing ccache) and attached to a single GitHub Release.
Manual dispatch supports building a single variant:
gh workflow run build-kernel.yml -f variant=generic # generic only
gh workflow run build-kernel.yml -f variant=rt # RT only
gh workflow run build-kernel.yml -f variant=both # both (default)Build optimizations:
CONFIG_DEBUG_INFO=n— reduces link-time memory from ~8GB to ~2GB- Parallelism capped at
-j4— prevents OOM on memory-constrained runners - ccache with
save-always: true— warm builds ~1h vs cold ~2h weekly-cadence.yml— fetches upstream refs, renders a markdown report fromxr/patches/series, and opens a weekly cadence issue
6.19.5-2.xr.el10 → uname -r outputs 6.19.5-rt1-2.xr.el10
- Review the weekly cadence issue opened by
.github/workflows/weekly-cadence.yml - Compare against current upstream and stable refs before choosing a merge target
- Update
xr/config/base.configifhoney's running base kernel changes - Tag:
git tag -a v6.20.1-xr1 -m "XR kernel 6.20.1" - CI builds + publishes RPMs
- Promote only after
honeyandyogavalidation
As of 2026-04-25, xr/main was observed at 3beda6220731. Kernel.org has advanced beyond this repo's origin/master snapshot: upstream master was observed at 897d54018cc9, v7.0 exists, and stable v6.19.14 exists. The RPM lane still builds the configured 6.19.5 tarball until the cadence item deliberately moves it.
| Patch/workstream | Upstream status | Next action |
|---|---|---|
| VESA DisplayID DSC BPP parser / amdgpu handling | In-flight upstream series; not present in current upstream checkout | Track Bolyukin v7 fixed-DSC-BPP series and drop this part when it lands. |
| QP table + RC offset adjustments | Local carry; not submitted as a standalone upstream series | Split from the DisplayID parser carry using xr/patches/0007-vesa-dsc-bpp.map.md and decide whether this is evidence-backed upstream material or host-only risk. |
EDID non-desktop quirk for BIG/0x1234 and BIG/0x5095 |
Absent from current upstream checkout | Follow xr/patches/bigscreen-beyond-edid.route.md: local BIG/0x1234 evidence now proves non-desktop=1; next regenerate an upstream/drm-misc topic patch and send via the DRM route. |
| SMI and NUMA posture | Platform/runtime validation, not a linux-xr source patch | Keep kernel config support here; keep validators, tuned profiles, and host captures in Dell-7810/XoxdWM surfaces. |
| PREEMPT_RT | Mainline since 6.12; this repo still downloads RT patches for the configured 6.19.x RT build lane | Re-evaluate when the RPM lane moves to a kernel whose RT posture is fully mainline for our target release. |
Carry patch order is defined in xr/patches/series.