No audio from 2nd sound card

Hi all,

Sound over HDMI is fine.

If I try switching to the 2nd (SoundBlaster) card using headphones, nothing.

I tried changing the profile to Analogue Stereo (no duplex), but really don't want to go randomly installing stuff and poking around configs, without knowing how to undo everything afterwards.

Most of the troubleshooting seems to just be for a single card with no audio, or be alsa/pulse specific.

The Windows 11 VM using this hardware works fine and can switch from HDMI to SB with no issues.

INXI:

System:
  Kernel: 5.17.1-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 11.2.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen root=UUID=337ed822-f58b-4d04-a369-3b4a3cdcba9a
    rw [email protected] quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
    systemd.unified_cgroup_hierarchy=1 loglevel=3
  Desktop: KDE Plasma v: 5.24.4 tk: Qt v: 5.15.3 info: latte-dock wm: kwin_x11 vt: 1 dm: SDDM
    Distro: Garuda Linux base: Arch Linux
Machine:
  Type: Kvm System: QEMU product: Standard PC (Q35 + ICH9, 2009) v: pc-q35-6.1
    serial: <superuser required> Chassis: type: 1 v: pc-q35-6.1 serial: <superuser required>
  Mobo: N/A model: N/A serial: N/A UEFI: EFI Development Kit II / OVMF v: 0.0.0 date: 02/06/2015
CPU:
  Info: model: Intel Core i7-8700K bits: 64 type: MT MCP arch: Coffee Lake family: 6
    model-id: 0x9E (158) stepping: 0xA (10) microcode: 0xEC
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache: L1: 512 KiB
    desc: d-8x32 KiB; i-8x32 KiB L2: 16 MiB desc: 4x4 MiB L3: 16 MiB desc: 1x16 MiB
  Speed (MHz): avg: 3696 min/max: N/A cores: 1: 3696 2: 3696 3: 3696 4: 3696 5: 3696 6: 3696
    7: 3696 8: 3696 bogomips: 59135
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf mitigation: PTE Inversion; VMX: flush not necessary, SMT vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT Host state unknown
  Type: meltdown mitigation: PTI
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2
    mitigation: Retpolines, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling
  Type: srbds status: Unknown: Dependent on hypervisor status
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: NVIDIA GP104 [GeForce GTX 1080] driver: nvidia v: 510.60.02
    alternate: nouveau,nvidia_drm pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 03:00.0
    chip-ID: 10de:1b80 class-ID: 0300
  Display: x11 server: X.Org v: 1.21.1.3 with: Xwayland v: 22.1.1 compositor: kwin_x11 driver:
    X: loaded: nvidia gpu: nvidia display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 108 s-size: 602x342mm (23.70x13.46")
    s-diag: 692mm (27.26")
  Monitor-1: HDMI-0 res: 2560x1440 hz: 60 dpi: 109 size: 597x336mm (23.5x13.23")
    diag: 685mm (26.97") modes: N/A
  OpenGL: renderer: NVIDIA GeForce GTX 1080/PCIe/SSE2 v: 4.6.0 NVIDIA 510.60.02
    direct render: Yes
Audio:
  Device-1: NVIDIA GP104 High Definition Audio driver: snd_hda_intel v: kernel pcie: gen: 3
    speed: 8 GT/s lanes: 16 bus-ID: 04:00.0 chip-ID: 10de:10f0 class-ID: 0403
  Device-2: Creative Labs Sound Core3D [Sound Blaster Recon3D / Z-Series] driver: snd_hda_intel
    v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 bus-ID: 05:00.0 chip-ID: 1102:0012
    class-ID: 0403
  Sound Server-1: ALSA v: k5.17.1-zen1-1-zen running: yes
  Sound Server-2: sndio v: N/A running: no
  Sound Server-3: PulseAudio v: 15.0 running: no
  Sound Server-4: PipeWire v: 0.3.49 running: yes
Network:
  Device-1: Intel 82571EB/82571GB Gigabit Ethernet D0/D1
    vendor: Hewlett-Packard NC360T Dual Port Server driver: e1000e v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 4 port: 6000 bus-ID: 06:00.0 chip-ID: 8086:105e class-ID: 0200
  IF: enp6s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Device-2: Red Hat Virtio network driver: virtio-pci v: 1 modules: virtio_pci pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 port: N/A bus-ID: 0a:00.0 chip-ID: 1af4:1041 class-ID: 0200
  IF-ID-1: anbox0 state: down mac: <filter>
  IF-ID-2: enp10s0 state: up speed: -1 duplex: unknown mac: <filter>
Drives:
  Local Storage: total: 238.47 GiB used: 54.12 GiB (22.7%)
  ID-1: /dev/vda maj-min: 254:0 model: N/A size: 238.47 GiB block-size: physical: 512 B
    logical: 512 B speed: <unknown> type: N/A serial: N/A scheme: GPT
  SMART Message: Unknown smartctl error. Unable to generate data.
Partition:
  ID-1: / raw-size: 238.17 GiB size: 238.17 GiB (10
0.00%) used: 54.12 GiB (22.7%) fs: btrfs
    dev: /dev/vda2 maj-min: 254:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%) used: 576 KiB (0.2%) fs: vfat
    dev: /dev/vda1 maj-min: 254:1
  ID-3: /home raw-size: 238.17 GiB size: 238.17 GiB (100.00%) used: 54.12 GiB (22.7%) fs: btrfs
    dev: /dev/vda2 maj-min: 254:2
  ID-4: /var/log raw-size: 238.17 GiB size: 238.17 GiB (100.00%) used: 54.12 GiB (22.7%)
    fs: btrfs dev: /dev/vda2 maj-min: 254:2
  ID-5: /var/tmp raw-size: 238.17 GiB size: 238.17 GiB (100.00%) used: 54.12 GiB (22.7%)
    fs: btrfs dev: /dev/vda2 maj-min: 254:2
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 15.62 GiB used: 3 MiB (0.0%) priority: 100 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: N/A mobo: N/A gpu: nvidia temp: 53 C
  Fan Speeds (RPM): N/A gpu: nvidia fan: 34%
Info:
  Processes: 288 Uptime: 38m wakeups: 0 Memory: 15.62 GiB used: 3.28 GiB (21.0%) Init: systemd
  v: 250 tool: systemctl Compilers: gcc: 11.2.0 Packages: pacman: 1732 lib: 508
  Client: shell wrapper v: 5.1.16-release inxi: 3.3.15
Garuda (2.6.1-1):
  System install date:     2021-11-15
  Last full system update: 2022-04-09
  Is partially upgraded:   No
  Relevant software:       NetworkManager
  Windows dual boot:       No/Undetected
  Snapshots:               Snapper
  Failed units:            lm_sensors.service systemd-networkd-wait-online.service
1 Like

If you include terminal outputs in your post please use the proper output format in your post.

Using "~" 3 times above and "~" 3 times below the text block will provide a readable, raw look.

Please edit your post.

2 Likes

Apologies. I thought I did. I must have truncated early! Hopefully better now. :slight_smile:

Does it work when booted on metal?

3 Likes

It works fine on the Windows 11 VM which uses the identical hardware setup. The card is blacklisted when booting the host, and is passed through for the VM's to use natively, so it appears as bare metal to the systems it's assigned to.

Yes, it works in Windows.

Does it work if you boot the host into the Garuda live installer environment?

2 Likes

Ah, gotcha. I'll give that a test. thx!

2 Likes

So, tried that using the latest Garuda ISO. It doesn't work there either. Interestingly, the HDMI output that normally works in the VM's, no longer works, and it becomes the 2nd audio device, the 1st being the HDMI of the other monitor normally used on the host.

So using the audio switcher and the test options in settings, it only seems to be the 1st audio device that works.

1 Like

I'm just spitballing here, but this could be a PipeWire or kernel thing? Trying out the mainline Linux kernel instead of Zen just to see is maybe a good idea. For PipeWire, Garuda ships with the very default pipewire-media-session, but more advanced cases might call for replacing that with WirePlumber. The documentation for configuring it for more complicated stuff is good, but sort of a maze.

Garuda Assistant also supplies the option to enable PulseAudio (or JACK). Might be worth disabling PipeWire and switching to PulseAudio just to see. I've never used JACK, so I have no idea there, but PulseAudio has been around forever. :person_shrugging:

At the end of the day, using Garuda in VMs is not really supported. Every layer of this - your host OS, whatever blacklist-passing situation is going on, the individual soundcard, your virtual machine manager, etc. - make it more difficult to work at and more likely something beyond Garuda is going awry. Windows can source a MASSIVE selection of drivers automatically, and lots of companies mainly support Windows.

Maybe there's something in here for you, none of this is meant to be harsh or dismissive and I do hope you figure it out. And possibly OT, but I am curious about your setup and use-case - the sound card just for the dual VMs, the general situation there, whatever your host machine is for, etc all seem unusual but interesting.

2 Likes

Linux audio is one of those areas that appears to still rely on witchcraft, so it'll take me a while to figure out how to troubleshoot issues with it. Alsa, Pulse, Pipewire etc. No idea how it all fits together yet, and what I need.

The audio switcher in settings show that the card is recognised as a valid audio output, and I really don't want to go just playing about with installing other audio stuff, in case I make it worse lol

Although it's still a VM, it has most of it's own dedicated hardware with CPU pinning, so not much of it is actually virtual. No shared graphics, audio, networking, or boot drive.

But as booting from the Garuda ISO has the same on pure metal, I doubt the VM setup is the issue. Probably something minor that needs tweaking. I did research the soundcard before buying it, and it seems to be popular on Linux.

I'd have blamed it on Creative, but the it seems to be the same issue with whatever audio device isn't set as the primary one. I just don't seem to be able to switch and get sound from other devices.

As for the way I use it all:

The host machine runs Arch and uses the intel integrated gpu and audio. Good enough for basic games, browsing, office duties, coding etc.

The VM's, if I want to use one, get all the good hardware, own keyboard and mouse, bigger monitor, and run at near native speed. So I can have a Win (11), Garuda, Ubuntu, Pop, and whatever other distros configured for gaming, dev, audio/media etc. and my base system stays clean, and usable while the VM is running. Can even play 1v1 LAN games with 2 people if I want.

Also great for creating disposable VM's to test stuff, and means I can spend time with all my pet distros. :slight_smile:

1 Like

Couldn't have said it better myself :rofl:

If you're worried about really messing with stuff (which, yeah, fair), the easily reversible step is just to try out an entirely different option in the assistant. PipeWire is supposed to be a comprehensive replacement for JACK and PulseAudio, but, as mentioned, witchcraft is in play and PulseAudio has been around the block a few more times. Worst case, you can just switch back to how it was.

I don't know your workflow, but when I'm working on a weird issue I keep a sort of rambling log of everything I do and all the links I find in a text file and try to make one reversible change at a time. This might be one of those things.

If it works on other Linux distros, finding the closest situation where it does work and just trawling through the configs on each system side-by-side might be another way to go at it? :person_shrugging: Seems like your setup is uniquely well suited for that too.

Alternatively, there's probably some dude who's been making techno in raw bytecode with an AM antenna patched into an Amiga for 40 years who you could summon with the right incantation. He'd spend the 1-3 minutes it takes him to reboot your PC making fun of you for not meditating while you huff the air out of the back of your fans, and it would fixed at his touch.

Wish I could lend more real help here, but... yeah. The documentation is at least there, but (to me anyway) required a wealth of "what is x" searches every time I read a new parameter, and left me with maybe less of an understanding than before.

That setup you've got going is quite neat. I use VMs all the time, but mostly one-offs and rarely for persistent work. Kinda novel, like if GRUB was also a working Arch install.

2 Likes

Well i've booted up Ubuntu, which doesn't seem to use pipewire, but got the same issue. Is there something like Alsa Mixer for Pipewire that lets me see available in/outputs that I can prod and poke?

As a kid, I used to poke forks in power sockets. I haven't really learned from those mistakes yet. Poke thinks with something pointy, and see what it does. It's the scientist in me.

I guess I was hoping it would be something ridiculously stupid that every Linux user has figured out over the years. But i'll try a few more distros and restrict auddio hardware to just the Soundblaster, and see what that does. Thanks!

Atari ST's and AMiGA's I had no problem with. Even with the soundcard I bought!

Sure I'll get there in the end, but it will take me a while to learn what does what.

And yep. I love using VM's. Different distros tuned for different jobs, with different styles and atmosphere. Keeps the newness and fun of distro hopping :slight_smile:

1 Like

I think pavucontrol also works on PipeWire. EasyEffects might also be worth looking into. It's not quite the same tool, but it is designed specifically for PipeWire. alsa-tools may have some applicable stuff as well but that's stepping into the labyrinth probably.

Maybe try the latest Fedora? Current 35 and/or beta 36, they use PipeWire fully and tend to have very solid implementations. Ubuntu Studio also might be worth a spin since it ships a ton more as far as media backend, probably uses PulseAudio though.

Hahaha :rofl: same here. It's the only way to live.

Cheers! If you want an extra brain on the more granular stuff without chaining out this thread I think this forum has direct messages nd I've got other platforms, feel free. :call_me_hand:

3 Likes

OK, seems to be fixed.

No installing ALSA or Pulse legacy stuff.

Plugging a set of speakers into the 2.0 output (while leaving the headphones plugged in the 'phones/mic socket), seems to have had the effect of enabling the headphones out as well, so i can now switch between HDMI out via the NVidia card, or headphones/speakers on the Sound Blaster, at last!

Some useful (or useless) stuff I found along the way:

Linux Audio Troubleshooting

Has some good info on how the witchcraft works, and some diag scripts I didn't end up needing.

Audio over HDMI is a nightmare.
Some Creative cards seem to have a weird bug where the device seems to "disappear" from the system, invisible even to Creative's own software on Windows. Although the card still shows up in hardware lists such as lspci or msinfo32, and draws an IRQ. Moving it to another PCIe slot is one of the ways to "fix" it, until the next time.

VooDoo beats Witchcraft. I think

3 Likes

In situations like this, resetting your bios may help, (rather than having to physically pull the card). Most bios utilities have a backup/restore function that would make this option not so much hassle.

1 Like

That would have been the next thing to try. But as the BIOS has a lot of stuff i'd have to re-configure, and the PC is in a desktop housing next to me, it was quicker to try this first. It's the kludge suggested by Creative themselves.

Yes, I realize that. That is why I suggested the bios backup route.

  1. Backup your currently configured setup via your BIOS backup feature (when your hardware is all detected and working correctly).

  2. Reset your bios to the factory default.

  3. Restore your saved bios settings from your backup.

This method should be fairly quick and painless, if your bios allows you to store a backup copy with all your preconfigured settings.

1 Like

Oooft. Can't believe I never thought of that lol. Too used to doing it all by hand. At least no jumpers for ISA bus cards now lol

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.