當前位置: 首頁>>技術教程>>正文


xorg – 無需重啟即可在 nvidia-current 和 nouveau 之間切換?

, ,

問題描述

是否可以在 Nvidia 的 BLOB 和 Nouveau 視頻驅動程序 on-the-fly 之間切換?

我想我需要能夠:

  1. [✓] 卸載 nvidia

  2. [✓] 卸載新派

  3. [✕] 卸載nouveau後恢複控製台*

  4. [✓] 交換 xorg.conf 文件

  5. [✓] 小心列入黑名單

  6. [✓] 處理 libglx.so

*) 在與#nouveau 的人聊了幾句之後,使用當前的 Ubuntu 設置(內置 vesafb)似乎很難甚至不可能。我試圖讓它與 uvesafb 一起工作,但現在答案中的腳本可以滿足我的需求。

最佳回答

我現在有兩個切換驅動程序的腳本,xorg.conf,處理黑名單和 libglx,所以答案是:是的,這是可能的。

黑名單適用於 /etc/modprobe.d/ 中包含 blacklist nvidiablacklist nouveau 的一個文件。我還用虛擬對象替換了 /lib/nvidia-current/modprobe.conf,否則 nvidia 驅動程序總是會在 /etc/modprobe.d/ 中創建一個鏈接,將 nouveau 列入黑名單。

切換到新潮:

 #!/bin/bash
 stop gdm

 rmmod nvidia

 sed -i "s/nouveau/nvidia/" /etc/modprobe.d/blacklist-nvidia-nouveau.conf

 update-alternatives --set gl_conf /usr/lib/mesa/ld.so.conf
 ldconfig

 modprobe nouveau

 cp /etc/X11/xorg.conf{.nouveau,}

 start gdm

執行之後,我有 nouveau 運行和一個工作控製台 (nouveaufb)。

切換到英偉達:

#!/bin/bash
stop gdm

echo 0 > /sys/class/vtconsole/vtcon1/bind
rmmod nouveau
rmmod ttm
rmmod drm_kms_helper
rmmod drm

sed -i "s/nvidia/nouveau/" /etc/modprobe.d/blacklist-nvidia-nouveau.conf

update-alternatives --set gl_conf /usr/lib/nvidia-current/ld.so.conf
ldconfig

modprobe nvidia-current

cp /etc/X11/xorg.conf{.nvidia,}

start gdm

→ Nvidia 驅動程序正在運行,唯一的問題是:卸載 nouveau 驅動程序後,控製台無法使用。我需要一種方法來重置它或加載另一個幀緩衝區,但由於 vesafb 已編譯到內核中,我不知道該怎麽做。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/12287.html,未經允許,請勿轉載。