This page covers the most common issues encountered when deploying and running primemixxx on Denon Prime Go and Prime 4 hardware. Issues are grouped by symptom. For failed experiments and dead-end approaches, see Broken Experiments.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/gueritta/primemixxx/llms.txt
Use this file to discover all available pages before exploring further.
Critical Pitfalls
Before diving into individual issues, review these ten critical rules. Violating any of them causes hard-to-diagnose failures:- Never delete
.midi.xmlfiles — a missing mapping causes the MIXXX skin to render only a toolbar with no decks or library. - Only
lib/bin/mixxxworks —mixxx.realcrashes with an EGLFS error.bin/mixxxmust symlink to../lib/bin/mixxx. - Mali DDK must be r1p0 — bundle’s
libEGL.so/libGLESv2.somust symlink to the device’s nativelibmali.so.14.0, not the Buildroot r0p0 default. - Bundle must NOT contain system libs —
libc.so.6,libm.so.6,libpthread.so.0,libdl.so.2,librt.so.1,libstdc++.so.6,libgcc_s.so.1,ld-linux-armhf.so.3,libatomic.so.1must come from the device’s/lib. - Restart MIXXX correctly —
systemctl restart mixxx-app.servicesilently fails. Usestop+restart engine.service. - Don’t use
print()in MIDI JS — it is silent on device. Useconsole.warn()orengine.log(). - WiFi drops after ~30s — use a keepalive ping or the USB Ethernet gadget at
192.168.42.1. - Audio latency — use
latency=5insoundconfig.xml;latency=4causes xruns. - USB music library needs seeding — MIXXX won’t scan USB music unless the
directoriestable in the SQLite DB has an entry. - Repo is always source of truth — commit locally first, then deploy. Never edit files directly on the device without updating the repo.
Connectivity
Can't SSH to device
Can't SSH to device
Check WiFi network: Ensure the development machine and Prime Go are on the same WiFi network. The device advertises via mDNS as WiFi keepalive: WiFi SSH sessions drop after ~30 seconds of silence. Run a keepalive ping in a separate terminal:Alternatively, install
primego.local.Use USB Ethernet gadget: Connect a USB-C cable between the device and computer. The device appears at the fixed address 192.168.42.1 — no network configuration required, no dropout risk.99-wifi-power-save.rules via the device services installer — it permanently disables WiFi power save on the device.WiFi power save causing SSH drops
WiFi power save causing SSH drops
Disable WiFi power save manually. This setting is not persistent across reboots:For a persistent fix, install the udev rule:This installs
99-wifi-power-save.rules, which runs iw dev wlan0 set power_save off automatically whenever wlan0 comes up.MIXXX Crashes
MIXXX segfaults (exit code 139 / signal 11)
MIXXX segfaults (exit code 139 / signal 11)
Cause 1 — System libs in bundle: The bundle must NOT include these libraries — they must come from the device’s
/lib:libc.so.6libm.so.6libpthread.so.0libdl.so.2librt.so.1libstdc++.so.6libgcc_s.so.1ld-linux-armhf.so.3libatomic.so.1
scripts/dev-fix-device-libs.sh.Cause 2 — Mali DDK mismatch: See the dedicated accordion below.Cause 3 — Wrong binary: See the EGLFS crash accordion below.Mali DDK mismatch — 'r1p0 vs r0p0'
Mali DDK mismatch — 'r1p0 vs r0p0'
The error message Verify the GPU revision before debugging further:
DDK is not compatible... r1p0 vs r0p0 means the bundled EGL/GLES libraries were built against Mali DDK r0p0 (Buildroot default), but the device’s kernel driver is r1p0. The fix is to symlink the bundle’s EGL libraries to the device’s native Mali library:EGLFS crash — 'OpenGL windows cannot be mixed with others'
EGLFS crash — 'OpenGL windows cannot be mixed with others'
This crash occurs when using the wrong MIXXX binary. Buildroot produces two outputs:
| Binary | Size | Works? |
|---|---|---|
lib/bin/mixxx | ~10 MB (stripped) | ✅ Yes |
mixxx.real | ~17 MB (unstripped) | ❌ No |
bin/mixxx must be a symlink pointing to ../lib/bin/mixxx:Prime 4 DSI display segfault
Prime 4 DSI display segfault
The Prime 4 uses a DSI-1 display (not LVDS-1 like the Prime Go). MIXXX may segfault during EGL initialization due to DDK/DSI incompatibility with the native display.Use If MIXXX runs without crashing in offscreen mode, the binary is healthy and the issue is display-specific. Native Prime 4 display support requires further investigation.
-platform offscreen to verify the binary itself is functional before troubleshooting the display:MIXXX Service
MIXXX doesn't start after reboot
MIXXX doesn't start after reboot
Check the service state:If the service is masked, unmask it:Then follow the correct restart sequence below.
MIXXX won't restart / restarts silently fail
MIXXX won't restart / restarts silently fail
The only correct restart sequence is:Do NOT use any of these — they will silently fail to restart MIXXX:
systemctl restart mixxx-app.service— TKGL sees the unit as running and skipspkill mixxx+systemctl restart engine.service— orphaned unit stays “active”, TKGL skipskill -9 <pid>— same problem as pkill
Audio
Audio xruns at latency=4
Audio xruns at latency=4
At This is the minimum stable value on this hardware given the
latency=4 the audio engine produces xruns (buffer underruns) on Prime Go hardware. Increase the latency setting in soundconfig.xml:SCHED_FIFO priority setup and CPU shielding in place. Latency 4 is insufficient even with PREEMPT_RT.Music Library
USB music library empty / won't scan
USB music library empty / won't scan
MIXXX requires the If the output is empty, insert the music directory:Then restart MIXXX and trigger a library scan from the UI. The seed database (
directories table in the SQLite database to have at least one entry before it will scan for music. Check the current state:scripts/dev-collect-mixxx-bundle.sh) pre-populates this entry — if it is missing, the seed was not applied correctly.Skin and Display
Skin only shows toolbar — no decks, waveforms, or library
Skin only shows toolbar — no decks, waveforms, or library
Check which mapping file Then verify the file exists at that path:If it is missing, restore it from the
mixxx.cfg references:mixxx-mapping/ directory in the bundle and restart MIXXX.MIDI Mapping Development
debug print() is silent on device
debug print() is silent on device
print() statements in MIDI mapping JavaScript are silently dropped on the device — output does not appear in logs or the terminal.Use these alternatives instead:journalctl -u mixxx-app.service -f.