MacBookPro4,1 nVidia 8600m 上的 Ubuntu 14.10 - 無法載入二進位驅動程式

MacBookPro4,1 nVidia 8600m 上的 Ubuntu 14.10 - 無法載入二進位驅動程式

在嘗試延長我心愛的 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 已經不再理會它了。紅帽已關閉了一個票證,因為「無法修復」。

我對這個不知所措。有什麼辦法讓這個東西發揮作用嗎?

  • 硬體:Core 2 Duo T9500 2.6GHz、4GB RAM、nVidia Geforce 8600M GT 512MB
  • 軟體:Xubuntu 14.10 x86_64

答案1

我發現有一種方法可以做到這一點 - 在這裡找到線索後: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 將從中得知它應該安裝 BIOS 版本的 GRUB。一切都從那裡流動。但是,根據我的理解,如果不完全重新安裝,就不可能做到這一點。

我希望這對其他人有幫助。

答案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 檔案系統開啟的分割區。效果很好沒有啟動標誌已設置,但我還是設置了它。

這是在從 USB 安裝的相當乾淨的 Linux Mint 17.2 上進行的。 Mint 17.2 基於 Ubuntu 14.04。

Linux 是這台機器上唯一的作業系統。沒有 OSX,沒有 rEFIt/rEFInd。只是一個簡單的 Mint 17.2 安裝。

通常的“先備份!”建議適用。 :D

我希望這可以幫助別人。

答案3

我透過從 rEFInd 鍊式載入 GRUB2 解決了同樣的問題:

  • 刪除grub-efi並安裝grub-pcgdisk

  • 使用gdisk,創建一個混合 MBR(“r生態與轉型選項」->「製作Hybrid mbr」)。當提示設定 Linux 分割區的可開機標誌時,請選擇Y

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

現在重新啟動,並在 rEFInd 中選擇「從整個磁碟區啟動 Linux(舊版)」。

相關內容