You are not logged in.
linux: 4.13.4-1-ARCH
mesa: 17.2.2-1
xf86-video-intel: 1:2.99.917+781+gc8990575-1
xf86-video-nouveau: 1.0.15-2
Lenovo ThinkPad T430 with Optimus Graphics, (Intel 4000, NVIDIA GF108M, NVS 5400M, in the NVC0 Family)
Context:
The machine is set-up using both FOSS drivers, with the intention to use on a Docking Station in Dual-Head mode and HDMI/DP Audio (on the external monitor). I had originally tried using the proprietary driver, but the Multi-Head support was unsatisfying, requiring the BIOS setting "Graphics Device" to be "Discrete" (i.e. disable the Intel card entirely) to work how I wanted. In any event, I want this setting to be "NVIDIA Optimus" so that I can make use of the power-saving and offloading features. So I removed the proprietary driver (and bumblebee, and other related packages + config files), installing nouveau.
So with Intel+nouveau the video seems to be working fine, however only the Intel audio devices seem to show (i.e. the headphone port and the speakers), this applies in all of:
pavucontrol
aplay -l
aplay -L
lspci
and perhaps most surprisingly also even
lspci -H1
I say this, since there is a selection of similar discussion threads online (here and elsewhere) which indicate that for them the device DOES appear in this list, if not in the others.
If I set that BIOS setting ("Graphics Device") back to "Discrete", I do get 2 independent Audio devices, both of which seem to work. But, as mentioned, I would very much prefer to be able to use the "Optimus" functionality at least to some degree.
Here follows a selection of references I've found, along with some comments:
https://bugs.freedesktop.org/show_bug.cgi?id=75985 - works for him with `lcpci -H1`, not for me
https://bbs.archlinux.org/viewtopic.php?id=230125 and https://devtalk.nvidia.com/default/topi … 3/#5211273 - suggests manually performing PCI magic - doesn't work for me since unable to `rmmod nouveau` even after stopping lightdm or blacklisting the `nouveau` module.
(If I try anyway to run the `setpci` command and restart X, I just get
pcilib: cannot open /sys/bus/devices/0000:01:00.0/config
lspci: Unable to read the standard configuration space header of device 0000:01:00.0
in lspci instead of what would presumably be the desired Audio device.
https://bugs.archlinux.org/task/54986 - bug on the Arch tracker, just suggests going further upstream; also for this user, he still sees the right number of Audio devices even if they don't work
https://bbs.archlinux.org/viewtopic.php?id=228501 - another user for whom the device does show up in `lspci -H1`, unlike my case
And, I brought this up in #nouveau on Freenode IRC, and someone there decided to make the following mailing list post.
https://marc.info/?l=linux-pci&m=150756010119164&w=2
---
As and when I can work out more, I'll post it into this thread. Meanwhile, if anyone has any suggestions on how to further diagnose this (especially pertaining to un/reloading the nouveau module and applying the "PCI magic") I'd of course much appreciate it.
--
CLARIFICATION: If I just run the "PCI Magic" (reproduced below), the NVIDIA HDMI/DP Audio device DOES appear in `lspci -H1`, but since I'm unable to successfully trigger the PCI remove/rescan (or removing the nouveau module), I can't use the devices properly.
As root:
setpci -s 01:00.0 0x488.l=0x2000000:0x2000000
rmmod nouveau
echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove
echo 1 > /sys/bus/pci/devices/0000:00:01.0/rescan
modprobe nouveau
FURTHER UPDATE: If using a systemd service which runs sufficiently early on boot, it IS possible for the module-juggling and setpci command to run successfully, and the result is that the NVIDIA HDMI device displays AND works.
[adam@rakka ~]$ cat /etc/systemd/system/hdmi-audio.service
[Unit]
Description=PCI Bit-Banging to fix NVIDIA HDMI Audio
DefaultDependencies=no
[Service]
Type=simple
ExecStart=/usr/sbin/sh /usr/sbin/hdmi_audio.sh
[Install]
WantedBy=sysinit.target
[adam@rakka ~]$ cat /usr/sbin/hdmi_audio.sh
setpci -s 01:00.0 0x488.l=0x2000000:0x2000000
rmmod nouveau
echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove
echo 1 > /sys/bus/pci/devices/0000:00:01.0/rescan
modprobe nouveau
I suppose that now it simply remains to be seen how this is handled upstream. As mentioned, this has been posted on the dri-devel and linux-pci mailing lists.
FURTHER UPDATE: It seems that there is now an (in development) kernel module which enables the HDMI audio. Apparently there's some extra magic at play, involving power states. https://bugs.freedesktop.org/show_bug.cgi?id=75985#c27
Last edited by aphirst (2018-01-17 20:25:20)
ArchLinux | x86_64 | linux-ck-ivybridge
ThinkPad X230 | 12.5" | i5-3320M (2.5GHz) | HD 4000 | 16GB (1600MHz) | 256GB mSATA SSD | 2TB HDD
ThinkPad T430 | 14.1" | i7-3520M (2.9GHz) | GF108M (NVS 5400M) | 16GB (1600MHz) | 256GB mSATA SSD | 1TB HDD | 500GB HDD
Offline