Error loading nvidia kernel module with MacBookPro3,1

I have a MacBookPro3,1 with nVidia GeForce 8600M GT. The information below has been taken from Ubunto 15.10 (20150826 snapshot) with the following kernel:
Linux wedge 4.1.0-3-generic #3-Ubuntu SMP Tue Jul 28 12:25:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

The same behavior is observed on 3.19 kernels (Ubuntu 14.04.3 and 15.04). I did not try older kernels.

lspci shows:

01:00.0 VGA compatible controller: NVIDIA Corporation G84M [GeForce 8600M GT] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Apple Inc. Device 00a0
Physical Slot: 1
Flags: fast devsel
Memory at d2000000 (32-bit, non-prefetchable)
Memory at c0000000 (64-bit, prefetchable)
Memory at d0000000 (64-bit, non-prefetchable)
I/O ports at 5000 [disabled]
Expansion ROM at d3000000 [disabled]
Capabilities:

I have blacklisted the nouveau kernel module; it is not loaded.

When the nvidia kernel module loads, the following are logged by the kernel:

Aug 27 14:54:56 wedge kernel: [ 484.314042] [drm] Initialized drm 1.1.0 20060810
Aug 27 14:54:56 wedge kernel: [ 484.330387] nvidia: module license ‘NVIDIA’ taints kernel.
Aug 27 14:54:56 wedge kernel: [ 484.330395] Disabling lock debugging due to kernel taint
Aug 27 14:54:56 wedge kernel: [ 484.347989] nvidia: module verification failed: signature and/or required key missing - tainting kernel
Aug 27 14:54:56 wedge kernel: [ 484.362170] nvidia 0000:01:00.0: enabling device (0002 -> 0003)
Aug 27 14:54:56 wedge kernel: [ 484.362315] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=io+mem
Aug 27 14:54:56 wedge kernel: [ 484.364962] [drm] Initialized nvidia-drm 0.0.0 20150116 for 0000:01:00.0 on minor 0
Aug 27 14:54:56 wedge kernel: [ 484.364987] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 340.76 Thu Jan 22 12:11:08 PST 2015
Aug 27 14:54:56 wedge kernel: [ 484.377784] NVRM: failed to copy vbios to system memory.
Aug 27 14:54:56 wedge kernel: [ 484.379326] NVRM: RmInitAdapter failed! (0x30:0xffffffff:747)
Aug 27 14:54:56 wedge kernel: [ 484.379356] NVRM: rm_init_adapter failed for device bearing minor number 0
Aug 27 14:54:56 wedge kernel: [ 484.379439] NVRM: nvidia_frontend_open: minor 0, module->open() failed, error -5

X11 fails to start as a fallout of that, logging:

[ 475.109] (II) NVIDIA(0): Creating default Display subsection in Screen section
“Default Screen Section” for depth/fbbpp 24/32
[ 475.109] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
[ 475.109] (==) NVIDIA(0): RGB weight 888
[ 475.109] (==) NVIDIA(0): Default visual is TrueColor
[ 475.110] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[ 475.110] (**) NVIDIA(0): Enabling 2D acceleration
[ 475.113] (EE) NVIDIA(0): Failed to initialize the NVIDIA GPU at PCI:1:0:0. Please
[ 475.113] (EE) NVIDIA(0): check your system’s kernel log for additional error
[ 475.113] (EE) NVIDIA(0): messages and refer to Chapter 8: Common Problems in the
[ 475.113] (EE) NVIDIA(0): README for additional information.
[ 475.113] (EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device!
[ 475.113] (EE) NVIDIA(0): Failing initialization of X screen 0


Has anyone had luck getting a configuration like this (or similar) working?

nvidia-bug-report.log is at http://pastebin.com/AYztaXLG

From additional reading, my understanding is that this is a known limitation of booting in pure EFI mode. It would be nice if this limitation could be addressed.

I was able to boot in BIOS emulation mode in order to save the vbios.rom to /lib/firmware (by copying from /sys/kernel/debug/dri/0/vbios.rom). This allows me to use the nouveau driver with:

sudo modprobe nouveau config=NvBios=vbios.rom,NvForcePost=1

I don’t see any options to the nvidia kernel to do something similar. Am I missing something? How can I point the nvidia module to this firmware, so it can get it off the filesystem instead of failing?

This week I encountered the same problem as the OP on the same MacBookPro3,1 hardware and EFI version under Linux Mint 17.3 MATE (Linux 3.19 and 4.2 lowlatency) and Linux Mint 18.2 (Linux 4.8 and 4.10) when trying to install nVidia 340.102.

BTW nouveau worked in all cases after the GRUB was amended with nomodeset as follows:

(From the comments)

foobaron

[i]“Just wanted to report one tip that was a life-saver for me on installing on Macbookpro 8,3 (17”, 2011):

  • attempting to boot 17.1 64 bit MATE installer from USB key would just hang when it attempted to activate radeon drmfb.

  • key to getting past this was to add the “nomodeset” option as follows: on the GRUB menu, type ‘e’ to edit the boot command; append " nomodeset" to the end of the line that starts “linux …”; type F10 key to boot. Then the installer boots and works fine! This was also necessary when trying to boot this installer on macbookpro 4,1 (15").

  • then I installed mint 17.1 as usual. When the install complete dialog came up, following the instructions above I did not reboot, but instead fired up Terminal to install efibootmgr, run it to check that all was correct, and finally shut down, removed the USB key.

  • on boot I again needed to add nomodeset. I held the F6 key on powerup, and when I got the GRUB menu, again followed the step above to add nomodeset to the boot command. Booted up great.

  • to add that flag permanently, I followed these instructions (http://ubuntuforums.org/showthread.php?t=1613132): edited grub settings by typing “gksudo pluma /etc/default/grub”; changed the GRUB_CMDLINE_LINUX_DEFAULT setting to be: GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash nomodeset”; saved and exited from pluma editor; ran command “sudo update-grub”. Now my system boots fine.

The one problem I’m still experiencing is that the system cannot suspend: attempting to do so makes the system hang with blank screen and blinking cursor.

By the way, I also tried the 17.2 64 bit MATE installer the same way, but it hangs on something else, and was not rescued by the nomodeset option."[/i]

Linux Mint 17 on the MacBook Pro - Linux Mint Community
https://community.linuxmint.com/tutorial/view/1643