Skip to content
EverlitePublic

About

EverLive: 100% blob-free userspace VFIO driver & gaming screen for AVerMedia Live Gamer 4K (GC573) — 1440p120, 4K60, L-PCM audio, zero DKMS

Topics

Resources

Contributing

Security policy

Stars

35 stars

Watchers

3 watching

Forks

Repository files navigation

EverLive - AVerMedia GC573 & GC570D Linux Gaming Suite & Userspace Driver

Version Status Driver Kernel Modules Hardware Fund Discord License AI Assisted

EverLive is a Linux console gaming suite and open-source userspace driver for the AVerMedia Live Gamer 4K (GC573) (PCI 1461:0054, Subsystem 1461:5730) and the Live Gamer DUO (GC570D) (PCI 1461:0054, Subsystem 1461:5700). The installed card is detected through subsystem_device and routed to the matching engine; both cards never share a device node.

It is designed to let you play console games (PlayStation 5, Xbox Series X, Nintendo Switch, retro scalers, or secondary PCs) directly on your Linux desktop (Wayland & X11) with low presentation overhead, real-time HDR10 / HLG to SDR filmic tonemapping, synchronized audio (Linear PCM as well as Dolby Digital / DTS 5.1 decoded to stereo), a native V4L2 virtual camera and PipeWire virtual audio track for OBS/Discord, zero-interruption live runtime controls over IPC, pixel-perfect integer scaling for retro and 720p/1080p consoles, selectable hardware EDID profiles (applied on session restart), and custom hardware RGB LED control.

The Live Gamer DUO additionally exposes both HDMI inputs simultaneously: HDMI 1 supports the full 3000-nit BT.2020 HDR LUT path and native lower resolutions, HDMI 2 is published as a second OBS camera, and validated 2.0/5.1 LPCM passthrough is available from both inputs.


Architecture & Design

Starting with version 1.0.0, EverLive transitions from an out-of-tree kernel module (open_gc573) to a userspace driver running in Ring 3 via the Linux standard vfio-pci subsystem (tools/opengc573-userd/).

Technical Characteristics & Trade-offs

  • No DKMS or Kernel Header Dependencies: EverLive's capture engine runs 100% in userspace with zero kernel modules or DKMS rebuilds. The optional Virtual Camera sink uses your distribution's upstream v4l2loopback package; you can opt out during installation with ./install.sh --no-loopback to keep your system entirely module-free.
  • In-Tree Kernel Module (vfio-pci): Uses the standard, upstream vfio-pci module shipped and signed by your distribution. It does not load unsigned out-of-tree .ko drivers, avoiding kernel-taint flags and custom Machine Owner Key (MOK) enrollment under UEFI Secure Boot.
  • Direct Hardware DMA in Userspace: Video and audio Scatter-Gather DMA descriptors are mapped directly into userspace process memory via VFIO IOMMU containers, then uploaded directly to an SDL2 OpenGL or Vulkan (for LSFG-VK Frame Generation) rendering context.
  • Exclusive Hardware Access & Virtual Camera: VFIO requires exclusive binding to the PCI device. Starting in v1.2.0, EverLive includes a native virtual camera sink (/dev/video10 labeled "EverLive Capture" via v4l2loopback), delivering clean raw frames to OBS, Discord, and FFmpeg (with automatic scaling fallback if OBS requests a different negotiated format) simultaneously with the gaming screen or in Headless Studio mode.
  • System Requirements: Requires IOMMU hardware support (Intel VT-d or AMD-Vi / IOMMU) enabled in your motherboard's UEFI/BIOS. (See IOMMU & PCIe Groups).

Note: The legacy kernel module is archived in legacy/open_gc573-kernel/ for historical reference.


Live Gamer DUO (GC570D)

tools/opengc570d-userd/ is a dedicated userspace engine for the dual-input Live Gamer DUO, ported and contributed to EverLive by @PolygonPrincess (PR #52). The launcher reads subsystem_device and automatically uses this engine for 0x5700; all other 1461:0054 cards keep the GC573 engine.

  • Dual HDMI capture: HDMI 1 and HDMI 2 have independent receivers, DMA rings and audio rings. /dev/video10 publishes the selected gaming input and /dev/video11 publishes HDMI 2 for a second OBS source.
  • HDMI 1 HDR path: the validated 3000-nit BT.2020 HDR-to-SDR lookup table and downscaler run in the FPGA preprocessor. Native 640×480, 720×480, 720×576, 1024×768, 1280×720 and 1920×1080 modes are selectable.
  • Audio: validated stereo and 5.1 LPCM passthrough from both inputs, based on upstream commit 4673bb9 and splitter PR #6 (484aa8d).
  • Console Hub controls: HDMI 1 / HDMI 2 input selection, Studio/headless mode, internal-bridge vs downstream EDID policy, HPD pulses, and RGB effects (colorful, breathing, static, off) through gc570d-ctl.
  • Module-free fallback: the same process writes raw YUYV frames to v4l2loopback; no GC570D kernel module is required.

See tools/opengc570d-userd/README.md for build, CLI and hotkey details.


2x Frame Generation (Beta · LSFG-VK)

Important

Optional: LSFG-VK Frame Generation (Vulkan · Beta) EverLive features 2x AI frame generation (30 → 60 FPS for 30 FPS console titles, 60 → 120 FPS for 60 FPS titles) powered by Vulkan and LSFG-VK with a custom low-latency presentation swapchain and cadence deduplication engine.

  • Standard / Non-LSFG Users: If you do not have Lossless Scaling installed, EverLive runs in native zero-latency mode as usual. If frame generation is selected without the required components, EverLive gracefully falls back to native presentation without interrupting gameplay or dropping frames.
  • Requirements for Frame Generation:
    1. Install the Vulkan layer package: yay -S lsfg-vk (or paru -S lsfg-vk / your distro's package manager).
    2. Own Lossless Scaling on Steam and switch to the beta:
      Steam Library -> Right Click "Lossless Scaling" -> Properties -> Betas -> select "lsfg-vk".
    3. EverLive automatically discovers the Steam directory and Vulkan layer across all configured Steam library folders.

Hardware-Verified Capabilities

The following capabilities have been physically tested and verified on physical hardware:

Items marked (v1.2.0 / v1.3.0) were verified on physical hardware with a PlayStation 5: 1440p60 & 1440p120 SDR/HDR capture, real-time HDR10/HLG filmic tonemapping, the OBS virtual camera (/dev/video10), the isolated PipeWire virtual audio track (EverLive Capture Audio), zero-interruption live Gaming $\leftrightarrow$ Studio switching, and Dolby Digital / DTS decoding.

  • PlayStation 5:
    • 2560×1440 @ 60 & 120 FPS (SDR & HDR — v1.3.0): Verified across PS5 Test 1440p Output (60 Hz SDR/HDR and 120 Hz SDR/HDR) and 120 Hz titles (The Finals, Fortnite 120Hz Mode, PS5 Dashboard). Stable frame pacing matching display refresh intervals.
    • 3840×2160 @ 60 FPS (Native 4K SDR & HDR): Verified native 4K capture without downscaling stalls.
    • HDR10 & HLG Filmic Tonemapping (v1.3.0): Automatic IT6805 DRM InfoFrame detection (PQ / HLG) with real-time in-place Hable filmic tonemapping (ITU-R BT.2408 203-nit diffuse white + BT.2020 $\to$ BT.709 chroma matrix) for both the SDL2 game window and OBS (/dev/video10), with live EV exposure adjustment (-2.0 .. +2.0 EV) and zero-copy bypass on SDR signals.
    • Audio DMA & Universal Bitstream Decoding: High-fidelity audio captured over PCIe DMA and played back via SDL2 into PipeWire. Supports both uncompressed Linear PCM (up to 8 channels) and compressed Dolby Digital (AC-3 5.1) and DTS (5.1) bitstreams decoded in real time via libavcodec and downmixed to stereo with libswresample. Failsafe mute-guard prevents digital noise during mode transitions.
    • Dynamic Hot-Switching & Cold-Start Handshake: Verified dynamic mode changes (e.g. 4K60 dashboard $\leftrightarrow$ 1440p120 gameplay $\leftrightarrow$ 1080p) without process crashes or window recreation, plus reliable cold-start locking when the console boots after EverLive is already running.
  • Virtual Camera, Isolated OBS Audio & Live IPC Control (v1.2.0 / v1.3.0):
    • Native V4L2 output (/dev/video10): Verified with a PS5 feeding OBS ("EverLive Capture") while the interactive gaming window is open, with dynamic live attach/detach (v4l2.set) without restarting the stream.
    • Dedicated PipeWire Virtual Audio Track (v1.3.0): Optional in-process tap publishing mixed, decoded HDMI audio directly to "EverLive Capture Audio" so OBS records clean game audio isolated from desktop notifications or voice chat.
    • Zero-Interruption Live Mode Switch (v1.3.0): Switching between Gaming Screen and Headless Studio Mode swaps only the SDL2 window over JSON-RPC IPC (mode.set) — VFIO, DMA rings, HDMI passthrough, audio, and active OBS recordings continue without a single dropped frame.
    • OBS-safe renegotiation: Resolution changes while OBS holds its buffers resume automatically once OBS renegotiates.
  • Pixel-Perfect Integer Scaling & Live Audio Controls:
    • Zero-Blur Integer Scaling: Toggleable pixel-exact integer scaling with nearest-neighbor presentation (1 / l hotkey, --scale integer, Console Hub GUI), automatic Pixel Aspect Ratio (PAR) preservation, and 4:2:2 chroma alignment. Delivers sharp, unblurred presentation for 720p consoles (Xbox 360, PS3, Nintendo Switch) on 1440p (exact 2x) or 4K (exact 3x) and 1080p on 4K (exact 2x) without bilinear resampling blur.
    • In-Game Audio Controls & Hotkey Card: Live keyboard volume adjustments (↑ / ↓ in 5% steps) with auto-unmute, instant mute toggle (m), a toggleable on-screen hotkey guide (F1 / ?), and jitter-free stats OSD reporting true DMA hardware latency (DMA: x.x ms). All adjustments synchronize bidirectionally with the Console Hub GUI in real time over IPC.
  • Hardware EDID Profile Injection (Universal Audio Support — v1.2.0):
    • All standard built-in profiles natively advertise Linear PCM, Dolby Digital (AC-3), and DTS 5.1 Short Audio Descriptors (SADs), allowing consoles to output surround audio automatically without manual profile switching.
    • Default (4K60 / 1440p120 HDR): Standard multi-mode EDID profile.
    • Force 1440p @ 120 Hz: Prioritizes 1440p high-refresh modes for consoles by omitting 4K descriptors.
    • Force 1080p @ 240 Hz: For high-framerate PC capture.
    • Load Custom EDID (.bin): Writes validated 256-byte binary EDID files (header & CEA checksum verified) directly into the IT6805 HDMI receiver chip over I2C upon stream launch.
  • Retro Scalers & Custom Modelines (RetroTINK 4K Pro):
    • Verified on physical hardware by contributor @haxman: 240p retro modes (1440x240, 1920x240 CRT Super-Resolution), 480i / 576i interlaced modes with automatic 4:3 aspect-ratio preservation, PAL 50Hz/100Hz, and Cinema 95.94Hz BFI modes.
  • Hardware RGB LED Lighting:
    • Native 24-bit RGB control via Artix-7 FPGA register writes. Nine lighting modes (static colour profiles plus animated Rainbow Wave (--wave) and Spectrum Cycle (--rainbow)) and a complete off state. Operates without dropped frames or stream interruptions.
  • Standby Daemon Handoff (everlive_userd):
    • Closing the gaming screen hands off the active file descriptor to a lightweight background daemon without triggering a PCIe Function Level Reset (FLR), preserving the HDMI link state and LED configuration.

🎧 Custom EDID Requirements & Audio Unification

Custom EDIDs loaded via --edid /path/to/custom.bin (or the Control Hub's Load Custom EDID (.bin)...) must be exactly 256 bytes — one base block plus one CTA-861 extension block — and pass EverLive's header and checksum validation.

Unless --raw-edid is given, EverLive rewrites the CTA-861 Audio Data Block of the custom file so it advertises L-PCM (8 ch), Dolby Digital (AC-3 5.1) and DTS 5.1, exactly like the built-in profiles. Files that carry no audio block at all get a complete audio block appended.

  • Spare budget: replacing an existing L-PCM-only audio block needs 6 spare bytes in the extension block; appending a new audio block needs 10 bytes. EverLive reclaims the optional Video Capability Data Block (3 bytes) if that is the only way to keep every detailed timing.
  • Fallback: if the extension block is completely full, the file is used unmodified and the streamer logs [EDID] Using raw audio block from '…' (unification bypassed: no space for SADs).
  • Opt-out: --raw-edid (alias --no-unify-edid) loads the file bit-exact, e.g. for debugging or vendor-specific EDIDs.

🎬 Video Demonstration (1-Click Launch & PS5 120 FPS Gameplay)

Watch EverLive v1.0.0 in action on Linux: launching directly from the desktop application launcher, transitioning to the PlayStation 5 dashboard, and loading into The Finals at 1440p @ 120 FPS with low latency and synchronous audio playback (embedded video below is compressed for GitHub's 10 MB web-embed limit; full-bitrate 1440p120 file available in Releases):

everlive_v1_launch_demo_web.mp4

📺 Streaming & Recording with OBS

Starting with version 1.2.0, EverLive supports native V4L2 Loopback output directly from its blob-free userspace engine, giving you three distinct workflows:

Option 1: Native Virtual Camera (/dev/video10) — Recommended

EverLive streams raw YUYV capture frames directly to a virtual video device node (/dev/video10 labeled "EverLive Capture"):

  1. Enable in Control Hub: Check Virtual Camera (/dev/video10) (and optionally Virtual Audio Track) in EverLive Hub, or launch with ./play.sh --loopback --audio-tap.
  2. Add to OBS Studio: Add a standard Video Capture Device (V4L2) source, select EverLive Capture (/dev/video10), and set Resolution to Device Default (or matching your console, e.g. 1920×1080 / 2560×1440).
  3. Capture Isolated Game Audio: Add an Audio Input Capture (PipeWire) source and select Monitor of EverLive Capture Audio (isolates console audio from desktop sounds and Discord chat).

Tip

OBS & EverLive Launch Order & Source Refresh:
EverLive automatically handles format negotiation with OBS:

  • EverLive opened first, then OBS: OBS connects immediately at the full native resolution (e.g. 1440p or 4K).
  • OBS opened first, then EverLive: If OBS was already open before EverLive started, OBS's V4L2 capture thread may pause while waiting for initial frames. In OBS, simply click on the Video Capture source properties or toggle the source visibility ($👁$) to refresh the feed — EverLive's built-in on-the-fly scaler (libswscale) will automatically adopt and fit the frames into OBS's active canvas without dropping.

Note

Standby & "No Signal" Screen (v1.2.2):
When your console is powered off or during HDMI handshakes, EverLive automatically pumps a clean 30 FPS "No Signal" standby card to both the game window and /dev/video10. This prevents OBS from freezing on a black or corrupted frame during signal loss.

Note

Prerequisite: install.sh installs v4l2loopback where your distribution packages it and preconfigures two nodes (/etc/modprobe.d/everlive-v4l2loopback.conf + /etc/modules-load.d/): /dev/video10 (EverLive Capture, fed by the GC573 or the DUO's selected input) and /dev/video11 (EverLive Capture HDMI 2, the DUO's second input). If the module is not packaged (e.g. Fedora without RPM Fusion), install your distribution's v4l2loopback-dkms once — play.sh loads it automatically with exclusive_caps=0 when nodes are missing.

Tip

Simultaneous 1440p120 Gaming & 4K OBS Recording:
If you game at 1440p @ 120 FPS, set your OBS canvas/output to 4K (3840×2160) and right-click the EverLive V4L2 source $\to$ Transform $\to$ Fit to Screen. OBS will hardware-upscale the native 1440p120 feed to 4K in real time for crisp YouTube uploads with the high-bitrate VP9/AV1 codec!

Option 2: Studio / Headless Mode (Zero Display Overhead)

If you play directly on a TV or secondary monitor connected to the GC573's HDMI OUT (Hardware Passthrough), you do not need an open game window on your PC desktop:

  • Click Start Studio / Headless (OBS) in the Hub (or run ./play.sh --loopback --headless).
  • EverLive runs silently in the background, consuming minimal CPU/GPU resources while delivering unscaled frames to OBS and playing HDMI audio.
  • Seamlessly toggle between Gaming Screen and Studio Mode at any time using the on-the-fly mode switcher.

Option 3: Direct Wayland Window Capture (PipeWire)

If you prefer not to use v4l2loopback, you can still capture the interactive game window directly in OBS Studio via Window Capture (PipeWire).


⚙️ IOMMU & PCIe Group Requirements

VFIO relies on hardware-level memory protection provided by your CPU and motherboard chipset.

1. Enable IOMMU in UEFI/BIOS

Ensure virtualization and IOMMU support are enabled in your motherboard settings:

  • Intel: Enable VT-d (Virtualization Technology for Directed I/O).
  • AMD: Enable AMD-Vi or IOMMU.

2. Enable IOMMU in the Linux Kernel Command Line

Enabling VT-d / AMD-Vi in your UEFI/BIOS is necessary, but not always sufficient. Many Linux distributions leave secondary PCIe slots unmanaged by the IOMMU unless explicitly commanded at boot.

Add the following parameter to your bootloader (e.g. GRUB):

  • Intel: intel_iommu=on iommu=pt
  • AMD: amd_iommu=on iommu=pt

How to configure GRUB:

  1. Edit /etc/default/grub:
    sudo nano /etc/default/grub
  2. Append the parameter to GRUB_CMDLINE_LINUX_DEFAULT:
    GRUB_CMDLINE_LINUX_DEFAULT="... intel_iommu=on iommu=pt"
    
  3. Update GRUB and reboot:
    # Ubuntu / Debian / Mint
    sudo update-grub
    
    # Arch / Fedora / CachyOS
    sudo grub-mkconfig -o /boot/grub/grub.cfg
    
    sudo reboot

Tip

Symptom if missing: The card blinks red, and running dmesg | grep -i vfio shows:
vfio-pci ...: probe with driver vfio-pci failed with error -22
(Error -22 / -EINVAL means the Linux kernel has not allocated an IOMMU group for this PCIe slot).

3. Check IOMMU Grouping

On modern motherboards, PCIe slots are usually isolated into individual IOMMU groups. You can verify your card's group isolation with this command:

for d in /sys/kernel/iommu_groups/*/devices/*; do
    echo -n "Group $(basename $(dirname $(dirname $d))): "
    lspci -nns $(basename $d)
done | grep -i '1461:'
  • Clean Isolation (Typical): The AVerMedia card is the only device listed in its IOMMU group (apart from PCIe bridge root ports). No further action is required.
  • Shared Group (Rare / Older Boards): If other endpoint devices (such as a SATA controller or USB controller) share the exact same IOMMU group, VFIO will require all devices in that group to be managed by vfio-pci. Alternatively, if your platform lacks ACS isolation, you can test moving the card to a different PCIe slot.

🚀 Installation & Quickstart

The installer sets up standard userspace dependencies, udev permissions for non-root VFIO access, and memory-locking limits for 4K DMA mapping.

git clone https://github.com/Everlite/EverLive.git
cd EverLive
sudo ./install.sh

🧊 Strictly module-free setup (no loopback)

If you chose EverLive for its module-free architecture and want to keep the system completely free of DKMS modules and kernel headers, skip the optional Virtual Camera:

sudo ./install.sh --no-loopback

--skip-loopback is an alias, and sudo ./install.sh --help lists all options. Without v4l2loopback, /dev/video10 is unavailable — capture the game window via PipeWire instead (see Streaming & Recording with OBS). Re-running the installer without the flag re-enables the Virtual Camera.

What the installer does:

  1. Installs the build/runtime dependencies: SDL2, FFmpeg development libraries (libavcodec/libswresample/libavutil), libcap (setcap), PipeWire/WirePlumber, xcb-util-cursor, PySide6, standard build tools, optional lsfg-vk frame generation layer (skip with --no-framegen), and v4l2loopback where packaged (skip with --no-loopback).
  2. Configures udev rules (/etc/udev/rules.d/70-everlive.rules) and early-boot VFIO autobind (/etc/modules-load.d/everlive-vfio.conf + /etc/modprobe.d/everlive-vfio.conf) granting your local user read/write access to the card's VFIO group and binding vfio-pci.
  3. Sets /etc/security/limits.d/99-everlive-memlock.conf and adds cap_ipc_lock capabilities so unprivileged users can pin DMA buffers required for native 4K and dual-HDMI capture.
  4. Blacklists the legacy out-of-tree open_gc573 module (/etc/modprobe.d/blacklist-everlive-legacy.conf) so it cannot race with vfio-pci at boot.
  5. Compiles userspace engines: opengc573-userd (gc573_user_streamer, everlive_userd, gc573_user_probe, gc573_user_diag) and opengc570d-userd (opengc570d-userd, gc570d-ctl, libgc570d-v4l2.so).
  6. Configures an isolated PipeWire audio sink (50-everlive-capture.conf) providing the dedicated "EverLive Capture Audio" source for OBS.
  7. Configures the Virtual Camera: /etc/modprobe.d/everlive-v4l2loopback.conf (video_nr=10,11 card_label="EverLive Capture,EverLive Capture HDMI 2" exclusive_caps=0) and loads the module at boot via /etc/modules-load.d/.
  8. Installs the desktop application launcher and icon.

(To cleanly remove EverLive and revert all system configurations, run sudo ./uninstall.sh).

Launching:

./play.sh

# Or launch directly hidden into the system tray:
./play.sh --tray

Or start EverLive directly from your desktop application launcher.

🔄 Updating EverLive:

git pull
./play.sh

EverLive's launcher (play.sh) automatically detects modified source files and incrementally recompiles the userspace binaries on startup. Rebuilding replaces the binaries and clears their cap_ipc_lock file capability; the launcher re-applies it automatically when needed (one authorization prompt).


Controls & Hotkeys

Key / Action Function
f or F11 Toggle borderless fullscreen
1 or l Toggle scaling mode (fit bilinear $\to$ integer nearest-neighbor)
g Cycle 2x Frame Generation mode (Off $\to$ 60 → 120 FPS $\to$ 30 → 60 FPS)
h Toggle real-time HDR10 / HLG $\to$ SDR filmic tonemapping
a Cycle Aspect Ratio (auto $\to$ 16:9 $\to$ 4:3 $\to$ stretch)
↑ / ↓ (or + / -) Volume up / down (in 5% steps)
m Toggle audio mute
F1 or ? Toggle on-screen hotkey help overlay
p Cycle OSD position (Top-Right $\to$ Bottom-Right $\to$ Bottom-Left $\to$ Top-Left; default Top-Right)
o, i or Tab Toggle the on-screen stats overlay
s or F10 Toggle overlay and mouse cursor (Streamer Mode toggle; --streamer-mode starts with both hidden)
Esc or q Exit the game window (or dismiss the F1 help overlay)

VSync is a launch option (--vsync / Hub checkbox) and cannot be toggled while streaming. Volume, mute, and scaling can also be controlled through the EverLive Console Hub GUI.


Architecture Diagram

flowchart TD
  subgraph Hardware["HDMI Source & Capture Hardware"]
    source["PlayStation 5 / Xbox / PC / Scaler"] -->|HDMI 2.0| it6805["IT6805 HDMI Receiver"]
    it6805 --> fpga["Xilinx Artix-7 FPGA"]
    fpga --> pcie["PCIe Gen2 x4"]
  end

  subgraph Kernel["Linux Kernel (Ring 0)"]
    vfio["vfio-pci (Standard Upstream Driver)<br/>IOMMU Container & DMA Remapping"]
    v4l2dev["v4l2loopback<br/>/dev/video10 & video11 'EverLive Capture'"]
    pcie --> vfio
  end

  subgraph Userspace["EverLive Userspace Engine (Ring 3)"]
    direction TB
    vfio -->|"Userspace DMA Mapping"| streamer["gc573_user_streamer (C Engine)<br/>- Scatter-Gather Video DMA (3-6 buffers)<br/>- L-PCM + AC-3/DTS Decoder (libavcodec)<br/>- IT6805 I2C Matrix & EDID Programmer<br/>- Artix-7 24-bit RGB Control<br/>- OSD, Aspect Ratio, Framegen & V4L2 Sink"]
    
    streamer -->|"OpenGL / Vulkan Direct Scanout"| window["Game Window (1440p120 / 4K60)"]
    streamer -->|"Native YUYV Frames"| v4l2dev
    streamer -->|"SDL2 Audio / PipeWire"| audio["Headset / Speakers (Stereo Downmix)"]

    gui["EverLive Console Hub (Qt / Python)<br/>Launch Modes, EDID, Aspect, LED, Volume"] -.->|Manages| streamer
    streamer -.->|"FD Handoff"| daemon["everlive_userd (Standby Daemon)<br/>Maintains state & LED without FLR"]
  end

  subgraph OBS["Broadcasting (Optional)"]
    window -.->|"PipeWire Window Capture"| obspw["OBS Studio (Window)"]
    v4l2dev -->|"Video Capture Device (V4L2)"| obsv4l2["OBS Studio / Discord (Virtual Camera)"]
  end
Loading

💖 Support the Project & Hardware Fund

EverLive is an independent, non-commercial open-source project created and maintained by Everlite.

Why is there a GitHub Sponsors link?

Writing clean-room Linux drivers for proprietary capture hardware requires having the physical cards on the workbench. PCIe capture cards cannot be emulated; reverse-engineering HDMI bridge chips, I2C matrices, and DMA ring descriptors requires register dumping, oscilloscope verification, and testing on real hardware.

All sponsorship funds are used exclusively to purchase second-hand hardware (via eBay, Kleinanzeigen, and community sales) to expand open-source Linux capture card support.

🎯 Hardware Acquisition Targets:

  • AVerMedia Live Gamer 4K 2.1 (GC575): HDMI 2.1 4K144 / 4K120 PCIe capture card.
  • Elgato 4K60 Pro (MK.1 & MK.2) / Cam Link Pro: Widely used PCIe capture cards currently lacking open-source Linux drivers. (Note: AVerMedia Live Gamer DUO GC570D is fully supported starting in v1.4.0 thanks to @PolygonPrincess).

👉 Sponsor @Everlite on GitHub Sponsors


Legal and Licensing

Component Path License Notes
Userspace Driver & Streamer tools/opengc573-userd/ GPL-2.0-only Userspace VFIO implementation. Copyright © 2026 Everlite.
Live Gamer DUO Engine tools/opengc570d-userd/ GPL-2.0-only Derived from neoyagami/OpenGC570D with userspace VFIO-PCI + PipeWire port by @PolygonPrincess. Upstream base 4673bb9, splitter PR #6 484aa8d, userspace import afbb06e. EverLive integration and frontend © 2026 Everlite & PolygonPrincess.
EverLive Console Hub tools/everlive/, play.sh, install.sh GPL-2.0-only Python/Qt hub and launcher scripts. Copyright © 2026 Everlite.
Legacy Kernel Module legacy/open_gc573-kernel/ GPL-2.0-only Historical kernel module based on work by ostrich, extended by Everlite.

Disclaimers & Trademark Notice

  • AVerMedia, Live Gamer 4K (GC573), Live Gamer DUO (GC570D) and Live Gamer BOLT (GC555) are trademarks or registered trademarks of AVerMedia Technologies, Inc. PlayStation, PS4, and PS5 are registered trademarks of Sony Interactive Entertainment Inc. All trademarks belong to their respective owners and are used strictly for compatibility identification. This independent open-source project is not affiliated with, authorized, maintained, sponsored, or endorsed by AVerMedia Technologies, Inc., Sony, or any of their affiliates.
  • This software is provided "AS IS", without warranty of any kind. Register configuration and EDID operations are performed at your own risk.

Acknowledgements

  • @PolygonPrincess: For authoring the Live Gamer DUO (GC570D) userspace VFIO engine and contributing dual-input capture support to EverLive (PR #52), as well as pioneering userspace VFIO control of AVerMedia hardware that inspired EverLive's v1.0.0 architecture.
  • @neoyagami: For the maintained OpenGC570D reverse-engineering project, including the validated dual-input GC570D audio and splitter work that EverLive's Live Gamer DUO engine builds on.
  • @haxman: For extensive modeline analysis, RetroTINK 4K Pro hardware testing, and verifying high-refresh and retro video timings.
  • @ostrich: Author of the gc555 driver; his reverse-engineering of the Artix-7 register space laid the foundation for early GC573 open-source development.
  • @lou-perret: Author of the historic breakthroughs in PRs #7 and #8 (continuous capture pipeline, DMA sync, and audio constraints) that turned static DMA filler into the very first live picture on Linux, and PR #53 (CAP_IPC_LOCK instant 4K capture).
  • @derrod: For early Linux reverse-engineering work and documentation on AVerMedia capture hardware.

🤖 Transparency & AI Assistance

In the spirit of open-source transparency: this project is heavily AI-assisted.
The project owner (Everlite) directed architecture, tested on physical hardware (PlayStation 5, displays, audio sync), analyzed hardware behavior, and validated performance. The implementation, refactoring, and debugging were written and iterated with generative AI / LLM coding agents.

About

EverLive: 100% blob-free userspace VFIO driver & gaming screen for AVerMedia Live Gamer 4K (GC573) — 1440p120, 4K60, L-PCM audio, zero DKMS

Topics

Resources

Contributing

Security policy

Stars

35 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages