I just built a new computer using an Asus Z590-I motherboard and performed a fresh install of Fedora 35. The Audio on this motherboard uses a USB Interface. I’m running the Cinnamon Desktop.
When I open “Sound Settings” and switch to the “Input” tab, I see a listing for “Microphone USB Audio”, but it doesn’t register any input. Likewise Skype, Slack, and Zoom also do not register any input from the Microphone.
However, Audacity allows me to select “Audio: #2 (hw:0,2)” which Does register the input from my microphone.
How can I set this “Audio: #2 (hw:0,2)” as the System Default so that Zoom and other applications will use it?
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0bc2:ab28 Seagate RSS LLC Seagate Backup Plus Portable 5TB SRD00F1
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0b05:19af ASUSTek Computer, Inc. AURA LED Controller
Bus 001 Device 008: ID 045e:0810 Microsoft Corp. LifeCam HD-3000
Bus 001 Device 007: ID 1bcf:08a0 Sunplus Innovation Technology Inc. Gaming mouse [Philips SPK9304]
Bus 001 Device 006: ID 0c45:5004 Microdia Redragon Mitra RGB Keyboard
Bus 001 Device 005: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 003: ID 0b05:1998 ASUSTek Computer, Inc. USB Audio
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Would you like to try to install pavucontrol then open and select “Input Devices” tab. On the very bottom right corner select “Show: All Input Devices”. After that, then on the main menu of “Input Devices” select the appropriate input devices from the drop down menu.
Thank you for the additional information. After modifying the pipewire.conf file and restarting the pipewire.service I had a “PCM Source” listed in the volume control, and it worked in All applications.
However, after a reboot I didn’t have any sound at all… pipewire.service was failing to start, and journalctl was showing errors like:
pipewire: spa.alsa: 'hw:0,2': capture open failed: No such file or directory
So I went back to Audacity, and found that my Microphone was now listed as hw:2,2…
I modified pipwire.conf again and restarted the service, and now it is working.
This is going to get frustrating if I need to edit this file every time I reboot…
From the result of arecord -l there no device with Card 2: ... device 2 .. or hw:2,2. Most likely the problem actually are your system sometime failed to detect (initiate or probing) the hw:2,2 card during the boot. Unfortunately, I have no idea why it happen.
I tried adding two sections. One for hw:0,2 and another for hw:2,2, but this prevents pipewire from starting with the error:
pipewire: spa.alsa: 'hw:0,2': capture open failed: No such file or directory
And I have no sound at all.
Thank you for your concern. I fully understand your reasoning. However; if pipewire receives an update, I WANT IT to overwrite this file. That way I will immediately know if the new version corrected the issue. I do NOT Want a custom config in ~/ or /etc confusing the issue when a new version is released.
That is because every time I reboot, it’s a gamble if I’m going to get hw:0,2 or hw:2,2. When I posted that, hw:0,2 was the working interface. Today, hw:2,2 is the working interface.
Here is new output from arecord -l from today with hw:2,2 as the working microphone port:
I should also note that it does not matter if I plug my microphone into the rear jack on the motherboard or the front header. Neither work with a Vanilla config, and Both work with the custom config that Oprizal posted. It seems hw:2,2 is Both the Front and Rear Microphone jacks on this crazy motherboard.
I should also mention that I tried switching from wireplumber to pipewire-media-session, but that made no difference.
It looks like the front connector is with an usb port and probably also powered with usb?
Bad connection and/or to old/to long cable can cause power problems.
This could also explain your problem that the system not always recognizes it to the same time.
Please take it of from the connector on the motherboard (the cable from the front connector) and try to run the computer a while this way.
If problem solved you have to inspect the cable and clean the connectors on both sides with a contact cleaning spray. If you still have problems just disconnect the front connector again and
buy you a decent audio extention and use just the back (Motherboard connector).
This motherboard uses the Realtek ALC4080, which is “a multi-channel USB audio codec that embeds a USB 2.0 controller with a high-performance audio codec.”
Looking at the datasheet for this chip, I see it has 1.8V, 3.3V, and 5V input, so no; It is not only powered by USB.
That is the secondary issue. The fact that I have to test and possibly modify a custom config file after each boot is just an added annoyance. The real concern is that the Stock Config doesn’t recognize my microphone at all. One would think that a Modern Operating System would have no trouble working with the Microphone input jack that is built into the motherboard…
I will try this to see if the device detection is more consistent, but again, this is the secondary issue.
This is a 100% new computer build. New Motherboard, New Case. I better not have to clean the connectors on a front panel connector on a brand new case.
I don’t plan on ever using the front panel audio connectors anyway. I just tried them as a test. Sorry I mentioned it. I see the additional info just distracted from the real issue.
I guess you are confusing somethings now:
Linux based operating systems never worked for all hardware out of the box. This is just not possible. And Linux generally also comes without software who is behind a closed source model.
Is this codec you are speaking really a open source codec? If not, it already not fits in to the Linux model. You will need tor install drivers/codecs who not come with the “Stock”.
Your collaboration could be to share your experience with other community members while sharing your knowledge how you install the necessary software/drivers who not come with it.
Just watching on Asus website and clicking on software shows me that the motherboard is designed for a closed source Operating system.
The opensource model Fedora Linux follows, expects from you to collaborate with information and tests that in future also your hardware is working with Linux. Newer kernel generally work with newer Hardware alias has to be adapted for it.
So, you might have to rethink your expectations on Fedora Linux or any other Linux project.
I hope you not get me wrong. The help we do offer you here is, that you can reduce the annoyance you have to live with. Maybe you could try Fedora 36 to see if the the Hardware responses better?
To make this less annoying, I wrote a script that will grep the output of arecord -l and use that to sed the ~/.config/pipewire/pipewire.conf.d/pipewire.conf file, and then restart pipewire. Then I set this script as a startup application in cinnamon.
I just rebooted 5 times, and the microphone works every time.
Sounds, very nice. I would love to see the script. If you have gist or similar you could share it as a link and or include it in your profile.
So people can see that you are already a contributor. Even if it is “just” for a workaround.
I do believe for 35, as long used with kernel 5.16, there will be no solution. If someone fights with same problem could be very happy with your script.
Next I wrote a simple script which greps the output of arecord to determine the current Card Number, and uses that Card Number to overwrite ~/.config/pipewire/pipewire.conf.d/pipewire.conf, and then restart pipewire and wireplumber:
And finally, configure this as a Startup Application in Gnome/Cinnamon/etc…
I also had to Modify the Startup Application listings for Zoom and Skype with a 5 Second Delay to make sure the fix-mic.sh script was finished before these launch. Otherwise they would not detect the correct Microphone.