Ubuntu sees duplicate display for each graphics card on Macbook Pro

Bug #1809552 reported by Anish Moorthy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
xorg-server (Ubuntu)
New
Low
Unassigned

Bug Description

After booting Ubuntu in BIOS mode on my machine for years, I just switched over to EFI boot. The reason for which I switched is that, on this machine, Ubuntu cannot detect the integrated GPU under BIOS boot.

Ubuntu now recognizes both integrated and discrete GPU on my machine, but it also seems to think I have two monitors.

Expected Behavior: Ubuntu properly recognizes that both graphics cards are in fact controlling the same display

Actual Behavior: Ubuntu thinks I have two displays (each being controlled by a separate card?). If I navigate to the "Devices > Displays" section of the settings app, then Ubuntu lists two "Built in Displays," and offers options to "Join Displays," mirror them, etc.

I have created a question on AskUbuntu (https://askubuntu.com/questions/1103696/ubuntu-duplicates-display-for-each-graphics-card-fresh-install) detailing this issue; it presents much of the same information in this bug report, along with several images.

I have also discovered a similar thread from three years ago (https://askubuntu.com/questions/582574/my-macbook-has-two-built-in-displays) suggesting that I am not the only Macbook user to suffer from this issue. The user in said thread worked around this issue by powering off his iGPU. I would like to set up graphics switching in the future, so this is not an option for me. In any case, I have tested his "solution" and it DOES NOT work on my machine (I also don't have a /sys/kernel/debug/vgaswitcheroo folder like he apparently does)

SYSTEM INFORMATION
====================

OS Version: Ubuntu (64-bit) 18.04.1
Kernel: 4.15.0-43-generic

GRAPHICS CARD INFORMATION
==========================
$ lshw -c video
*-display
   description: VGA compatible controller
   product: GK107M [GeForce GT 650M Mac Edition]
   vendor: NVIDIA Corporation
   physical id: 0
   bus info: pci@0000:01:00.0
   version: a1
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
   configuration: driver=nouveau latency=0
   resources: irq:45 memory:c0000000-c0ffffff memory:90000000-9fffffff memory:a0000000-a1ffffff ioport:2000(size=128) memory:c1000000-c107ffff

*-display
   description: VGA compatible controller
   product: 3rd Gen Core processor Graphics Controller
   vendor: Intel Corporation
   physical id: 2
   bus info: pci@0000:00:02.0
   version: 09
   width: 64 bits
   clock: 33MHz
   capabilities: msi pm vga_controller bus_master cap_list
   configuration: driver=i915 latency=0
   resources: irq:47 memory:c1400000-c17fffff memory:b0000000-bfffffff ioport:3000(size=64)

MORE GRAPHICS CARD INFORMATION
==============================
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GK107M [GeForce GT 650M Mac Edition] (rev a1)

DISPLAY CONFIGURATION INFO (1)
==============================
NOTE: In this diagnostic, I have chosen the "Single Display" option via the System Settings app. Only one of the two "built-in displays" is actually usable, selecting the other just gives me a black screen until my changes are auto-reverted

$ xrandr - q
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 16384 x 16384
LVDS-1 connected primary 1440x900+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
  1440x900 59.90*+
  1152x864 59.97
  1024x768 59.95
  800x600 59.96
  640x480 59.94
  720x400 59.97
  640x400 59.96
  640x350 59.84
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
LVDS-1-2 connected (normal left inverted right x axis y axis)
  1440x900 59.90 + 59.89
  1400x900 59.96 59.88
  1440x810 60.00 59.97
  1368x768 59.88 59.85
  1360x768 59.80 59.96
  1280x800 59.99 59.97 59.81 59.91
  1152x864 60.00
  1280x720 60.00 59.99 59.86 59.74
  1024x768 60.04 60.00
  960x720 60.00
  928x696 60.05
  896x672 60.01
  1024x576 59.95 59.96 59.90 59.82
  960x600 59.93 60.00
  960x540 59.96 59.99 59.63 59.82
  800x600 60.00 60.32 56.25
  840x525 60.01 59.88
  864x486 59.92 59.57
  800x512 60.17
  700x525 59.98
  800x450 59.95 59.82
  640x512 60.02
  720x450 59.89
  700x450 59.96 59.88
  640x480 60.00 59.94
  720x405 59.51 58.99
  684x384 59.88 59.85
  680x384 59.80 59.96
  640x400 59.88 59.98
  576x432 60.06
  640x360 59.86 59.83 59.84 59.32
  512x384 60.00
  512x288 60.00 59.92
  480x270 59.63 59.82
  400x300 60.32 56.34
  432x243 59.92 59.57
  320x240 60.05
  360x202 59.51 59.13
  320x180 59.84 59.32
VGA-1-1 disconnected (normal left inverted right x axis y axis)
  1440x900 (0x45) 88.750MHz -HSync -VSync
        h: width 1440 start 1488 end 1520 total 1600 skew 0 clock 55.47KHz
        v: height 900 start 903 end 909 total 926 clock 59.90Hz

DISPLAY CONFIGURATION INFO (2)
==============================
This output is generated while "both displays" are in use via the "Join Displays" option in System Settings

$ xrandr -q
    Screen 0: minimum 320 x 200, current 1440 x 900, maximum 16384 x 16384
LVDS-1 connected primary 1440x900+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
  1440x900 59.90*+
  1152x864 59.97
  1024x768 59.95
  800x600 59.96
  640x480 59.94
  720x400 59.97
  640x400 59.96
  640x350 59.84
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
LVDS-1-2 connected (normal left inverted right x axis y axis)
  1440x900 59.90 + 59.89
  1400x900 59.96 59.88
  1440x810 60.00 59.97
  1368x768 59.88 59.85
  1360x768 59.80 59.96
  1280x800 59.99 59.97 59.81 59.91
  1152x864 60.00
  1280x720 60.00 59.99 59.86 59.74
  1024x768 60.04 60.00
  960x720 60.00
  928x696 60.05
  896x672 60.01
  1024x576 59.95 59.96 59.90 59.82
  960x600 59.93 60.00
  960x540 59.96 59.99 59.63 59.82
  800x600 60.00 60.32 56.25
  840x525 60.01 59.88
  864x486 59.92 59.57
  800x512 60.17
  700x525 59.98
  800x450 59.95 59.82
  640x512 60.02
  720x450 59.89
  700x450 59.96 59.88
  640x480 60.00 59.94
  720x405 59.51 58.99
  684x384 59.88 59.85
  680x384 59.80 59.96
  640x400 59.88 59.98
  576x432 60.06
  640x360 59.86 59.83 59.84 59.32
  512x384 60.00
  512x288 60.00 59.92
  480x270 59.63 59.82
  400x300 60.32 56.34
  432x243 59.92 59.57
  320x240 60.05
  360x202 59.51 59.13
  320x180 59.84 59.32
VGA-1-1 disconnected (normal left inverted right x axis y axis)
  1440x900 (0x45) 88.750MHz -HSync -VSync
        h: width 1440 start 1488 end 1520 total 1600 skew 0 clock 55.47KHz
        v: height 900 start 903 end 909 total 926 clock 59.90Hz

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: xorg 1:7.7+19ubuntu7.1
ProcVersionSignature: Ubuntu 4.15.0-43.46-generic 4.15.18
Uname: Linux 4.15.0-43-generic x86_64
NonfreeKernelModules: wl
ApportVersion: 2.20.9-0ubuntu7.5
Architecture: amd64
BootLog: Error: [Errno 13] Permission denied: '/var/log/boot.log'
CompositorRunning: None
CurrentDesktop: ubuntu:GNOME
Date: Sat Dec 22 13:15:25 2018
DistUpgraded: Fresh install
DistroCodename: bionic
DistroVariant: ubuntu
DkmsStatus:
 bcmwl, 6.30.223.271+bdcom, 4.15.0-42-generic, x86_64: installed
 bcmwl, 6.30.223.271+bdcom, 4.15.0-43-generic, x86_64: installed
ExtraDebuggingInterest: Yes
GraphicsCard:
 Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09) (prog-if 00 [VGA controller])
   Subsystem: Apple Inc. 3rd Gen Core processor Graphics Controller [106b:00fb]
 NVIDIA Corporation GK107M [GeForce GT 650M Mac Edition] [10de:0fd5] (rev a1) (prog-if 00 [VGA controller])
   Subsystem: Apple Inc. GK107M [GeForce GT 650M Mac Edition] [106b:00fc]
InstallationDate: Installed on 2018-12-18 (3 days ago)
InstallationMedia: Ubuntu 18.04.1 LTS "Bionic Beaver" - Release amd64 (20180725)
MachineType: Apple Inc. MacBookPro9,1
ProcEnviron:
 TERM=dumb
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.15.0-43-generic root=UUID=c7496e11-8295-487e-9317-5810c0af57ad ro quiet splash nvidia-drm.modeset=1 vt.handoff=1
SourcePackage: xorg
Symptom: display
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 08/08/2012
dmi.bios.vendor: Apple Inc.
dmi.bios.version: MBP91.88Z.00D3.B08.1208081132
dmi.board.asset.tag: Base Board Asset Tag#
dmi.board.name: Mac-4B7AC7E43945597E
dmi.board.vendor: Apple Inc.
dmi.board.version: MacBookPro9,1
dmi.chassis.type: 10
dmi.chassis.vendor: Apple Inc.
dmi.chassis.version: Mac-4B7AC7E43945597E
dmi.modalias: dmi:bvnAppleInc.:bvrMBP91.88Z.00D3.B08.1208081132:bd08/08/2012:svnAppleInc.:pnMacBookPro9,1:pvr1.0:rvnAppleInc.:rnMac-4B7AC7E43945597E:rvrMacBookPro9,1:cvnAppleInc.:ct10:cvrMac-4B7AC7E43945597E:
dmi.product.family: MacBook Pro
dmi.product.name: MacBookPro9,1
dmi.product.version: 1.0
dmi.sys.vendor: Apple Inc.
version.compiz: compiz N/A
version.libdrm2: libdrm2 2.4.91-2
version.libgl1-mesa-dri: libgl1-mesa-dri 18.0.5-0ubuntu0~18.04.1
version.libgl1-mesa-glx: libgl1-mesa-glx 18.0.5-0ubuntu0~18.04.1
version.xserver-xorg-core: xserver-xorg-core 2:1.19.6-1ubuntu4.2
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev N/A
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:18.0.1-1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.99.917+git20171229-1
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:1.0.15-2

Revision history for this message
Anish Moorthy (anlsh) wrote :
Revision history for this message
Anish Moorthy (anlsh) wrote :

I should specify, the specific model of Macbook Pro which I am using is the mid-2012 15" version (version 10,1)

affects: xorg (Ubuntu) → xorg-server (Ubuntu)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Your XorgLog seems to show that you do have two different GPU drivers both connected to the same physical screen (or two identical screens):

[ 15.105] (II) NOUVEAU(0): EDID (in hex):
[ 15.105] (II) NOUVEAU(0): 00ffffffffffff000610a39c00000000
[ 15.105] (II) NOUVEAU(0): 00130103802115780af595a3554f9c26
[ 15.105] (II) NOUVEAU(0): 0f505400000001010101010101010101
[ 15.105] (II) NOUVEAU(0): 010101010101ab22a0a050841a303020
[ 15.105] (II) NOUVEAU(0): 36004bcf100000180000000100061030
[ 15.105] (II) NOUVEAU(0): 00000000000000000a20000000fe004c
[ 15.105] (II) NOUVEAU(0): 503135345750342d544c4131000000fe
[ 15.105] (II) NOUVEAU(0): 00436f6c6f72204c43440a2020200000

15.464] (II) modeset(G0): EDID (in hex):
[ 15.464] (II) modeset(G0): 00ffffffffffff000610a39c00000000
[ 15.464] (II) modeset(G0): 00130103802115780af595a3554f9c26
[ 15.464] (II) modeset(G0): 0f505400000001010101010101010101
[ 15.464] (II) modeset(G0): 010101010101ab22a0a050841a303020
[ 15.464] (II) modeset(G0): 36004bcf100000180000000100061030
[ 15.464] (II) modeset(G0): 00000000000000000a20000000fe004c
[ 15.464] (II) modeset(G0): 503135345750342d544c4131000000fe
[ 15.464] (II) modeset(G0): 00436f6c6f72204c43440a2020200000

Technically this is correct if the hardware has both GPUs wired to the screen. The system can't know in advance which GPU you would prefer to use unless one has been explicitly disabled already. So I guess it is correct to show the same LCD connection to each GPU.

Certainly in software we should be able to detect this and better inform the user that it's only one screen. Ideally that would be via unique serial numbers but Apple has failed to provide a serial number:

[ 15.464] (II) modeset(G0): Manufacturer: APP Model: 9ca3 Serial#: 0

As a next option we could guess that most laptops will only ever have one LVDS-connected display, but that's not strictly true for multi-screen laptops. They're rare, but do exist.

So I guess the best option we have is to add quirks, which means hardcoding rules for known weird hardware like this. It's possible, but probably not worth doing. So I think the right answer here is to say "Won't fix". The software is indeed correctly showing that you have two different GPUs connected to /a/ screen.

Changed in xorg-server (Ubuntu):
importance: Undecided → Low
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Does the problem also occur in Wayland sessions?

Changed in xorg-server (Ubuntu):
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for xorg-server (Ubuntu) because there has been no activity for 60 days.]

Changed in xorg-server (Ubuntu):
status: Incomplete → Expired
Changed in xorg-server (Ubuntu):
status: Expired → New
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.