为了延长我珍爱的 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 驱动程序正常工作。我尝试了 331 套装和 nVidia 最新的独立驱动程序;都没有用。
我已经安装了 rEFInd,但这没有帮助;事实上,只有选择 EFI 选项,它才会启动。选择第二个常规选项后,rEFInd 窗口会立即挂起。Xubuntu 是这台机器上唯一的操作系统,我用 msdos 分区表格式化了磁盘。它还启用了 FDE。
我尝试了一些内核标志;nomodeset
这很重要。我也尝试过,nopat
但没有帮助。
我的基本理解是 BIOS 兼容性在 MBP 硬件上不起作用。由于 Xubuntu 是其上唯一的操作系统,因此我可以毫无问题地重新配置系统,直到它正常工作(如果可能的话);一些搜索表明这是一个非常棘手的问题,nVidia 已经放弃处理了。Red Hat 已关闭了一张票,因为无法修复。
我对此感到困惑。有什么办法可以让这个东西工作吗?
- 硬件:Core 2 Duo T9500 2.6GHz、4GB RAM、nVidia Geforce 8600M GT 512MB
- 软件:Xubuntu 14.10 x86_64
答案1
我发现有一种方法可以做到这一点——在这里找到线索之后:http://korrekt.org/page/注意:如何在Macbook7上安装Ubuntu14.04,1#这台Macbook上的EFI问题是什么.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 版本。一切都从那里开始。但是,根据我的理解,如果不完全重新安装,就无法做到这一点。
我希望这对其他人有帮助。
答案2
对于像我一样经过搜索来到这里的人(这个结果最终让我找回了我的 Nvidia 二进制驱动程序)...
较早的答案是“...如果不完全重新安装就不可能做到这一点。” 但无论如何我都想尝试一下,结果发现这相当容易。
它是可以改回 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(这是第一个分区,现在我已经删除了 EFI 分区 1)上设置“启动”标志。这是启用了 /boot 文件系统的分区。它工作正常没有启动标志已设置,但我还是设置了它。
这是从 U 盘安装的相当干净的 Linux Mint 17.2。Mint 17.2 基于 Ubuntu 14.04。
Linux 是这台机器上唯一的操作系统。没有 OSX,没有 rEFIt/rEFInd。只有裸机 Mint 17.2 安装。
通常的“先备份!”建议适用。:D
我希望这可以帮助别人。
答案3
我通过从 rEFInd 链式加载 GRUB2 解决了同样的问题:
删除
grub-efi
并安装grub-pc
和gdisk
。使用
gdisk
,创建混合 MBR(“r恢复和转换选项”->“makeHybrid mbr”)。当提示您设置 Linux 分区的可启动标志时,选择Y
。将 GRUB2 安装到混合 MBR 中:
grub-install --force /dev/sdX
现在重新启动,并在 rEFInd 中选择“从整个磁盘卷启动 Linux(旧版)”。