MacBookPro4,1上的Ubuntu 14.10 nVidia 8600m – 无法加载二进制驱动程序

我试图延长我珍藏的A1260 MacBook Pro的使用寿命(包括USB3.0,NTFS,iTunes,App Store等等)的无限问题后,我将从MacOS切换到Xubuntu。 机器足够强大,我在旧机器上运行Ubuntu,所以我真的很想让它运行起来。
我有它主要工作(我现在正在打字)。 但是,无论我尝试什么,nVidia图形都无法与二进制驱动程序一起使用。 每当我尝试加载它们时,X都会失败并在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 

我的理解是,这是由于EFI架构不允许驱动程序从卡中加载固件,或者是那种效果。 我现在正在Nouveau工作,但由于我想玩一些游戏,我真的想让nVidia驱动程序正常工作。 我试过了nVidia的包装331和最新的自包含; 既没有奏效。

我已经安装了rEFInd,但这没有帮助; 实际上,只有在我选择EFI选项时它才会启动。 选择第二个常规选项只会在rEFInd窗口后立即挂起。 Xubuntu是这台机器上唯一的操作系统,我用一个msdos分区表格式化了磁盘。 它还启用了FDE。

我试过一些内核标志; nomodeset至关重要。 我也尝试过没有帮助的nopat

我的基本理解是BIOS兼容性并未在MBP硬件上发挥作用。 由于Xubuntu是其中唯一的操作系统,因此我可以重新配置系统直到它工作,如果这是可能的话; 一些搜索显示这是一个非常棘手的问题,nVidia已经洗手了。 红帽已经关闭了一张票,因为它不会修复。

我对此感到茫然。 有没有办法让这个东西工作?

  • 硬件:Core 2 Duo T9500 2.6GHz,4GB RAM,nVidia Geforce 8600M GT 512MB
  • 软件:Xubuntu 14.10 x86_64

我发现有一种方法可以做到 – 在找到线索之后: 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在安装过程中不会询问您是否需要EFI或BIOS模式。 它将使用您用于引导安装程序的相同模式。 一旦你在这种模式下安装Ubuntu,就很难改变。 实际上,两种模式都有自己的专用引导加载程序,它们的工作方式不同(用于BIOS的软件包“grub-pc”和用于EFI的软件包“grub-efi-amd64”)。

如何在BIOS模式下启动。 因此,您必须确保安装程序以正确的模式启动。 对我来说,这可以通过从CD / DVD启动来实现。

至少在我的启动加载程序中,似乎无法从非EFI USB记忆棒启动。 我可以使用USB记忆棒启动,主要是使用实时系统来尝试修复我的安装,但这些都是EFI USB记忆棒,然后在EFI模式下启动。

解决方案是刻录CD / DVD而不是使用USB记忆棒。 通过这种方式,确实可以强制Mac固件以BIOS模式启动,而Ubuntu将从中获取它应该安装GRUB的BIOS版本。 一切都从那里流过。 但是,根据我的理解,如果没有完全重新安装,则无法执行此操作。

我希望这有助于其他人。

对于像我一样在搜索后到达这里的人(这是最终让我回到我的Nvidia二进制驱动程序的结果)……

较老的答案说“……没有完全重新安装就无法做到这一点。” 但无论如何我想试一试,事实certificate这很容易。

可以在重新安装的情况下更改回BIOS Grub。

我使用以下步骤从我的旧Macbook Pro 4,1(A1261,17“版本)上的EFI Grub切换到BIOS Grub:

  • 安装grub-pc
  • 删除grub-efi
  • 我在这里至少重启了一次因为我第二天回来了
  • parted ,删除EFI分区
  • update-grub
  • grub-install /dev/sda将Grub安装到MBR
  • (我不知道前两个中的一个是多余的。我做了两个因为我有点甩尾)
  • 重启
  • 确认没有/sys/firmware/efi
  • 安装Nvidia二进制驱动程序(我在这台机器上成功使用了304版)

后来,我记得也许我应该在分区2上设置’boot’标志(这是第一个,现在我已经杀掉了EFI分区1)。 这是启用/ boot文件系统的分区。 没有引导标志设置它工作正常,但无论如何我设置它。

这是一个从拇指驱动器安装的相当干净的Linux Mint 17.2。 Mint 17.2基于Ubuntu 14.04。

Linux是这台机器上唯一的操作系统。 没有OSX,没有rEFIt / rEFInd。 只是一个简单的薄荷17.2安装。

通常的“先备份!” 建议适用。 :d

我希望这可以帮助别人。

我通过从rEFInd链式加载GRUB2解决了同样的问题:

  • 删除grub-efi并安装grub-pcgdisk

  • 使用gdisk ,创建一个混合MBR(“恢复和转换选项” – >“make h ybrid mbr”)。 当系统提示您设置Linux分区的可引导标志时,请选择Y

  • 将GRUB2安装到混合MBR中: grub-install --force /dev/sdX

现在重新启动,并在rEFInd中选择“从整个磁盘卷引导Linux(旧版)”。