"No signal" with HDMI or DP-0 ports on MacBookPro10,1 (GT 650M) -- only DP-1 works

I’m running version 375.39 of the Linux NVIDIA driver on my “Early 2013 15-inch MacBookPro10,1”, which has a GeForce GT 650M GPU. This laptop has three external video ports: two Thunderbolt ports (DP-0 and DP-1) and an HDMI port (HDMI-0). The only port that works with the NVIDIA driver is DP-1. If I attach a monitor to DP-0 or HDMI-0, everything appears fine on the software side, as far as I can tell, but the monitor does not display a signal.

Details:

I used 64-bit Xubuntu 17.04. I did most of my testing with an Acer P243W monitor, connected to the laptop with a DVI-to-mini-DisplayPort adapter. When I tested HDMI, I used a plain HDMI cable.

I tested two other monitors and seen the same behavior when I attached over DVI-to-mDP or HDMI.

I can successfully attach a Dell 27" monitor with a DP-to-mDP cable to DP-1, and it (mostly) works. (There’s actually a terrible ghosting issue, but I think it’s unrelated.) If I instead attach it to DP-0, I don’t recall exactly what happens, but it’s not good. Maybe the machine lags – I think sometimes the monitor starts turning off and on. I can investigate in more detail if that’s useful.

I also tested with two other NVIDIA driver versions, installed using the NVIDIA run packages – 375.66 and 381.09, and there was no improvement. For the log files I’m uploading, I used the Ubuntu 375.39 packages.

All three ports work fine with macOS 10.12, Windows 10 (using the BootCamp drivers), and the nouveau driver on Linux. (nouveau was otherwise too buggy to use.)

I used the nvidia-bug-report.sh script twice – a BAD log with the monitor attached to DP-0, and a GOOD log with it attached to DP-1. I rebooted before running the script each time.

EDIT: The laptop’s 2 ports are Thunderbolt. not mini-DP.
BAD-DP-0-nvidia-bug-report.log.gz (260 KB)
GOOD-DP-1-nvidia-bug-report.log.gz (258 KB)

1 Like

Apparently the forum thinks my log files are infected? I pasted them into a GitHub gist. They’re too big to display, but GitHub allows downloading the raw files. https://gist.github.com/rprichard/adf794b40d87a3c36ac93ad68ec8e2e8

FWIW, I suspect this Arch post is the same issue, https://bbs.archlinux.org/viewtopic.php?id=195152.

1 Like

In retrospect, I think this comment may be unfair. When I looked at nouveau recently, I got the impression it was too unstable/buggy/crash-prone for me, but I played with it some more, and now it seems stable enough. FWIW, I saw these issues with nouveau on my laptop:

  1. If I enable the 3D acceleration mode in VirtualBox, then the host machine locks up once a Windows 10 guest machine (with the guest extensions) logs in. In my testing, with this one laptop, the VirtualBox 3D acceleration mode is flaky and slow even with macOS/Windows hosts, though, so there's no point in enabling the setting.
  2. If a window draws too quickly(?), there is corruption all over the screen. I had thought this happened with Xubuntu 17.04, but now I can only reproduce it with Xubuntu 17.04 Beta2. I also thought the machine would randomly lock up, but it's been fine on Xubuntu 16.04 for at least hours.
  3. In Chrome on Xubuntu 16.04, which I've downgraded to, there's no GPU acceleration or WebGL. There is acceleration in Xubuntu 17.04.

I can “me too” this thread. I agree, the arch thread you reference is the same issue. I first noticed HDMI failing over 2 years ago.

For my part I am on MBP 15" 10,1 2012, gentoo, kernel 4.13.9, and nvidia-drivers 387.22. This is a GT 650M. Connecting monitors directly to the HDMI port results in detection via xrandr and nvidia-settings, but no signal to the connected screen. Connecting thunderbolt->VGA or thunderbolt->DVI does properly drive the same monitor. OSX drives all the same monitors via all adapters. The nouveau driver drives all the same monitors via all adapters, including HDMI, as long as the monitors are connected at boot. This makes me think the nouveau driver is leveraging EDID detected from EFI possibly?

Over the years, researching this problem has been frustrating because of the uniqueness of the symptoms. But now it seems a lot of folks are running into it and are fed up enough to describe it thoroughly. This thread in particular, and the reference arch thread, are some of the best descriptions I’ve seen, so thank you!

I’ve also run across this:

https://wiki.archlinux.org/index.php/NVIDIA/Troubleshooting

wherein the “xrandr BadMatch” section describes “… the proprietary NVIDIA driver clips the pixel clock maximum frequency of HDMI output to 225 MHz or lower.” Not sure if this is significant.

But I also wonder if this driver is simply having trouble getting EDID via the HDMI port?

1 Like

These links also describe the same issue:

https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-367/+bug/1650897
https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1700756
https://bbs.archlinux.org/viewtopic.php?id=195152

and here, translated from French:

https://translate.google.com/translate?hl=en&sl=fr&u=https://forum.ubuntu-fr.org/viewtopic.php%3Fid%3D1912991&prev=search

1 Like

Hello People!

I am using the same machine and encounter the same problems with my HDMI port.

inxi -Fxxxz

System:    Kernel: 5.4.67-1-MANJARO x86_64 bits: 64 compiler: gcc v: 10.2.0 Desktop: Xfce 4.14.4 wm: awesome 4.3 
           dm: LightDM 1.30.0 Distro: Manjaro Linux 
Machine:   Type: Laptop System: Apple product: MacBookPro10,1 v: 1.0 serial: <filter> Chassis: type: 10 
           v: Mac-C3EC7CD22292981F serial: <filter> 
           Mobo: Apple model: Mac-C3EC7CD22292981F v: MacBookPro10,1 serial: <filter> UEFI: Apple v: 255.0.0.0.0 
           date: 04/16/2019 
Battery:   ID-1: BAT0 charge: 58.0 Wh condition: 58.9/92.2 Wh (64%) volts: 12.4/10.9 model: SMP bq20z451 type: Li-ion 
           serial: N/A status: Full cycles: 690 
CPU:       Topology: Quad Core model: Intel Core i7-3740QM bits: 64 type: MT MCP arch: Ivy Bridge rev: 9 L2 cache: 6144 KiB 
           flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 43119 
           Speed: 3547 MHz min/max: 1200/3700 MHz Core speeds (MHz): 1: 3413 2: 2761 3: 2966 4: 3060 5: 3529 6: 3420 7: 3520 
           8: 3198 
Graphics:  Device-1: Intel 3rd Gen Core processor Graphics vendor: Apple driver: i915 v: kernel bus ID: 00:02.0 
           chip ID: 8086:0166 
           Device-2: NVIDIA GK107M [GeForce GT 650M Mac Edition] vendor: Apple driver: nvidia v: 450.66 bus ID: 01:00.0 
           chip ID: 10de:0fd5 
           Device-3: Apple FaceTime HD Camera (Built-in) type: USB driver: uvcvideo bus ID: 1-1.1:3 chip ID: 05ac:8510 
           serial: <filter> 
           Display: x11 server: X.Org 1.20.9 compositor: picom v: git-2c9e7 driver: modesetting,nvidia 
           resolution: 2880x1800~60Hz s-dpi: 96 
           OpenGL: renderer: GeForce GT 650M/PCIe/SSE2 v: 4.6.0 NVIDIA 450.66 direct render: Yes 
Audio:     Device-1: Intel 7 Series/C216 Family High Definition Audio driver: snd_hda_intel v: kernel bus ID: 00:1b.0 
           chip ID: 8086:1e20 
           Device-2: NVIDIA GK107 HDMI Audio vendor: Apple driver: snd_hda_intel v: kernel bus ID: 01:00.1 chip ID: 10de:0e1b 
           Sound Server: ALSA v: k5.4.67-1-MANJARO 
Network:   Device-1: Broadcom and subsidiaries NetXtreme BCM57786 Gigabit Ethernet PCIe driver: N/A port: 2000 bus ID: 03:00.0 
           chip ID: 14e4:16a3 
           Device-2: Broadcom and subsidiaries BCM4331 802.11a/b/g/n vendor: Apple AirPort Extreme driver: bcma-pci-bridge 
           v: N/A port: 2000 bus ID: 04:00.0 chip ID: 14e4:4331 
           IF-ID-1: wlp4s0b1 state: up mac: <filter> 
Drives:    Local Storage: total: 233.76 GiB used: 100.65 GiB (43.1%) 
           ID-1: /dev/sda vendor: Apple model: SSD SD256E size: 233.76 GiB speed: 6.0 Gb/s serial: <filter> rev: AP 
           scheme: GPT 
Partition: ID-1: / size: 60.00 GiB used: 37.07 GiB (61.8%) fs: btrfs dev: /dev/dm-2 
           ID-2: /home size: 29.40 GiB used: 27.94 GiB (95.0%) fs: ext4 dev: /dev/dm-0 
Swap:      ID-1: swap-1 type: partition size: 16.00 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/dm-3 
Sensors:   System Temperatures: cpu: 72.0 C mobo: N/A gpu: nvidia temp: 63 C 
           Fan Speeds (RPM): N/A 
Info:      Processes: 255 Uptime: 47m Memory: 15.55 GiB used: 2.75 GiB (17.7%) Init: systemd v: 246 Compilers: gcc: 10.2.0 
           alt: 7 Packages: pacman: 1495 Shell: Zsh v: 5.8 running in: lxterminal inxi: 3.1.05 

I tried both prime and reverse prime

Reverse Prime

cat /etc/X11/xorg.conf.d/90-nvidia-reverse-prime.conf

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "1:0:0"
    Option "ModeValidation" "AllowNonEdidModes"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting" #"intel"
    BusID "0:2:0"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

xrandr --listproviders

Providers: number : 2
Provider 0: id: 0x278 cap: 0x1, Source Output crtcs: 4 outputs: 6 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x317 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 1 associated providers: 1 name:modesetting

PRIME

cat /etc/X11/xorg.conf.d/90-nvidia-prime.conf.

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "intel"
    Option "AllowNVIDIAGPUScreens"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
    BusID "0:2:0"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "1:0:0"
EndSection

xrandr --listproviders

Providers: number : 2
Provider 0: id: 0x221 cap: 0x9, Source Output, Sink Offload crtcs: 3 outputs: 6 associated providers: 0 name:modesetting
Provider 1: id: 0x1f8 cap: 0x0 crtcs: 0 outputs: 0 associated providers: 0 name:NVIDIA-G0

I have tried both modeset 0 and 1

grep modeset /etc/modprobe.d/*

/etc/modprobe.d/nvidia.conf:options nvidia_drm modeset=0

In both configurations, the screen gets detected and remains black.
Is there a solution to my problem?

Please let me know if you need any further information to tackle this issue :)

Thanks for your help,
Marcel

nvidia-bug-report.log.gz (222.5 KB)

1 Like