Tag: linux

Linux Pipewire Audio with ROG Strix B450-F Gaming RealTek ALC1220

Linux Pipewire Audio with ROG Strix B450-F Gaming RealTek ALC1220

Upon installing Garuda Dragonized edition on my Desktop rig. Everything seems fine upon first start-up but then when I try to launch anything with audio, I’m already having problems and cannot control the audio to my speakers or headphones very well. Sound comes from the headphones (Front Panel) just fine but not from the Line out. Going into AlsaMixer, I see that “Auto Detect” is enabled, so I disable it and now I have sound coming from headphones and speakers simultaneously and I’m fine with this.

I did a little digging around on Google for hopefully some answers. Here are some links I found:

  • https://forum.manjaro.org/t/fresh-install-gnome-21-07-no-sound-with-realtek-alc1220/73263
  • https://www.maketecheasier.com/install-configure-pipewire-linux/
  • https://www.reddit.com/r/linux_gaming/comments/v67jl9/easy_virtual_soundcards_with_pipewire_for/
  • https://bugzilla.kernel.org/show_bug.cgi?id=211743

This list will grow as I find new information so I can keep up with the changes also I look forward to comments from people who know Pipewire better than I do and hopefully resolve my issue and help others out in the process.

From one of the links above, someone had said when trying to get OBS to work correctly is to add some Virtual Sinks to be able to help with separating audio paths. So I added this to my /home/username/.config/pipewire/pipewire.conf.d directory. (I had to make both the pipewire and pipewire.conf.d directories under .config)

/home/username/.config/pipewire/pipewire.conf.d/10-coupled-streams.conf

1
context.modules = [<br>    {   name = libpipewire-module-loopback<br>        args = {<br>            audio.position = [ FL FR ]<br>            capture.props = {<br>                media.class = Audio/Sink<br>                node.name = game_sink<br>                node.description = "Virtual game sink"<br>            }<br>        }<br>    }<br>    {   name = libpipewire-module-loopback<br>        args = {<br>            audio.position = [ FL FR ]<br>            capture.props = {<br>                media.class = Audio/Sink<br>                node.name = live_only_sink<br>                node.description = "Live-only virtual sink"<br>            }<br>        }<br>    }<br>]

Not exactly sure

Gentoo Linux ~amd64 kernel config for Asus Rog Strix B450-F Gaming motherboard and AMD Ryzen 5 2600x

Gentoo Linux ~amd64 kernel config for Asus Rog Strix B450-F Gaming motherboard and AMD Ryzen 5 2600x

I’m going to start with a kernel configuration for this Mobo/CPU combo. This will not be for other devices, just for this motherboard and CPU combo. You can add modules as you see fit to add them, but this should be the baseline for your kernel. I’ll be updating this as I go along but for now, i’m running the testing branch on Gentoo (~amd64) and the current kernel i’m using is 5.7.12 so far. I will edit this as I go along and modify the kernel version as well so this will be an ongoing post but with the same hardware. I hope this helps someone out as it will help me keep track of my changes.

Here is my setup:
Asus Rog-Strix B450-F Gaming Motherboard
AMD Ryzen 5 2600X
MSI GTX970 4GB Gaming video card

.config
make.conf

Editor’s Note: If anyone sees anything out of place with my config and make.conf files, please feel free to comment below on things I could change to make better. I always enjoy constructive criticism.

I hope by posting this I can help someone out with this configuration and get started on their Gentoo build pretty quick. In the kernel, i’ve tried to keep modules down to a minimum. There are a few WiFi drivers I left in there because i’d like to be able to just plug it in if I need to and i’ve omitted all the others I don’t have. I’ve also omitted a lot of the low level SCSI drivers and other things as well. I’m still working on trimming this down even more. Right now, my kernel is sitting at around 10MB and I have it tuned for ‘performance’ instead of ‘ondemand’. There may be some things you can tweak with this and if you’d like to share, please comment below.