MVGAL Troubleshooting Guide
Version: 0.5.0
Last Updated: 2026-06-06
Table of Contents
- Diagnostic Commands
- Installation Issues
- GPU Not Detected
- Kernel Module Issues
- Performance Issues
- Steam / Proton Integration
- Daemon & Runtime Issues
- Multi-GPU Issues
- Collecting Logs & Reporting Bugs
Diagnostic Commands
MVGAL provides several diagnostic tools. Run these first when troubleshooting:
# System-wide health check
mvgal-info --all
# Daemon status
mvgald --status
# Connected GPUs
mvgal-info --devices
# Scheduler status
mvgal-sched status
# Power state
mvgal-powercurve --status
# Configuration
mvgal-config --dump
# Full system report (for bug reports)
mvgal-info --report > mvgal-report.txt
Installation Issues
Package Not Found
Problem: dnf install mvgal fails with "package not found".
Solutions:
- Enable the COPR repository:
- Verify your Fedora version (
mvgalrequires Fedora 40+): - For other distributions, build from source (see
docs/KERNEL_MODULE.md).
dnf copr enable mvgal/mvgal
dnf install mvgal
cat /etc/fedora-release
Dependency Conflicts
Problem: dpkg / rpm reports conflicting dependencies.
Solutions:
- Ensure your kernel headers are installed:
- Verify Vulkan SDK ≥ 1.3 is installed:
- For Rust components, ensure
rustc≥ 1.70:
# Fedora/RHEL
dnf install kernel-devel kernel-headers
vulkaninfo --summary
rustc --version
Build Fails from Source
Problem: cmake --build build fails.
Solutions:
- Check CMake output for missing dependencies.
- Ensure you have the full build chain:
- For kernel module, verify DKMS:
# Fedora/RHEL
dnf builddep mvgal
dkms status
GPU Not Detected
No GPUs Listed
Problem: mvgal-info --devices returns empty.
Checks:
- Verify GPUs are visible to Linux:
- Check the daemon is running:
- Check dmesg for MVGAL messages:
- Verify the NVIDIA/AMD driver is loaded:
lspci | grep -E "VGA|3D|Display"
systemctl status mvgald
dmesg | grep -i mvgal
lsmod | grep -E "nvidia|amdgpu|i915"
Vendor-Specific GPU Not Showing
NVIDIA:
- Ensure
nvidia-drmis loaded withmodeset=1:
cat /sys/module/nvidia_drm/parameters/modeset
# should output: Y
nvidia-smi
AMD:
- Ensure
amdgpusupports your GPU:
dmesg | grep amdgpu | head -20
cat /sys/kernel/debug/dri/*/p2p_support
Intel:
- Ensure
i915is loaded:
lsmod | grep i915
ls /lib/firmware/i915/
Moore Threads:
- Ensure
mtgpudriver is installed (vendor-provided). - Beta status: some P2P features may not work.
Kernel Module Issues
Module Fails to Load
Problem: modprobe mvgal fails.
# Check kernel version compatibility
uname -r
# Check module file
modinfo mvgal
# Try loading with verbose output
insmod /lib/modules/$(uname -r)/extra/mvgal/mvgal.ko 2>&1
# Check dmesg
dmesg | tail -50 | grep -i mvgal
Diagnostic:
Solutions:
- Kernel too old: MVGAL requires 5.15 LTS minimum.
- Missing symbols: Rebuild against current kernel headers.
- Secure Boot: The packaged modules are signed with a per-install key.
sudo mvgal-enroll-mok
sudo reboot
# At the blue MOK Manager screen after reboot, choose
# 'Enroll key from disk' -> /usr/lib/mvgal/keys/mvgal-signing.der
# and confirm with the one-time password you chose.
Enroll it with the firmware MOK database (do NOT disable Secure Boot): After enrollment, modprobe mvgal works and Key was rejected by service no longer appears. DKMS-rebuilt modules are signed with the same key automatically.
- SELinux: Check for AVC denials:
ausearch -m avc -ts recent | grep mvgal
DKMS Build Fails
Problem: dkms build mvgal fails.
Solutions:
- Ensure kernel-devel matches running kernel:
- Check DKMS logs:
dnf list installed kernel-devel
uname -r
cat /var/lib/dkms/mvgal/*/build/make.log
IOCTL Returns -ENOTTY
Problem: Application reports "Invalid argument" on IOCTL.
Checks:
- Verify device node exists:
- Check device permissions (should be
crw-rw----): - Ensure udev rules are installed:
ls -l /dev/mvgal*
getfacl /dev/mvgal0
cat /etc/udev/rules.d/99-mvgal.rules
Performance Issues
Below Expected FPS
# Check GPU utilisation
mvgal-info --utilization
# Check scheduler
mvgal-sched status
mvgal-sched analyze
# Check power state (may be throttling)
mvgal-powercurve --status
# Check VRAM usage
mvgal-info --memory
Diagnostic:
Solutions:
- VRAM pressure: Reduce texture quality or resolution.
- Thermal throttling: Check GPU temperatures:
- Scheduler mismatch: Try a different strategy:
- Power state: Ensure gamemode is active:
mvgal-info --temperature
mvgal-sched setpolicy <appname> rld
gamemoded -s
Stuttering / Frame Pacing
# Check frame time variance
mvgal-info --frametimes
# Check for compositor interference
mvgal-info --compositor
Diagnostic:
Solutions:
- Disable compositor for full-screen apps.
- Use
AFFscheduler strategy to pin the app to one GPU: - Check NTSYNC is working (for Windows games):
mvgal-sched setpolicy <appname> aff
cat /proc/sys/kernel/ntsync
Steam / Proton Integration
Steam Games Not Detected
Problem: Games launch but MVGAL is not intercepting.
Solutions:
- Verify the Steam runtime hook is active:
- Set Proton environment variables:
- Check the frame pacer is running:
ls ~/.steam/steam/steamapps/common/MVGAL/
# In Steam launch options for the game:
MVGAL_ENABLE=1 PROTON_ENABLE_NVAPI=1 %command%
ps aux | grep mvgal-pacer
Proton FPS Lower Than Native
Problem: Proton games underperform native Linux games.
# Check which WCL shims are loaded
mvgal-info --wcl
# Check DXVK/VKD3D-Proton integration
mvgal-info --vulkan-layers
Diagnostic:
Solutions:
- Ensure VKD3D-Proton is up to date.
- Enable NVAPI translation for NVIDIA GPUs:
- Try different scheduler strategies — some games benefit from
PRI.
PROTON_ENABLE_NVAPI=1
Daemon & Runtime Issues
Daemon Won't Start
Problem: systemctl start mvgald fails.
# Check daemon status
systemctl status mvgald
# Check journal
journalctl -u mvgald -n 50
# Try running manually as root
sudo mvgald --foreground
Diagnostic:
Solutions:
- D-Bus service not installed:
- Socket conflict: Check port 8080 (REST API) is free:
- Permission denied on
/dev/mvgal*:
sudo cp runtime/daemon/org.mvgal.daemon.conf /etc/dbus-1/system.d/
ss -tlnp | grep 8080
sudo chmod 666 /dev/mvgal0
IPC Connection Failure
Problem: Tools can't connect to daemon.
# Test D-Bus
dbus-send --system --dest=org.mvgal.daemon --print-reply /org/mvgal/daemon org.freedesktop.DBus.Ping
# Check Unix socket
ls -l /run/mvgald.sock
Diagnostic:
Multi-GPU Issues
Only One GPU Used
Problem: All work lands on a single GPU.
Solutions:
- Check scheduler strategy — default is
PRIwhich prefers fastest: - Force load balancing:
- Verify P2P connectivity between GPUs:
mvgal-sched getpolicy <appname>
mvgal-sched setpolicy <appname> rr
mvgal-info --topology
P2P Transfer Slow
Problem: Inter-GPU transfers bottleneck performance.
# Check topology
mvgal-info --topology
# Measure bandwidth
mvgal-info --benchmark-p2p
Checks:
Solutions:
- Use NVLink/XGMI devices when available.
- For PCIe-connected GPUs, ensure PCIe Gen4+.
- The
GAstrategy prefers NVLink peers. - Consider
PPLfor pipeline workloads — reduces cross-GPU transfers.
Collecting Logs & Reporting Bugs
Gather System Info
# Comprehensive report
mvgal-info --report > mvgal-report.txt
# Daemon logs
journalctl -u mvgald > mvgald.log
# Kernel messages
dmesg | grep -i mvgal > mvgal-kernel.log
# Configuration
mvgal-config --dump > mvgal-config.txt
Debug Mode
Enable debug logging for more detail:
# Daemon
sudo mvgald --foreground --log-level=debug
# Per-app
MVGAL_LOG_LEVEL=debug ./myapp
Report a Bug
Report issues at: https://github.com/your-org/mvgal/issues
Include:
mvgal-info --reportoutputdmesg | grep -i mvgalmvgald.log- Steps to reproduce
- GPU model and driver version
See docs/ARCHITECTURE.md for system architecture. See docs/KERNEL_MODULE.md for module build/install. See docs/HARDWARE_COMPATIBILITY.md for supported hardware.