ValveSoftware / SteamOS

SteamOS community tracker
1.61k stars 70 forks source link

No Audio #12

Open carlzulauf opened 10 years ago

carlzulauf commented 10 years ago

I have everything working except audio. Doesn't work in Steam, doesn't work in GNOME, doesn't work in games (which otherwise work).

Hardware description:

Navigating to System Settings > Sound in gnome shows zero devices.

Empty device list

lspci -k output shows both the Azalia audio on the motherboard and the HDMI audio on the GTS 450 are recognized as audio device. All audio devices are using kernel driver snd_hda_intel.

I have tried getting audio output through HDMI, SPDIF, and 3.5mm stereo. Nothing on any.

irbigturtle commented 10 years ago

Hmmm, I saw you noticed I was having the same problem. I looked up your board specs and noticed you have the same audio chipset as me: Realtek ALC892.

Could be they just haven't added support for it yet.

vhawley commented 10 years ago

I am having the same issue.

My specs: MSI Z87-G45 (Realtek ALC1150 Audio) Intel Core i5-4670k @ 3.4GHz EVGA GeForce GTX 760 8 GB DDR3-1600 RAM

I tried manually installing the drivers provided by Realtek but when using ./configure there was an error related to compiling a .h file. If more info is needed let me know what i can provide.

xorl commented 10 years ago

Same issues:

MSI GTX 760 AMD FX-8350 MSI 970A-G46 (Realtek ALC892)

irbigturtle commented 10 years ago

Closed my issue and reposting here:

There is no audio when using SteamOS or Desktop. Using standard 1/8" audio jack on ASUS P8Z77-V Motherboard.

Motherboard Specs: Realtek ALC892 8-Channel Audio CODEC

ChristianHersevoort commented 10 years ago

I haven't installed SteamOS yet, but ALC892 definitely works on Linux. (I've used it on my deskop using Arch Linux).

Can anyone supply the log for:

lspci -k | grep -i -A 2 audio

Does anyone know if it's possible to install vanilla debian packages without changing the sources.list file?

The pavucontrol is a utility to configure pulseaudio, you can (possibly) install it using the following command:

sudo apt-get install pavucontrol

Does the 'pavucontrol' program show any audio devices?

If this pavucontrol doesn't show anything, you can try to run the alsamixer command. This program can be installed with:

sudo apt-get install alsa-utils

I think the problem is related to pulseaudio configuration

jazz1138 commented 10 years ago

I managed to solve this issue, for me the problem's were that

1.) All of my Nvidia HDMI devices were muted. 2.) Pulse audio defaults to using the first HDMI device. Mine was the second.

To solve it I first installed alsa-utils via a deb package from http://packages.debian.org/wheezy/alsa-utils

sudo dpkg -i alsa-utils_1.0.25-4_amd64.deb

Then un-muted my HDMI devices.

alsamixer

Press F6 to select the Nvidia card.

Press "m" to unmute.

Exit.

To see what devices you have run:

aplay -l

The Nvidia section should look something like this: Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 7: NVIDIA HDMI [NVIDIA HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 8: NVIDIA HDMI [NVIDIA HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 9: NVIDIA HDMI [NVIDIA HDMI] Subdevices: 0/1 Subdevice #0: subdevice #0

Determine which device outputs audio aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Right.wav aplay -D plughw:1,7 /usr/share/sounds/alsa/Front_Right.wav aplay -D plughw:1,8 /usr/share/sounds/alsa/Front_Right.wav aplay -D plughw:1,9 /usr/share/sounds/alsa/Front_Right.wav

Create a probe mapping for the device that plays audio. Below are the Nvidia mappings for each device.

Device 3=0x101 Device 7=0x102 Device 8=0x104 Device 9=0x108

In my case it was device 7 (second device) so i used 0x102

Create this file.

vi /etc/modprobe.d/sound.conf

To this add the following, replacing 0x102 with your device map.

options snd-hda-intel probe_mask=0x102

Save the file and update the initramfs:

sudo update-initramfs -u

reboot.

Note: This worked for me with a Gigabyte GTX 550 and Realtek 892 anboard audio.

thimslugga commented 10 years ago

I resolved this issue similar to @jazz1138

I did a little research and it appears the issue is a known/documented bug in pulseaudio

ftp://download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html#_issues_in_pulseaudio

Enable Desktop via Big Picture Settings and then Exit > Return to Desktop. Then bring up a terminal and set your password if you haven't already,

passwd
 sudo su

Verify your the kernel drive sees your cards

 cat /proc/asound/cards
 lspci
 cat /proc/asound/cardX

If so then you can proceed

 cd /etc/modprobe.d/
 ls -al

Create snd-hda-intel.conf if it isn't already there

 nano snd-hda-intel.conf

Place the following in the file,

options snd-hda-intel probe_mask=0xa,-1
 rm -rf /home/steam/.pulse
 rm -rf /home/desktop/.pulse
 reboot

Sound should be working.

mingsterUK commented 10 years ago

Broknbottle instructions work perfectly. Fixed my sound problem. Thank you.

hikto commented 10 years ago

Ok so for some reason i have sound in the system(desktop mode/after following a combination of the tutorials a few posts up) but not in the client (steam client)and no i restarted and that didn't fix

EDIT: ok so i Now i got audio in my steam client after doing a full reinstall /testing things and redoing the steps above

carlzulauf commented 10 years ago

@broknbottle your solution fixed my audio issues, at least mostly. Thank you.

Now audio works through HDMI. Still can't seem to get any audio from the Realtek ALC892 on the motherboard. This works for now.

irbigturtle commented 10 years ago

@broknbottle Similar result to @carlzulauf

Audio Works through HDMI only on the desktop but it does not work in steamOS.

It also does not work through motherboard with ALC892 chipset.

thimslugga commented 10 years ago

@irbigturtle at the shell prompt escalate to root with,

sudo su -

See if the steam user is part of the audio group

groups steam

Also make sure this was done after making the changes

update-initramfs -u
rm -rf /home/steam/.pulse
ckedwards commented 10 years ago

I followed all of the steps @broknbottle listed and I still do not see see the motherboard audio (ALC892). However when I do the following:

sudo killall pulseaudio
pulseaudio

I can see the motherboard audio. However, when I restart the machine the motherbord audio disappears again.

Any suggestions?

thimslugga commented 10 years ago

@chrise524 Are you trying to use the onboard ALC892 audio and NVidia for video?

My guide was for fixing audio when using NVidia HDMI out for Audo/Video.

lsmod # make sure kernel module is loaded for that chipset
pulseaudio -vvv # check pulseaudio
sudo apt-get install firmware-linux-free firmware-linux-non-free # try installing these also
irbigturtle commented 10 years ago

@broknbottle It looks like audio is part of the steam group. I then did...

update-initramfs -u rm -rf /home/steam/.pulse reboot

...and still don't have audio in SteamOS, but I do have audio in Desktop.

To clarify:

cat /proc/asound/cards RETURNS HDA-Intel - HDA Intel PCH (is this the onboard audio?) HDA-Intel - HDA NVidia (HDMI audio on GPU)

lspci RETURNS Audio device: Intel Corp.... C210 Chipset Family High Definition Audio Controller (onboard audio?) Audio device: NVIDIA.... GK104 HDMI Audio Controller (GPU Audio)

cat /proc/asound/cardx RETURNS No such file or directory

I feel like it could be something as simple as a bad setting in the steam user, but i can't access it because SteamOS forces it's overlay (or whatever it's doing to prevent me from logging in as "steam".

thimslugga commented 10 years ago

@irbigturtle The 'X' is not literal, if you look in that directory there should be files such as card1, card2, etc. The 'X' just signifies the number. Sorry about that

cat /proc/asound/cardX

Just to clarify you are trying to get audio working over nvidia HDMI out, correct?

irbigturtle commented 10 years ago

@broknbottle Ahh yes, that makes sense! Yes, whether it is through HDMI or the motherboard, I'm just trying to get audio out of SteamOS.

blhunter commented 10 years ago

My final hurdle was that the default sound process (gnome?) was overwriting the pulse default sink config in /home/steam/.pulse on reboot. I have an Asus Xonar DG that I am using the digital output on to my speakers, but the HDMI of my Nvidia GPU was the default device, and the analog out of the Xonar was the default.

I set the Xonar to be the first device indexed, then configured the Sound Control panel to the way I wanted it, eg that the Nvidia output was turned off, and the Xonar was set to digital stereo. I confirmed this the in pulse config file, and then did a chmod -w on only that file for both the steam and desktop users.

There must be a bug that the pulse config is overwritten on reboot, because making it read only preserved the settings across reboots, and even into the SteamOS environment after I did the post install script.

I hope this helps someone else.

irbigturtle commented 10 years ago

@broknbottle I was just retracing my footsteps and realized i had misspelt "options snd-hda-intel probe_mask=0xa,-1" in the config file! Sorry for giving you the run around. I just tried to re-do your original instructions and now I've lost my HDMI audio output on the desktop! it has been replaced by "dummy audio" and when i do....

cat /proc/asound/cards

It says there are no cards. Should I not have tried the instructions a second time or is there something else going on here?

jazz1138 commented 10 years ago

I believe this is a how it is meant to be at the moment, I saw a rep from valve saying that there is no audio in desktop mode. More importantly do you now have audio in Steam?

irbigturtle commented 10 years ago

@jazz1138 I do not have audio in steam. if that's true, then i'm curious as to how i achieved audio in desktop mode by not steam.

thimslugga commented 10 years ago

@irbigturtle no worries, mine says dummy audio so that should be good. Does your steam client audio work now? The steam client/games runs under the user steam and audio will not work if another process is using it. If needed you can just remove that line and it should revert back.

irbigturtle commented 10 years ago

@broknbottle Ok I removed the line and tested. My audio device came back in desktop. So i added the line back and rebooted. Still no audio in SteamOS, and Dummy audio back in desktop. Seems like i'm on the right track, but i'm still missing audio.

thimslugga commented 10 years ago

@irbigturtle if you have audio under desktop user, I would if it would work if you just killed the steam process that is running under steam user and started steam from desktop user.

I would just do escalate to root and do a ps faux | grep steam and kill the pid with kill command. Then drop back down to desktop user and try running steam from command line.

jazz1138 commented 10 years ago

@irbigturtle are you sure you are using the correct mask for your system or are you just copying @broknbottle settings. In my setup I hear audio on card 1 device 7 using aplay so the mask is used to ignore all other devices except that one so that device is always selected by pulseaudio at boot.

irbigturtle commented 10 years ago

@jazz1138 I am just copying what he has into the config file, I am not sure I am using the correct mask. I just tried follow your instructions and found that ALL of my audio outputs produced sound....

0,1
1,3
1,7
1,8
1,9

So I tried both...

options snd-hda-intel probe_mask=0x101

and

options snd-hda-intel probe_mask=0x102

Neither worked in steamOS.

irbigturtle commented 10 years ago

@jazz1138 If I try running steam from the desktop user, doesn't that mean I would have to do this every time I wanted to use it?

thimslugga commented 10 years ago

@irbigturtle I suggested it more so for testing. Trying to find some steady ground and figure out why one application is unable to output audio.

You've made sure audio is enable in Steam client settings and volume is turned up?

irbigturtle commented 10 years ago

@broknbottle Ok, i'll be going through the processed of attempting that next. In the meantime, I noticed that by using @jazz1138 method I get audio back in the desktop (rather than dummy audio). Current config is...

options snd-hda-intel probe_mask=0x101

When I was perviously using...

options snd-hda-intel probe_mask=0xa,-1

I did get dummyaudio in desktop mode.

irbigturtle commented 10 years ago

@broknbottle I did a grep, but I wasn't sure which steam process I was supposed to kill, So I started with the first steam process. It immediately went black and restarted steam (still no sound), and when I tried to return to the desktop it stuck at a black screen. Any insight?

Cybjit commented 10 years ago

I got my motherboard audio working by configuring pulseaudio.

Download and install pulseaudio-utils, it is available from the repo, but for some reason not in apt-get http://repo.steampowered.com/steamos/pool/main/p/pulseaudio/

Go to the console (ctrl-alt-F1) and login as user steam (no password). Check which sinks are available, and note the numbers of the ones you want active or inactive.

pactl list sinks | less

Logout and login as user desktop (no password), and edit default.pa

sudo nano /etc/pulse/default.pa

Append at the bottom

suspend-sink <number you want inactive> 1

suspend-sink <number you want active> 0
set-default-sink <number you want active> 0
sink-set-mute <number you want active> 0
sink-set-volume <number you want active> 65535

And reboot

jazz1138 commented 10 years ago

@irbigturtle It seems your mask is not masking. The idea of the mask is it disables all devices except your prefered one so if you run "aplay -l" you should only see 1 nvidia device at position 3. e.g. You are probably getting sound on all devices beacause pulse is doing the routing for you.

desktop@steamos:~$ aplay -l \ List of PLAYBACK Hardware Devices ** card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0] Subdevices: 0/1 Subdevice #0: subdevice #0

What is the output of aplay -l ?

I guess you could try all options until you hit the magic one. options snd-hda-intel probe_mask=0x101 options snd-hda-intel probe_mask=0x102 options snd-hda-intel probe_mask=0x104 options snd-hda-intel probe_mask=0x108

Don't forget to sudo update-initramfs -u sudo reboot after each change.

tinix0 commented 10 years ago

@Cybjit After Unmuting card in alsamixer and doing this audio works, but not on desktop. EDIT: Ok, so I found out that those lines actually crashed Pulseaudio, so I removed them. HOWEVER after reboot steam still outputs sound which really surprises me as pulse is back up. Onboard Card only shows in sinks as user steam, which is very very weird... EDIT2: I stand corrected... Audio does work on dekstop even though Pulse is effectively not running... so only volume controls do not work except for those in steam

Cybjit commented 10 years ago

@tinix0 One can get around the crash in desktops pulseaudio by first copying /etc/pulse/default.pa to /home/steam/.pulse/default.pa and editing it there. But this will still not get audio in desktop. It seems the steam user gets exclusive access to whichever sink it is using, and the desktop user can only see the other sinks.

tinix0 commented 10 years ago

@Cybjit I have actually found out that the sound on desktop works from VLC and Chromium flash with the config that crashes pulse, so I guess it works a bit.

Cybjit commented 10 years ago

@tinix0 perhaps the crash of pulseaudio makes VLC and Chromium use alsa directly? Could you check which output driver you are using?

tinix0 commented 10 years ago

@Cybjit VLC uses ALSA

Cybjit commented 10 years ago

I found a way to get pulseaudio working for both users. Edit /etc/pulse/default.pa like in my post above, and then remove steam and desktop from the audio group.

sudo deluser steam audio
sudo deluser desktop audio
tinix0 commented 10 years ago

@Cybjit actually I needed to remove the edit from default.pa and remove users from groups, now it works.

Cybjit commented 10 years ago

@tinix0 I probably should not have phrased it like that. Getting steam to select the correct sink and getting pulseaudio working for both users are separate issues. To get my motherboard audio working and playing for both users I have to apply both fixes.

ghost commented 10 years ago

@jazz1138 I'm suffering from something similar to irbigturtule. Specifically, I've gone through the sound.conf solution above. After unmuting devices using alsamixer and using aplay I was able to get sound from all of the listed devices. I went through and edited a /etc/modprobe.d/sound.conf (with followup update-initramfs calls, reboots, and .pulse removals) with each of the following options:

options snd-hda-intel probe_mask=0x101 options snd-hda-intel probe_mask=0x102 options snd-hda-intel probe_mask=0x104 options snd-hda-intel probe_mask=0x108

I get no audio in BigPictureMode AND the desktop when using probe_mask = 0x102 or 0x108.

I get audio in BigPictureMode but not desktop when using 0x101. // "Dummy" name displayed in desktop's system sound config

I get audio in desktop but not BigPictureMode when using 0x104. // Card name displayed in desktop's system sound config

Any ideas on why this would be the case or how to fix it?

jazz1138 commented 10 years ago

Hi @shmifaats, If I'm not mistaken, according to Valve getting audio in BigPicture and Dummy audio in the desktop is the expected behaviour. I saw a quote from a valve rep saying that audio support in desktop is not supported at this time. Conceivably because Big Picture needs to lock out the device for it's own use.

ghost commented 10 years ago

@jazz1138 Thanks for the info. I was able to get the audio through HDMI to work for BigPicture and my headphone jack for the desktop. The only issue now is switching between the two, but this is certainly livable.

tr37ion commented 10 years ago

I have similar effects. Sound in Desktop works perfectly if I switch to HDMI Nvidia Device. Then I start Steam desktop mode and all Flash sounds are gone. Also no ALSA wrapper for Steam is listed in audio applications in 'pavucontrol'.

Just a short introduction what actually happens:

  1. I boot Gnome 3.10
  2. The Sound works and I open Firefox, go to Youtube and Test teh sound - fine, it works.
  3. I open the Sound settings and HDMI Nvidia output is selected
  4. I start Steam and go to a store page and play a movie - NO sound!
  5. I start BPM and open the store and play a game movie - FINE, I have sound!
  6. I go back to Steam (exit BPM) and try game video again - Still no sound.
  7. Additionally I open Firefox with Youtube again - Sound works!

It seems to me that Steam is somehow switching default devices.

My system setup: https://gist.github.com/tr37ion/a0b5399159b67ce654a0

kflott commented 10 years ago

This just worked for me: sudo su rmmod snd-hda-intel modprobe snd-hda-intel reboot

I now get sound on desktop and in steam, however no sound in-game when I launch a game.

growlley commented 10 years ago

doing better than me Ive had it make a sound when its booting and after that nothing no sound card found and its only connected to a hdmi tv.

hirezl commented 10 years ago

I tried all solutions listed here, kflott's got me to where I have sound in desktop, still no sound in Steam. I have sound in the Steam games, though, so good enough!

tr37ion commented 10 years ago

Btw. I just had a look at my modprobe.conf. Do you think that's ok?

blacklist snd_intel8x0m
options snd-cmipci mpu_port=0x330 fm_port=0x388
options snd-hda-intel index=0 model=toshiba position_fix=1

@growlley Did you blacklist any soundcard?

@HiRezL Do you have also sound for the Flash movies inside Steam?

Ilrita commented 10 years ago

Hello,

I can't seem to get sound working either. I tried the solutions in this thread but I cannot get passed any of the output commands because it reports back "no soundcards" or "no devices". Following "broknbottle"'s solution, this is what I get;

cat /proc/asound/cards

--- no soundcards ---

lspci

00:00.0 RAM memory: NVIDIA Corporation MCP61 Memory Controller (rev a1) 00:01.0 ISA bridge: NVIDIA Corporation MCP61 LPC Bridge (rev a2) 00:01.1 SMBus: NVIDIA Corporation MCP61 SMBus (rev a2) 00:01.2 RAM memory: NVIDIA Corporation MCP61 Memory Controller (rev a2) 00:02.0 USB controller: NVIDIA Corporation MCP61 USB 1.1 Controller (rev a3) 00:02.1 USB controller: NVIDIA Corporation MCP61 USB 2.0 Controller (rev a3) 00:04.0 PCI bridge: NVIDIA Corporation MCP61 PCI bridge (rev a1) 00:05.0 Audio device: NVIDIA Corporation MCP61 High Definition Audio (rev a2) 00:07.0 Bridge: NVIDIA Corporation MCP61 Ethernet (rev a2) 00:08.0 IDE interface: NVIDIA Corporation MCP61 SATA Controller (rev a2) 00:08.1 IDE interface: NVIDIA Corporation MCP61 SATA Controller (rev a2) 00:09.0 PCI bridge: NVIDIA Corporation MCP61 PCI Express bridge (rev a2) 00:0b.0 PCI bridge: NVIDIA Corporation MCP61 PCI Express bridge (rev a2) 00:0c.0 PCI bridge: NVIDIA Corporation MCP61 PCI Express bridge (rev a2) 00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration 00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller 00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control 00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link Control 02:00.0 VGA compatible controller: NVIDIA Corporation G84 [GeForce 8600 GT](rev a1)

cat /proc/asound/cardx

cat: /proc/asound/cardx: No such file or directory

Sound works in Windows 7, Linux Mint and Ubuntu 12.04 LTS.

Thanks for any help!

jazz1138 commented 10 years ago

@Tumbar cat /proc/asound/cardx is not literal, replace x with the card order e.g. 0,1 or 2.