410, 396, 390, & 340 all boot to black screen on GeForce GT 650M Mac Edition

Seemingly across versions (I tried 410, 396, 390, and 340 from the graphics-drivers PPA), installing the driver leads to a black screen at boot.
nvidia-bug-report.log: https://paste.ubuntu.com/p/Yb3t7MPyW3/

  • A note on how I ran the script (because I’m not sure I collected the data right): Booting the newer kernel leads to a black screen, and the newer kernel’s recovery mode root shell prompt freezes after these lines (pic: https://imgur.com/a/2emfPOz)…so I ran the script from the older kernel boot option. And, since I can boot and login to that older one but the screen goes black when I run ‘startx – -logverbose 6’, I ran that command and the script from the older kernel’s recovery mode root shell prompt. And by the way, running ‘startx – -logverbose 6’ showed this readout (pic: https://imgur.com/a/68WN6ca).

Terminal readout from when I install 410: https://paste.ubuntu.com/p/rd2DSV8YPW/

Also of interest: The first time I tried installing 410 from the PPA, it booted fine. But I couldn’t control the backlight using any solution I found in forums (see this post for what I tried: https://ubuntuforums.org/showthread.php?t=2405749), so I reinstalled. Instead of simply ‘sudo apt install --reinstall nvidia-driver-410’, I’ve actually been doing something else at the suggestion of another thread:
‘dpkg -l | grep -i nvidia’ and ‘sudo apt purge’ ing everything that shows up, and then autoremove;
‘sudo apt install reinstall xorg xserver-xorg-core’;
and then ‘sudo apt install nvidia-…’ for every version I tried.

Other things I’m wondering about:

  • Does this problem have to do with the way I purged nvidia when trying to reinstall?
  • Am I supposed to have “CUDA”? Do I need that for nvidia drivers to work?
  • Readout when I try to install 304 says I have unmet dependencies for xorg-video-abi-* and xserver-xorg-core.

More details about my system:

lspci -vnn | grep -i vga && sudo lshw -C video

00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107M [GeForce GT 650M Mac Edition] [10de:0fd5] (rev a1) (prog-if 00 [VGA controller])
  *-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:48 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:50 memory:c1400000-c17fffff memory:b0000000-bfffffff ioport:3000(size=64)

uname --all && lsb_release --all

Linux benny-MacBookPro 4.15.0-38-generic #41-Ubuntu SMP Wed Oct 10 10:59:38 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:    18.04
Codename:    bionic

Any help would be MUCH appreciated; I’ve been stuck on this for weeks and will happily accept any workaround, solution, or other version I should try. :) Thanks.

See if you can use this
https://github.com/0xbb/gpu-switch/blob/master/gpu-switch
to switch to the nvidia gpu.

  • Looking at the old logs from 2018-11-09, the driver worked fine, you just couldn’t see anything because the display is connected to the igpu.
  • You don’t need cuda for the graphics driver to work.
  • The 304 driver is EOL, doesn’t work on recent kernels/Xservers.

Thanks for replying. Not only does that script not solve my problem, it appears to have made my GPUs sad. When I run it with --dedicated and reboot, I freeze on a green screen. Since recovery mode’s root shell is functional I can run it again with --integrated and reboot, but now I see behavior I never saw before; the screen wipes down to load, graphics are really wonky, and all my icons and windows are super-tiny. Please let me know how to remedy this.

Also, how did you know which GPU was in use? The only way I know how to tell is using glxinfo and grepping OpenGL. Which, by the way, currently reads ‘vendor string: VMware, Inc.’ and ‘renderer string: llvmpipe (LLVM 6.0, 256 bits)’ after rebooting with --integrated. Do those lines signify that I’m using my Intel GPU now? I know that before, glxinfo’s output looked related to nvidia, so I assumed I was previously using the nvidia card (not my iGPU like you suggested), with nouveau.

You have to be aware that you’re not running this on a PC but on Apple hardware which has its own proprietary method of gpu switching. There are hacks and workarounds to make it work with Linux which don’t always succeed. The (more) proper way would be to boot into OS X (older version) and use gfxcardstatus to switch.

Thanks, could you please tell me:

  • How to undo the changes that gpu-switch.sh caused (see the above problems I described)
  • How you could tell which GPU I’m using, and how I can tell which GPU I’m using
  • Any other help on my original problem you can provide. I’m already very, very aware that I’m using Apple hardware. Lol

Just take a look at /var/log/Xorg.0.log and you’ll see which gpu and driver is being used by X, which does not mean that this is the gpu that is actually connected to the display by the mux. In your first log, the nvidia gpu was being used by X but since you didn’t see anything, the mux was most likely switched to the intel gpu. Talking about Apple’s proprietary method of gpu switching, problem is, there’s more than one, model specific.
To reset, try doing a PRAM reset.

If you want to check what is going on in the different cases, please provide more logs.