I have tried for months and at this point this the only problem that keeps me going back to windows. It is a strange issue, and I am not sure whats going on, so any details on why things are working the way they are is appreciated.
I have Lenovo Thinkpad W520, and previously I used to run Linux in “Discrete” mode (an option in the BIOS). This would allow me to use 3d, and even HDMI with sound output to my TV. With the recent release of Bumblebee, latest nVidia drivers, and some nice screen cloning Intel drivers for XOrg, I can now run in “Optimus” mode (an option in the BIOS) and get everything I need, except sound.
When taking a look at whats going on, I noticed that under Discrete mode, lspci shows the nVidia sound device, so i have no problems up through the alsa / pulseaudio layers. Under Optimus mode, I noticed that lspci no longer shows the nVidia sound device, only the Intel sound device.
Others are having this issue as well, see the following forum link:
https://bbs.archlinux.org/viewtopic.php?id=154573
So anyway, what I am seeing when switching between optimus and discrete modes is:
Optimus lspci:
intel audio
nvidia vga
intel vga
Discrete lspci:
intel audio
nvidia audio
nvidia vga
As a result, I cannot seem to get alsa to recognize the audio stream from hdmi. I took a look at the codec for intel hda to see possibly, the nvidia audio was streaming to the hda card internally, however I do not see an HDMI output in the codec output.
Things I have tried with on luck:
- Booted FreeBSD, maybe the pci probe code had a bug in linux (doubtable). FreeBSD does not show the nvidia audio device in pciconf.
- modprobe a series of modules (eg, snd_hda_codec_intelhdmi, snd_hda_codec_nvhdmi, snd_hda_codec_hdmi)
- reload snd_hda_intel with differnt probe masks (0xfff2) and other options (msi_enable=0)
Fairly stumped on this one. Even though it may not be officially supported, any suggestions to get this to work would be great. Having my laptop with optimus, linux, and hdmi audio out would be awesome.
Thanks.