Skip to content

[Bug]: PCM streaming fails on Xone:4D (Linux) — immediate I/O error on pcm_read` #75

Description

@david-koehler-jpg

Pre-Submission Checklist

  • I confirm this is NOT a code signing / certificate error.
  • I have attached the log file (required for bug reports).

Describe the Bug

Title: [Bug]: PCM streaming fails on Xone:4D (Linux) — immediate I/O error on pcm_read

System:

  • OS: Debian Trixie
  • Kernel: 6.12.90+deb13.1-amd64
  • Device: Allen & Heath Xone:4D, firmware v1.2.9
  • Ozzy: current HEAD (967f94e)

What works:
Handshake completes perfectly every time:

[ploytec] --- handshake complete, device ready ---

ALSA sees the device (cat /proc/asound/cards shows Xone4D as card 2).

What fails:
arecord -D hw:Xone4D -f S24_3LE -r 96000 -c 8 -d 5 test.wav` returns immediately with:

arecord: pcm_read:2272: Lesefehler: Eingabe-/Ausgabefehler

Same with simultaneous arecord+aplay (full-duplex attempt).

Observation:
dmesg shows PCM endpoints as:

PCM out: EP 5 (bulk)
PCM in: EP 6 ← no (bulk) annotation

Output is bulk, input appears to be interrupt. Suspect in_packet_size in the Xone:4D device descriptor may be incorrect, causing the initial input URBs submitted in ozzy_pcm_init_urbs to fail immediately, setting rt->panic = true before arecord even opens the device.

Note: WirePlumber additionally causes a kernel crash in ploytec_set_rate (NULL pointer, CR2: 0x10) when it grabs the device and forces a 48000→96000 rate change. Masking all pipewire services eliminates this crash but PCM streaming still fails.

Device Model

Allen & Heath Xone:4D

Operating System

Linux (Ubuntu/Debian)

📎 Attach Debug Log (REQUIRED)

[ 156.239776] snd_usb_ozzy: loading out-of-tree module taints kernel.
[ 156.239783] snd_usb_ozzy: module verification failed: signature and/or required key missing - tainting kernel
[ 156.245268] usbcore: registered new interface driver snd-usb-ozzy
[ 3257.040361] usb 3-1: new high-speed USB device number 4 using xhci_hcd
[ 3257.179914] usb 3-1: New USB device found, idVendor=0a4a, idProduct=ff4d, bcdDevice= 1.00
[ 3257.179930] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3257.179937] usb 3-1: Product: Allen&Heath Xone:4D
[ 3257.179943] usb 3-1: Manufacturer: Ploytec GmbH
[ 3257.179948] usb 3-1: SerialNumber: no serial number
[ 3257.180568] usb 3-1: [ozzy] found device: Allen&Heath Xone:4D
[ 3257.180573] usb 3-1: [ozzy] manufacturer: Ploytec GmbH
[ 3257.180576] usb 3-1: [ozzy] USB ID: 0a4a:ff4d (bcdDevice 0100)
[ 3257.180580] usb 3-1: [ozzy] speed: high (480 Mbps)
[ 3257.180582] usb 3-1: [ozzy] device family: Ploytec Xone
[ 3257.181577] usb 3-1: [ozzy] interfaces claimed: 2 (alt setting 1)
[ 3257.181582] usb 3-1: [ozzy] PCM out: EP 5 (bulk)
[ 3257.181586] usb 3-1: [ozzy] PCM in: EP 6
[ 3257.181588] usb 3-1: [ozzy] MIDI in: EP 3 (out embedded in PCM)
[ 3257.181591] usb 3-1: [ozzy] channels: 8 in / 8 out
[ 3257.181595] usb 3-1: [ploytec] --- begin handshake sequence ---
[ 3257.181597] usb 3-1: [ploytec] [1/7] reading firmware version...
[ 3257.182243] usb 3-1: [ploytec] firmware: v1.2.9 (chip ID: 0x31, raw: 31 01 1d 00 00 00 00 00 00 00 00 00 00 00 00)
[ 3257.182247] usb 3-1: [ploytec] [2/7] reading hardware status...
[ 3257.182617] usb 3-1: [ploytec] status: 0x92 [InputSel:1] [DigLock:0] [mode: 100100]
[ 3257.182621] usb 3-1: [ploytec] [3/7] reading current sample rate...
[ 3257.183010] usb 3-1: [ploytec] hardware sample rate: 44100 Hz (raw: 44 AC 00)
[ 3257.183016] usb 3-1: [ploytec] [4/7] setting sample rate to 96000 Hz...
[ 3257.183778] usb 3-1: [ploytec] sample rate set: 96000 Hz (raw: 00 77 01)
[ 3257.183790] usb 3-1: [ploytec] [5/7] verifying sample rate...
[ 3257.184154] usb 3-1: [ploytec] hardware sample rate: 96000 Hz (raw: 00 77 01)
[ 3257.184166] usb 3-1: [ploytec] [6/7] reading hardware status...
[ 3257.184581] usb 3-1: [ploytec] status: 0x92 [InputSel:1] [DigLock:0] [mode: 100100]
[ 3257.184588] usb 3-1: [ploytec] [7/7] confirming device status...
[ 3257.185260] usb 3-1: [ploytec] status confirmed (read=0x92, wrote wValue=0xFFB2)
[ 3257.185266] usb 3-1: [ploytec] --- handshake complete, device ready ---
[ 3351.689260] usb 3-1: USB disconnect, device number 4
[ 3351.689301] usb 3-1: [ozzy-pcm] PCM input URB failure
[ 3351.689337] usb 3-1: [ozzy-midi] input URB failure
[ 3351.689456] usb 3-1: [ozzy-midi] input URB failure
[ 3351.689460] usb 3-1: [ozzy-midi] input URB failure
[ 3351.689493] usb 3-1: [ozzy-midi] input URB failure
[ 3364.408361] usb 3-1: new high-speed USB device number 5 using xhci_hcd
[ 3364.551846] usb 3-1: New USB device found, idVendor=0a4a, idProduct=ff4d, bcdDevice= 1.00
[ 3364.551856] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3364.551859] usb 3-1: Product: Allen&Heath Xone:4D
[ 3364.551863] usb 3-1: Manufacturer: Ploytec GmbH
[ 3364.551866] usb 3-1: SerialNumber: no serial number
[ 3364.552215] usb 3-1: [ozzy] found device: Allen&Heath Xone:4D
[ 3364.552219] usb 3-1: [ozzy] manufacturer: Ploytec GmbH
[ 3364.552222] usb 3-1: [ozzy] USB ID: 0a4a:ff4d (bcdDevice 0100)
[ 3364.552226] usb 3-1: [ozzy] speed: high (480 Mbps)
[ 3364.552229] usb 3-1: [ozzy] device family: Ploytec Xone
[ 3364.553237] usb 3-1: [ozzy] interfaces claimed: 2 (alt setting 1)
[ 3364.553242] usb 3-1: [ozzy] PCM out: EP 5 (bulk)
[ 3364.553246] usb 3-1: [ozzy] PCM in: EP 6
[ 3364.553248] usb 3-1: [ozzy] MIDI in: EP 3 (out embedded in PCM)
[ 3364.553251] usb 3-1: [ozzy] channels: 8 in / 8 out
[ 3364.553254] usb 3-1: [ploytec] --- begin handshake sequence ---
[ 3364.553257] usb 3-1: [ploytec] [1/7] reading firmware version...
[ 3364.553904] usb 3-1: [ploytec] firmware: v1.2.9 (chip ID: 0x31, raw: 31 01 1d 00 00 00 00 00 00 00 00 00 00 00 00)
[ 3364.553909] usb 3-1: [ploytec] [2/7] reading hardware status...
[ 3364.554302] usb 3-1: [ploytec] status: 0x92 [InputSel:1] [DigLock:0] [mode: 100100]
[ 3364.554309] usb 3-1: [ploytec] [3/7] reading current sample rate...
[ 3364.554677] usb 3-1: [ploytec] hardware sample rate: 44100 Hz (raw: 44 AC 00)
[ 3364.554683] usb 3-1: [ploytec] [4/7] setting sample rate to 96000 Hz...
[ 3364.555421] usb 3-1: [ploytec] sample rate set: 96000 Hz (raw: 00 77 01)
[ 3364.555429] usb 3-1: [ploytec] [5/7] verifying sample rate...
[ 3364.555787] usb 3-1: [ploytec] hardware sample rate: 96000 Hz (raw: 00 77 01)
[ 3364.555793] usb 3-1: [ploytec] [6/7] reading hardware status...
[ 3364.556177] usb 3-1: [ploytec] status: 0x92 [InputSel:1] [DigLock:0] [mode: 100100]
[ 3364.556184] usb 3-1: [ploytec] [7/7] confirming device status...
[ 3364.556926] usb 3-1: [ploytec] status confirmed (read=0x92, wrote wValue=0xFFB2)
[ 3364.556932] usb 3-1: [ploytec] --- handshake complete, device ready ---

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions