The device in question is the USB dongle for my 2.4 GHz wireless headset. Everything works fine except for volume control, so it is stuck at max volume, regardless of where the volume slider in pavucontrol is. Volume controls within individual websites and programs work, but it seems that the system volume control is delegated to the USB device, which itself has no concept of volume control. This is the case with both pulseaudio and pipewire. Is there a way to limit the system-wide volume before it reaches the dongle?

  • monovergent 🛠️@lemmy.mlOP
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    9 days ago

    Looking up the hardware id, it seems that someone else had the same issue: https://github.com/alsa-project/alsa-lib/issues/401

    If I’m understanding correctly, there’s no proper driver for it in the kernel yet. My workaround for now is to use the limiter in pulseeffects.

    Edit: If anyone wants to know, it does work flawlessly on Android, but I have no idea if the way Android handles USB audio is relevant to desktop Linux at all.

    • just_another_person@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      9 days ago

      Good find, but it’s not a kernel issue in this case. The device is recognized as “something”, and outputs audio correctly, you just need to find out where it’s getting it’s audio from, and assign a control channel through Pipewire to control the sink volume. Should be pretty easy, but will require some digging and a quick bit of learning.