Bug 1228057 - Headset microphone not recognized
Summary: Headset microphone not recognized
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Sound (show other bugs)
Version: Current
Hardware: x86-64 openSUSE Tumbleweed
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Takashi Iwai
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-07-17 12:25 UTC by Ricardo Mestre
Modified: 2024-07-19 16:42 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---
tiwai: needinfo? (ricardo.mestre)


Attachments
output of > ./alsa-info.sh --no-upload (92.45 KB, text/plain)
2024-07-17 12:54 UTC, Ricardo Mestre
Details
aplay in parallel (1.80 KB, text/plain)
2024-07-19 11:18 UTC, Ricardo Mestre
Details
USB-Audio.conf (9.69 KB, text/plain)
2024-07-19 13:36 UTC, Takashi Iwai
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ricardo Mestre 2024-07-17 12:25:32 UTC
Running tumbleweed. I have a headset Turtle Beach Stealth Pro. When i plug it in it detects the output, not the mic.

pactl looks like this:
> ~ ❯ pactl list sources | grep "node.name"
>                 node.name = "alsa_output.usb-Turtle_Beach_Stealth_Pro_PlayStation_7702FFFF7202-01.analog-stereo"


In the sound system settings I am able to redefine this source profile from "Analog Stereo Output" to "Pro Audio". This makes the input visible in pactl:

> ~ ❯ pactl list sources | grep "node.name"
>                 node.name = "alsa_output.usb-Turtle_Beach_Stealth_Pro_PlayStation_7702FFFF7202-01.pro-output-0"
>                 node.name = "alsa_output.usb-Turtle_Beach_Stealth_Pro_PlayStation_7702FFFF7202-01.pro-output-1"
>                 node.name = "alsa_input.usb-Turtle_Beach_Stealth_Pro_PlayStation_7702FFFF7202-01.pro-input-0"

Then, i am even able to record directly from the mic (and play) using:
> parec -d alsa_input.usb-Turtle_Beach_Stealth_Pro_PlayStation_7702FFFF7202-01.pro-input-0  --file-format=wav output.wav
> aplay output.wav

However, no application seems to use this as an input device (even apps for recording sound).

I wouldn't say its a headset compatibility issue with linux systems in general as ubuntu seems to detect and set up everything as expected just by plugging it in.



also:

> ~ ❯ cat /etc/os-release                                                                                                                                                                  
> NAME="openSUSE Tumbleweed"
> # VERSION="20240503"
> ID="opensuse-tumbleweed"
> ID_LIKE="opensuse suse"
> VERSION_ID="20240503"
> PRETTY_NAME="openSUSE Tumbleweed"
> ANSI_COLOR="0;32"
> # CPE 2.3 format, boo#1217921
> CPE_NAME="cpe:2.3:o:opensuse:tumbleweed:20240503:*:*:*:*:*:*:*"
> #CPE 2.2 format
> #CPE_NAME="cpe:/o:opensuse:tumbleweed:20240503"
> BUG_REPORT_URL="https://bugzilla.opensuse.org"
> SUPPORT_URL="https://bugs.opensuse.org"
> HOME_URL="https://www.opensuse.org"
> DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
> LOGO="distributor-logo-Tumbleweed"
Comment 1 Takashi Iwai 2024-07-17 12:38:45 UTC
Could you give alsa-info.sh output?  Run with --no-upload option and attach the output file to Bugzilla (don't paste).
Comment 2 Ricardo Mestre 2024-07-17 12:54:10 UTC
Created attachment 876096 [details]
output of > ./alsa-info.sh --no-upload

Thanks for the quick reply. Here you go. Let me know if you could use some more info or tests.
Comment 3 Takashi Iwai 2024-07-17 14:44:26 UTC
Judging from the log, it seems that the device provides two outputs and one input.  This might confuse the default setup.

Actually, what does the secondary PCM (playback) device work for?  When you run like:
  % aplay -Dplughw:2,0 -vv foo.wav
do you hear from the normal output from the headset?  And if you run like
  % aplay -Dplughw:2,1 -vv foo.wav
does it sound as well?

Also, can you record directly via
  % arecord -Dplughw:2,0 -fdat -vv bar.wav
?

You might need to turn off the wireplumber temporarily while testing the above:
  % systemctl --user stop wireplumber
and restart after testing
  % systemctl --user start wireplumber
Comment 4 Ricardo Mestre 2024-07-17 17:11:51 UTC
Yes, when both commands played on the headset (both on stereo). 
Even verbose printed the same information (expect the number of the device).

Recording like you mentioned worked fine. (Didn't need to turn off wireplumber).
Comment 5 Takashi Iwai 2024-07-19 09:58:47 UTC
Thanks.  So the driver itself looks working.

When you run both aplay with -Dplughw:2,0 and -Dplughw:2,1 in parallel, do both play back correctly (i.e. both streams mixed)?  Or does it hang or silence?
Comment 6 Ricardo Mestre 2024-07-19 11:18:40 UTC
Created attachment 876158 [details]
aplay in parallel

I ran two distinct sounds as:
> { aplay -Dplughw:2,0 -vv foo.wav & aplay -Dplughw:2,1 -vv bar.wav & wait; } > aplay_paralell.out 2>&1
The first sound played in stereo. The other, which was longer (didn't know if it would make any difference) didnt play at all and even yield an error.


I did run another test replacing one of these by the laptop sound card and heard both sounds (from the different speakers)
Comment 7 Takashi Iwai 2024-07-19 13:36:25 UTC
OK, so it makes little sense to keep both devices available.

Could you try to copy (overwrite) the file USB-Audio.conf in below to /usr/share/alsa/cards/USB-Audio.conf, re-login and retry?

I'm not sure whether this has any good effect for pipewire, though.  If not, we might need to fiddle with alsa-ucm or patching kernel.
Comment 8 Takashi Iwai 2024-07-19 13:36:49 UTC
Created attachment 876163 [details]
USB-Audio.conf
Comment 9 Ricardo Mestre 2024-07-19 16:42:16 UTC
Unfortunately nothing has changed, even after rebooting and re-plugin it in