No HDMI sound w/Optimus in Linux

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:

  1. Booted FreeBSD, maybe the pci probe code had a bug in linux (doubtable). FreeBSD does not show the nvidia audio device in pciconf.
  2. modprobe a series of modules (eg, snd_hda_codec_intelhdmi, snd_hda_codec_nvhdmi, snd_hda_codec_hdmi)
  3. 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.

Ok so even weirder. I went into windows with a fresh boot in optimus mode, here is an lspci from windows:

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:16.3 Serial controller: Intel Corporation 6 Series/C200 Series Chipset Family KT Controller (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b4)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b4)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b4)
00:1c.6 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 7 (rev b4)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation QM67 Express Chipset Family LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation GF106GLM [Quadro 2000M] (rev a1)
03:00.0 Network controller: Intel Corporation Centrino Ultimate-N 6300 (rev 35)
0d:00.0 System peripheral: Ricoh Co Ltd MMC/SD Host Controller (rev 08)
0d:00.3 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 PCIe IEEE 1394 Controller (rev 04)
0e:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)

Now, I plugged my hdmi coord into the tv from windows, and the screen flashed, screen is now shared on my tv. My lspci is now differnt (see the added audio device):

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:16.3 Serial controller: Intel Corporation 6 Series/C200 Series Chipset Family KT Controller (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b4)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b4)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b4)
00:1c.6 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 7 (rev b4)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation QM67 Express Chipset Family LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation GF106GLM [Quadro 2000M] (rev a1)
<b>01:00.1 Audio device: NVIDIA Corporation GF106 High Definition Audio Controller (rev a1)</b><u></u>
03:00.0 Network controller: Intel Corporation Centrino Ultimate-N 6300 (rev 35)
0d:00.0 System peripheral: Ricoh Co Ltd MMC/SD Host Controller (rev 08)
0d:00.3 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 PCIe IEEE 1394 Controller (rev 04)
0e:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)

How do i whatever action occured in the windows driver to also enable this in linux?

Just as another update, I wrote a little kernel module to get as low as possible to read a device listing from the pci bus, and I simply cannot see the nvidia audio controller. This leads me to believe the driver in windows is doing something to enable the sound device on the pci bus when it recognizes there an hdmi signal is being sent through HDMI.

No idea where to begin reverse engineering how this is done so i can replicate it in Linux, so at this point waiting for a reply from nVidia on details. I’d even be willing to get it to work with bumblebee if i knew what was going on there.

-Rob

bump, anyone have any idea where to start on this? i’d be more than willing to write the code to get this to work, i just don’t understand what the windows driver is doing to make the nvidia audio hardware to be available on the pci bus when the hdmi cable is plugged in

I would start with trying Nouveau drivers with a very recent kernel, reading this patch series:
http://lists.freedesktop.org/archives/dri-devel/2013-August/042854.html
and this code (grep ‘vga’): hda_intel.c « hda « pci « sound - kernel/git/torvalds/linux.git - Linux kernel source tree

Awesome, thanks monoid, going to take a look at this tonight. Much appreciated!

Niriven, Is this issue fixed for you with patch pointed by monoid?

No luck. I tried looking into it but it looks fairly complicated and very machine specific. I also want to use the nVidia drivers and not Nouveau right now for performance reasons.

Any other input that someone can give would be great. I’m stuck in windows until i get this to work :(

Niriven, Please provide nvidia bug report by running nvidia-bug-report.sh script as root user. Is this happening when any Linux OS + Bumblebee combination?

Internal Bug id 1391371 to track this issue.

sandipt,

I am running Linux with bumblebee. The requested report can be found here: SendTransfer | Send Large Files up to 10GB for free

Thanks!

Hi,

I don’t know if the problem is resolved but I’d like to give some info how I turned on sound by HDMI in my Laptop. Maybe, it will be helpful for somebody.

Some info below.

Hardware: Dell XPS L702X
System: Fedora 20 + bumblebee and NVIDIA driver
Kernel: 3.12.5-302.fc20.x86_64
NVIDIA driver version: 331.20

Commented rows in xorg.conf.nvidia file in /etc/bumblebee

Option “UseEDID” “false”

Option “UseDisplayDevice” “none”

Start point: system after power on, root terminal launched :-)
Scan PCI after system restart

lspci

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b5)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b5)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5)
00:1c.5 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation HM67 Express Chipset Family LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation GF116M [GeForce GT 555M/635M] (rev ff)
03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6230 [Rainbow Peak] (rev 34)
04:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
0a:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

lspci -H 1 ← “-H 1” - Use direct hardware access (look at lspci -h)

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b5)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b5)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5)
00:1c.5 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation HM67 Express Chipset Family LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6230 [Rainbow Peak] (rev 34)
04:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
0a:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

00:01.0 device is PCI bridge for NVIDIA card.

NVIDIA card is turned off
lspci -x -s 01:00.0

01:00.0 VGA compatible controller: NVIDIA Corporation GF116M [GeForce GT 555M/635M] (rev ff)
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

Secondly, lspci does not show it in direct hardware access.

Launch anything using optirun e.g.:
optirun nvidia-settings -c :8

lspci (removed some not important rows)

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GF116M [GeForce GT 555M/635M] (rev a1)

lspci -H 1 (removed some not important rows)

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GF116M [GeForce GT 555M/635M] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF116 High Definition Audio Controller (rev a1)

lspci shows NVIDIA audio in direct hardware access.

Now, stop application started by optirun and execute
echo ON > /proc/acpi/bbswitch
The audio card should be still visible, when you execute “lspci -H 1” (in my case it is)

Remove PCI bridge 00:01.0
echo 1 > /sys/bus/pci/devices/0000:00:01.0/remove
Make PCI bus rescan.
echo 1 > /sys/bus/pci/rescan

Now, the new device should be visible in /sys/bus/pci/devices and “lspci”

In dmesg, I get info:

[  779.697442] input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input21
[  779.698050] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input20
[  779.698218] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input19
[  779.698352] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input18

and when I start anything using HDMI
export DISPLAY=:8
optirun mplayer …

The new output appears in Pulse mixer and after choice it the sound go through by HDMI.

When the sound is activated, it is problem with stopping NVIDIA card when the program is stopped.

In theory bbswith turns off the card - dmesg info
[ 1225.597104] bbswitch: disabling discrete graphics
but lspci -x shows this

01:00.0 VGA compatible controller: NVIDIA Corporation GF116M [GeForce GT 555M/635M] (rev a1)
00: de 10 4d 12 03 00 10 00 a1 00 00 03 00 00 80 00
10: 00 00 00 d8 0c 00 00 c0 00 00 00 00 0c 00 00 d0
20: 00 00 00 00 01 40 00 00 00 00 00 00 28 10 71 05
30: 00 00 00 00 60 00 00 00 00 00 00 00 0b 01 00 00


01:00.1 Audio device: NVIDIA Corporation GF116 High Definition Audio Controller (rev a1)
00: de 10 ee 0b 06 00 10 00 a1 00 03 04 00 00 80 00
10: 00 00 00 da 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 60 00 00 00 00 00 00 00 00 02 00 00

It looks like the NVIDIA still working.

If you got something similar
optirun nvidia-settings -c :8
[ 3751.922404] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Server terminated successfully (0). Closing log file.

[ 3751.922441] [ERROR]Aborting because fallback start is disabled.
dmesg info:
[ 3698.964485] NVRM: RmInitAdapter failed! (0x12:0x2b:1832)
[ 3698.964494] NVRM: rm_init_adapter failed for device bearing minor number 0
[ 3698.964515] NVRM: nvidia_frontend_open: minor 0, module->open() failed, error -5

make
rmmod nvidia
echo 1 > /sys/bus/pci/devices/0000:00:01.0/remove
echo 1 > /sys/bus/pci/rescan
and everything should be ok

In my laptop it is possible turning off/on NVIDIA card using additional ACPI command but it is, probably, out of scope this thread.

Regards,
qpawlud

Thanks qpawlud, this looked promising, however no luck still. I followed your steps and all looked identical up until this point:

Launch anything using optirun e.g.:
optirun nvidia-settings -c :8

My Audio card does not show up:

[root@THINKPAD-W520 niriven]# lspci -H 1
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:16.3 Serial controller: Intel Corporation 6 Series/C200 Series Chipset Family KT Controller (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b4)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b4)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b4)
00:1c.6 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 7 (rev b4)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation QM67 Express Chipset Family LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation GF106GLM [Quadro 2000M] (rev a1)
03:00.0 Network controller: Intel Corporation Centrino Ultimate-N 6300 (rev 35)
0d:00.0 System peripheral: Ricoh Co Ltd MMC/SD Host Controller (rev 08)
0d:00.3 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 PCIe IEEE 1394 Controller (rev 04)
0e:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)

Power on nvidia was on:

[root@THINKPAD-W520 niriven]# lspci -x -s 01:00.0
01:00.0 VGA compatible controller: NVIDIA Corporation GF106GLM [Quadro 2000M] (rev a1)
00: de 10 da 0d 07 00 10 00 a1 00 00 03 00 00 00 00
10: 00 00 00 d8 0c 00 00 c0 00 00 00 00 0c 00 00 d0
20: 00 00 00 00 01 50 00 00 00 00 00 00 aa 17 d1 21
30: 00 00 00 00 60 00 00 00 00 00 00 00 0b 01 00 00

As for system information:

[root@THINKPAD-W520 niriven]# uname -a
Linux THINKPAD-W520 3.12.7-2-ARCH #1 SMP PREEMPT Sun Jan 12 13:09:09 CET 2014 x86_64 GNU/Linux

Hi Niriven,

If this not works you can try to use old good acpi_call :-)

You can get it using

git clone GitHub - mkottman/acpi_call: A linux kernel module that enables calls to ACPI methods through /proc/acpi/call. Now with support for Integer, String and Buffer parameters.

There you have in examples how to use it. In my case a dellL702X.sh file works better comparing to bbswitch because after executing “dellL702X.sh on”, lspci -H 1 shows Audio card even if nvidia driver is not loaded and launched.

Maybe, you will have to change prefix for Acpi command.
In my case the prefix can be find here
cat “/sys/bus/pci/devices/0000:01:00.0/firmware_node/path”
_SB_.PCI0.PEG0.PEGP

Try it, I hope this time you reach better results.

Regards,
Pawel

Thanks for the extra insight. I tried for a period of time to get this to work and no luck. I found what looked to be the prefix and ran acpi_call on for it, then did an lspci -H1 and saw both devices (audio and video), but then it quickly disappeared from the list a few seconds later.

I suppose I am out of luck. I know it has to be possible to get this working a the windows driver does it, however something occurs only when the HDMI cable is plugged into the TV to allow the audio device to be available on the PCI bus.

I guess I will stick with windows until I get a new machine. Next time around I’ll be bit more careful to get something that works in linux (iris only laptop or AMD switchables)

You could also get a laptop with a hardware mux (like a Lenovo Thinkpad). That allows you to disable Optimus entirely and use the Nvidia GPU as if it was the only GPU in the system.

Hi,

same problem here. My configuration looks like this:

  • Lenovo T430 (2349)
  • Nvidia NVS 5400M HW ID: 10de:0def
  • Driver: nvidia 331.38-2
  • Kernel: 3.12.9-1 (on Arch-Linux)
  • Optimus is enabled in BIOS
  • No Bumblebee installed
  • HDMI cable attached

Actually i didnt manage it to see any Nvidia audio device with:

lspci -H 1

I tried acpi_call “trick”, no luck. My acpi_call looks like this:

echo '\_SB.PCI0.LPC.EC.PUBS._ON' > /proc/acpi/call

I remember it worked with an earlier kernel version.

It would be great if the audio output via hdmi would work again.

Regards, Daniel

Still no luck with HDMI here, but I have been working around the issue using a Chromecast from google. It allows me to do about 95% of what I wanted to do with HDMI in Linux. The only thing that is lacking is full screen mirroring, but I can watch movies, put pictures on the TV, and do presentations through chrome / google docs.