問題

問題

問題

我的問題是:是否可以透過 grub 配置停用 fglrx Linux 驅動程式或執行任何操作來抑制不跨硬體相容的功能(例如 3D 加速)?如果是這樣,這將如何完成?

具體來說,我在多台機器上使用的 SSD 上設定了我喜歡的軟體開發環境,其中只有一些機器具有獨立的 Radeon GPU,其他機器則具有 Intel 的 iGPU。在配備 Radeon GPU 的機器上,gmd 需要 fglrx 驅動程式才能順利運作(沒有它們,3D 加速尤其卡頓)。我需要能夠在 grub 中建立/選擇啟動選項,以允許我在使用 iGPU 的 Intel 裝置或具有 Radeon GPU 的 AMD 裝置上啟動。

我發現的有關修改 grub 啟動選單的所有資訊都已過時,因此我已向 SU 尋求澄清。

背景

我在我的 PC 上設定了雙啟動:一個 SSD 上安裝了 Windows 7,另一個 SSD 上安裝了 Ubuntu Gnome 14.04(我主要使用 Ubuntu 進行軟體開發)。我最近將我的電腦從幾個 Radeon HD 7700 升級到 AMD R9 280,此時 radeon 驅動程式停止了 3D 加速,導致一切卡頓。然後我切換到 fglrx,所有問題都消失了。在我桌面的電子縮影中一切都很好。

唯一的問題是,當我在辦公室、房屋和城市之間穿梭時,我會將這個 Ubuntu SSD 從一台機器轉移到另一台機器。並非所有機器都有 Radeon GPU,這可能會導致 fglrx 驅動程式出現問題。例如,就在今天,我走進辦公室,將 SSD 放入那裡提供的電腦中;它有一個英特爾CPU,沒有獨立的GPU。 Grub 會正常顯示我的啟動選項,但我嘗試啟動 Ubuntu(即使在「故障安全」圖形模式下)也會失敗。我很幸運有一個即時 USB 記憶棒,因此啟動了即時發行版,安裝/chroot 到 SSD,刪除/清除 fglrx,然後重新啟動。

這並不是真正的最佳解決方案。理想的解決方案是建立一個 grub 選單選項來啟動,而不使用特定於 fglrx 的 3D 加速。

一些更具體的訊息

root@toor:/$ grub-install --version
grub-install (GRUB) 2.02~beta2-9ubuntu1.3
root@toor:/$ uname -orvp
3.16.0-50-generic #67~14.04.1-Ubuntu SMP Fri Oct 2 22:07:51 UTC 2015 x86_64 GNU/Linux

安裝fglrx 驅動程式後,在Intel 機器上啟動會導致一個相當煩人的現象:螢幕上會出現綠色字體,上面寫著“正在啟動Web 伺服器apache...”,然後無論選擇哪個虛擬終端,都會不斷返回該字體。登入大約需要 5 分鐘,sudo reboot因為綠色文字的螢幕每隔 2-10 秒就會佔據一次(時間變化很大且不可預測)。按 ctrl+alt+del 有時不會導致電腦重新啟動,或有時只會延遲半分鐘左右才回應。然而,當它響應時,gdm 啟動畫面會在重新啟動之前短暫出現。

答案1

您應該使用無模式集範圍:

無模式集

最新的核心已將視訊模式設定移至核心。因此,當 X 伺服器啟動時,硬體特定時脈速率和暫存器的所有編程都發生在核心中,而不是在 X 驅動程式中。登入畫面的自由轉換。不幸的是,在某些卡上這無法正常工作,最終會出現黑屏。新增 nomodeset 參數指示核心不載入視訊驅動程式並使用 BIOS 模式,直到載入 X。

這樣您就可以安全啟動,然後將根據您的需求選擇合適驅動器的任務交給 X。您甚至可能決定不進行任何編程,然後看看簡單的命令是否有效

    dpkg-reconfigure xserver-xorg

(這適用於 Debian 和衍生品,這是你的情況)可能適合你的情況。

編輯:

可以完全停用圖形啟動。複製

      cp /etc/default/grub /etc/default/grub-orig

編輯/etc/default/grub,註解掉這一行,

      #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

修改這一行看起來像

      GRUB_CMDLINE_LINUX="text"

然後取消註解這一行,

      GRUB_TERMINAL=console

保存,運行

       update-grub

當您重新啟動時,如果您沒有損壞的安裝,您將進入文字模式。重新配置 X 後,您可以使用以下命令啟動圖形會話

       startx

相關內容