3

I am switching from MacOS to Xubuntu after endless issues trying to extend the useful life of my treasured A1260 MacBook Pro (issues including USB3.0, NTFS, iTunes, App Store, quite a few). The machine is powerful enough and I have run Ubuntu on older machines, so I am really keen to get it working.
I have it mostly working (I'm typing this on it now). However, the nVidia graphics will not work with the binary drivers, no matter what I try. Whenever I try to load them, X fails and generates the following in kern.log:

Oct 26 18:53:15 Pegasus kernel: [   49.229756] nvidia 0000:01:00.0: irq 51 for MSI/MSI-X
Oct 26 18:53:15 Pegasus kernel: [   49.232512] NVRM: failed to copy vbios to system memory.
Oct 26 18:53:15 Pegasus kernel: [   49.232745] NVRM: RmInitAdapter failed! (0x30:0xffffffff:747)
Oct 26 18:53:15 Pegasus kernel: [   49.232752] NVRM: rm_init_adapter failed for device bearing minor number 0
Oct 26 18:53:15 Pegasus kernel: [   49.232777] NVRM: nvidia_frontend_open: minor 0, module->open() failed, error -5
Oct 26 18:53:18 Pegasus kernel: [   52.620786] nvidia 0000:01:00.0: irq 51 for MSI/MSI-X
Oct 26 18:53:18 Pegasus kernel: [   52.623552] NVRM: failed to copy vbios to system memory.
Oct 26 18:53:18 Pegasus kernel: [   52.623893] NVRM: RmInitAdapter failed! (0x30:0xffffffff:747)
Oct 26 18:53:18 Pegasus kernel: [   52.623901] NVRM: rm_init_adapter failed for device bearing minor number 0
Oct 26 18:53:18 Pegasus kernel: [   52.624534] NVRM: nvidia_frontend_open: minor 0, module->open() failed, error -5
Oct 26 18:53:24 Pegasus kernel: [   58.702055] nvidia 0000:01:00.0: irq 51 for MSI/MSI-X
Oct 26 18:53:24 Pegasus kernel: [   58.704792] NVRM: failed to copy vbios to system memory.
Oct 26 18:53:24 Pegasus kernel: [   58.705020] NVRM: RmInitAdapter failed! (0x30:0xffffffff:747)
Oct 26 18:53:24 Pegasus kernel: [   58.705028] NVRM: rm_init_adapter failed for device bearing minor number 0
Oct 26 18:53:24 Pegasus kernel: [   58.705055] NVRM: nvidia_frontend_open: minor 0, module->open() failed, error -5
Oct 26 18:54:06 Pegasus kernel: [  100.268217] nvidia 0000:01:00.0: irq 51 for MSI/MSI-X
Oct 26 18:54:06 Pegasus kernel: [  100.270803] NVRM: failed to copy vbios to system memory.
Oct 26 18:54:06 Pegasus kernel: [  100.271017] NVRM: RmInitAdapter failed! (0x30:0xffffffff:747)
Oct 26 18:54:06 Pegasus kernel: [  100.271023] NVRM: rm_init_adapter failed for device bearing minor number 0
Oct 26 18:54:06 Pegasus kernel: [  100.271042] NVRM: nvidia_frontend_open: minor 0, module->open() failed, error -5
Oct 26 18:54:39 Pegasus kernel: [  133.380791] [drm] Module unloaded

My understanding is that this is due to the EFI architecture not allowing the drivers to load the firmware out of the card, or something to that effect. I have it working on Nouveau right now, but as I have some games I want to play, I really want to get the nVidia drivers working. I have tried the packaged 331 and the latest self-contained from nVidia; neither worked.

I have installed rEFInd but that has not helped; in fact, it will only boot if I select the EFI option. Selecting the second, conventional option just hangs immediately after the rEFInd window. Xubuntu is the only OS on this machine, and I formatted the disk with an msdos partition table. It also has FDE enabled.

I have tried some kernel flags; nomodeset is vital. I have also tried nopat which didn't help.

My basic understanding is that BIOS Compatibility is not kicking in on the MBP hardware. As Xubuntu is the only OS on it, I have no issues reconfiguring the system until it works, if this is even possible; some searching reveals this is a very tricky issue and nVidia have washed their hands of it. Red Hat have closed a ticket as WON'T FIX.

I am at a loss with this one. Is there any way to get this thing to work?

  • Hardware: Core 2 Duo T9500 2.6GHz, 4GB RAM, nVidia Geforce 8600M GT 512MB
  • Software: Xubuntu 14.10 x86_64
MadMike
  • 4,244
  • 8
  • 28
  • 50

3 Answers3

2

I discovered that there is a way to do it - after finding a clue here: http://korrekt.org/page/Note:How_to_install_%28K%29Ubuntu_14.04_on_Macbook_7,1#What.27s_the_problem_with_EFI_on_this_Macbook.3F:

(K)ubuntu will not ask if you want EFI or BIOS mode during installation. It will just use the same mode that you have used to boot the installer. Once you installed Ubuntu in this mode, it will be hard to change. In fact, both modes have their own dedicated boot loaders that work differently (package "grub-pc" for BIOS and package "grub-efi-amd64" for EFI).

How to boot in BIOS mode. Thus, you must make sure that your installer boots in the right mode. For me, this worked by booting from a CD/DVD.

...

At least in my boot loader, it seems to be impossible to boot from a non-EFI USB stick. I could use USB sticks to boot, mainly to use a live system to try and fix my installation, but these were always EFI USB sticks that were then booted in EFI mode.

The solution is to burn a CD/DVD instead of using a USB stick. In this way it is indeed possible to force the Mac firmware to boot in BIOS mode, and Ubuntu will take from this that it should install the BIOS version of GRUB. Everything flows from there. However, based on my understanding, it is not possible to do this without a full reinstall.

I hope this helps someone else.

2

For people who arrive here after a search as I did (this was the result which ultimately got me back my Nvidia binary driver)...

The older answer says "...not possible to do this without a full reinstall." But I wanted to give it a go anyway, and it turned out to be fairly easy.

It is possible to change back to a BIOS Grub without a reinstall.

I switched from an EFI Grub to BIOS Grub on my good old Macbook Pro 4,1 ( A1261, 17" version) with the following steps:

  • install the grub-pc package
  • remove the grub-efi package
  • I rebooted at least once here because I came back to it the next day
  • with parted, remove the EFI partition
  • update-grub
  • grub-install /dev/sda to install Grub to the MBR
  • (I don't know if one of the previous two is redundant. I did both because I was flailing a bit)
  • reboot
  • confirm the absence of /sys/firmware/efi
  • install Nvidia binary driver (I used version 304 successfully on this machine)

Later, I remembered maybe I should set the 'boot' flag on partition 2 (which is the first one, now that I've killed off the EFI partition 1). This is the partition with the /boot filesystem on. It worked fine without the boot flag set, but I set it anyway.

This was on a fairly clean Linux Mint 17.2 installed from a thumb drive. Mint 17.2 is based on Ubuntu 14.04.

Linux is the only OS on this machine. No OSX, No rEFIt/rEFInd. Just a bare Mint 17.2 installation.

The usual "Back it up first!" advice applies. :D

I hope this helps someone.

Matt
  • 21
  • thanks for your instructions. I'm unable to verify whether or not they work; I went with the DVD option and was able to get the MBP booting in BIOS mode. I too switched to Mint, and with the nVidia drivers installed my machine was running smoothly for several months before suffering a hardware failure. Swear EFI causes more problems than it solves! – Gargravarr Dec 16 '15 at 17:29
0

I worked around the same issues by chainloading GRUB2 from rEFInd:

  • Remove grub-efi and install grub-pc and gdisk.

  • Using gdisk, create a hybrid MBR ("recovery and transformation options" -> "make hybrid mbr"). When prompted to set the bootable flag of your Linux partition, select Y.

  • Install GRUB2 into the hybrid MBR: grub-install --force /dev/sdX

Now reboot, and select "Boot Linux (legacy) from whole disk volume" in rEFInd.

jclehner
  • 101