Unstable SoundBlaster X4 on multiple devices

Hello, I use fedora 40 on both my work laptop and pc. Both are connected to the same KVM, to which my keyboard and other peripherals are connected. Previously I had some bandwidth issues, but ever since I added another usb 3.1 hub in between it seems everything is working correctly now, other than the SB X4.

On my PC, on boot, it will not display correct audio channels - I’ve made a bug about it on pipewire’s gitlab, but on my work laptop it behaves differently.
The channels are all available upon boot, but then when sound is first played through the device it will make only horrible static. After I toggle the kvm between devices, SB X4 is no longer available as an audio output. It still works sometimes upon boot. Weird.

Only output I can see about it in dmesg is the following

on boot

[    2.046540] usb 3-1.4: New USB device found, idVendor=041e, idProduct=3278, bcdDevice=10.60
[    2.046543] usb 3-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=9
[    2.046546] usb 3-1.4: Product: Sound Blaster X4
[    2.046548] usb 3-1.4: Manufacturer: Creative Technology Ltd
[    2.046549] usb 3-1.4: SerialNumber: 6DE238095D1D16CB
[    2.113232] usb 4-1.1: new SuperSpeed USB device number 3 using xhci_hcd
[    2.134474] usb 4-1.1: New USB device found, idVendor=0781, idProduct=5583, bcdDevice= 1.00
[    2.134480] usb 4-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.134482] usb 4-1.1: Product:  SanDisk 3.2Gen1
[    2.134484] usb 4-1.1: Manufacturer:  USB
[    2.134485] usb 4-1.1: SerialNumber: 01017b1f9828c3239320ea320b708fb0df24234d9a425b068da0f67eb36e1cfeb353000000000000000000001f6449780094500083558107b7ae3bb1
[    2.138781] input: Creative Technology Ltd Sound Blaster X4 as /devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb3/3-1/3-1.4/3-1.4:1.0/0003:041E:3278.0002/input/input12
[    2.190880] hid-generic 0003:041E:3278.0002: input,hidraw1: USB HID v1.10 Device [Creative Technology Ltd Sound Blaster X4] on usb-0000:07:00.4-1.4/input0

on device toggle on the kvm

[  123.653030] usb 3-1.4: new high-speed USB device number 18 using xhci_hcd
[  123.754973] usb 3-1.4: config 1 interface 2 altsetting 0 bulk endpoint 0x82 has invalid maxpacket 256
[  123.756461] usb 3-1.4: New USB device found, idVendor=041e, idProduct=3278, bcdDevice=10.60
[  123.756466] usb 3-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=9
[  123.756469] usb 3-1.4: Product: Sound Blaster X4
[  123.756471] usb 3-1.4: Manufacturer: Creative Technology Ltd
[  123.756473] usb 3-1.4: SerialNumber: 16CB38091D16E238
[  123.877402] input: Creative Technology Ltd Sound Blaster X4 as /devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb3/3-1/3-1.4/3-1.4:1.0/0003:041E:3278.0017/input/input40
[  123.930227] hid-generic 0003:041E:3278.0017: input,hidraw11: USB HID v1.10 Device [Creative Technology Ltd Sound Blaster X4] on usb-0000:07:00.4-1.4/input0
[  123.930639] cdc_acm 3-1.4:1.1: ttyACM0: USB ACM device
[  123.934417] usb 3-1.4: 4:1: cannot get freq (v2/v3): err -71
[  123.934670] usb 3-1.4: 4:1: cannot set freq 192000 (v2/v3): err -71
[  123.968177] usb 3-1.4: parse_audio_format_rates_v2v3(): unable to retrieve number of sample rates (clock 33)
[  123.968999] usb 3-1.4: parse_audio_format_rates_v2v3(): unable to retrieve number of sample rates (clock 37)
[  123.969776] usb 3-1.4: parse_audio_format_rates_v2v3(): unable to retrieve number of sample rates (clock 37)
[  123.970544] usb 3-1.4: parse_audio_format_rates_v2v3(): unable to retrieve number of sample rates (clock 35)
[  123.971090] usb 3-1.4: parse_audio_format_rates_v2v3(): unable to retrieve number of sample rates (clock 35)
[  123.971629] usb 3-1.4: parse_audio_format_rates_v2v3(): unable to retrieve number of sample rates (clock 35)
[  123.977010] usb 3-1.4: 12:3: failed to get current value for ch 0 (-71)
[  123.980542] usb 3-1.4: 12:3: cannot get min/max values for control 2 (id 12)
[  123.981794] usb 3-1.4: 12:3: cannot get min/max values for control 2 (id 12)
[  123.983037] usb 3-1.4: 13:3: failed to get current value for ch 0 (-71)
[  123.986795] usb 3-1.4: 13:3: cannot get min/max values for control 2 (id 13)
[  123.988038] usb 3-1.4: 13:3: cannot get min/max values for control 2 (id 13)
[  123.989290] usb 3-1.4: 11:3: failed to get current value for ch 0 (-71)
[  123.993038] usb 3-1.4: 11:3: cannot get min/max values for control 2 (id 11)
[  123.994290] usb 3-1.4: 11:3: cannot get min/max values for control 2 (id 11)
[  123.995038] usb 3-1.4: 1:3: failed to get current value for ch 0 (-71)
[  123.998291] usb 3-1.4: 1:3: cannot get min/max values for control 2 (id 1)
[  123.999048] usb 3-1.4: 1:3: cannot get min/max values for control 2 (id 1)
[  123.999794] usb 3-1.4: 14:3: failed to get current value for ch 0 (-71)
[  124.005419] usb 3-1.4: 14:3: cannot get min/max values for control 2 (id 14)
[  124.006169] usb 3-1.4: 14:3: cannot get min/max values for control 2 (id 14)
[  124.006928] usb 3-1.4: 2:3: failed to get current value for ch 0 (-71)
[  124.010169] usb 3-1.4: 2:3: cannot get min/max values for control 2 (id 2)
[  124.010928] usb 3-1.4: 2:3: cannot get min/max values for control 2 (id 2)
[  124.011169] usb 3-1.4: 2:3: failed to get current value for ch 0 (-71)
[  124.014420] usb 3-1.4: 23:3: failed to get current value for ch 0 (-71)
[  124.021420] usb 3-1.4: 23:3: cannot get min/max values for control 2 (id 23)
[  124.022170] usb 3-1.4: 23:3: cannot get min/max values for control 2 (id 23)
[  124.022961] usb 3-1.4: 25:3: failed to get current value for ch 0 (-71)
[  124.026173] usb 3-1.4: 25:3: cannot get min/max values for control 2 (id 25)
[  124.026928] usb 3-1.4: 25:3: cannot get min/max values for control 2 (id 25)
[  124.027671] usb 3-1.4: 8:3: failed to get current value for ch 0 (-71)
[  124.030928] usb 3-1.4: 8:3: cannot get min/max values for control 2 (id 8)
[  124.031673] usb 3-1.4: 8:3: cannot get min/max values for control 2 (id 8)
[  124.036460] usb 3-1.4: USB disconnect, device number 18
[  124.352012] usb 3-1.4: new high-speed USB device number 19 using xhci_hcd
[  124.452967] usb 3-1.4: config 1 interface 2 altsetting 0 bulk endpoint 0x82 has invalid maxpacket 256
[  124.454457] usb 3-1.4: New USB device found, idVendor=041e, idProduct=3278, bcdDevice=10.60
[  124.454461] usb 3-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=9
[  124.454463] usb 3-1.4: Product: Sound Blaster X4
[  124.454465] usb 3-1.4: Manufacturer: Creative Technology Ltd
[  124.454466] usb 3-1.4: SerialNumber: 5D1D16CB6DE23809
[  124.578170] input: Creative Technology Ltd Sound Blaster X4 as /devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb3/3-1/3-1.4/3-1.4:1.0/0003:041E:3278.0018/input/input41
[  124.630223] hid-generic 0003:041E:3278.0018: input,hidraw11: USB HID v1.10 Device [Creative Technology Ltd Sound Blaster X4] on usb-0000:07:00.4-1.4/input0
[  124.630625] cdc_acm 3-1.4:1.1: ttyACM0: USB ACM device

Any ideas? I was wondering if pipewire 1.2 could fix it but it’s not yet available in f40

Added hardware, kvm, virtualization

This issue is not related to pipewire, but related to a likely quirk that will need to be applied in the snd-usb-audio driver in the kernel. I have the same issue both when using pulseaudio and when using pipewire on Gentoo, Arch and a variety of other distributions which I’ve tried.

I already submitted a bug a while back on the kernel bugzilla but haven’t heard from anyone so far: 218369 – Stability issues with snd-usb-audio and a Creative Sound Blaster X4

To minimize the issue it’s recommended that you do the following:

  • Make sure your Creative Sound Blaster X4 is connected to a PC or laptop and turned on
  • Install the Creative app on your Apple or Android phone
  • Create and activate an account
  • Activate Bluetooth, connect to the Creative Sound Blaster X4 and make sure that you update it to the latest firmware.
  • Activate the optimized PC mode (the option excluding the Sony PlayStation 5 and Nintendo Switch).

Following the steps above gets the device working when using analog headphones and a 2.1 or 5.1 set-up, but only when performing a cold boot or a reboot. Do not unplug the device or plug it in while running, because it will refuse to work (until you perform a cold boot) and cause your system to hang indefinitely while shutting down (no matter whether you have it plugged or unplugged before shutting down). That’s my experience so far using this USB audio device on 4 different devices.

It’s already on the newest firmware (through android upgrade) as someone mentioned it somewhere online, but I see. I’ll check if the optimized PC mode will work, and I only do cool boots or reboots so it’s not a problem.

Back after a while: it does not appear to help significantly, on top of that I also see more issues of audio crackling happening (it’s the fault of X4, not speakers)

Pawel K,

The fact that you might have crackling audio might be due to your Pulseaudio / Pipewire settings, audio devices and speaker combination or your device might be broken as I do not personally experience these issues myself. I’m using a combination of a 5.1 (via analog) system and headset.

All I think it needs is a quirk for snd-usb-audio in the kernel to resolve these issues.

I have pretty much the default settings config (barring a setting for bluez to prevent it from going into handsfree), the issue appears after boot but goes away if I disconnect and reconnect the device physically. I’m kind of upset I even bought something like this in all honesty because of all the issues I’m having with it.

I’ve switched my monitor for a different one and moved the kvm with SB x4 to a different port and now it keeps crackling on my laptop all the time. I’m starting to go crazy, wondering if it’s maybe the speakers that are dying or something (they are pretty old)

I’ve swapped some cables (from kvm to pc) to better ones, and for now the issues (crackling) are gone, I’ll do one more cable swap next week and report back with the setup that works for me if nothing else changes

Okay, so in my case the X4 crackling was the fault of cables. Along with mode detection, it seems. Now modes are correctly detected every time after boot. It could also have something to do with the fact I only switch my kvm to my laptop after it reached GDM, but that’s all I got. Crackling was definitely a low quality cable issue however, as that’s just gone outright.