問題描述
是否可以在 Nvidia 的 BLOB 和 Nouveau 視頻驅動程序 on-the-fly 之間切換?
我想我需要能夠:
-
[✓] 卸載 nvidia
-
[✓] 卸載新派
-
[✕] 卸載nouveau後恢複控製台*
-
[✓] 交換 xorg.conf 文件
-
[✓] 小心列入黑名單
-
[✓] 處理 libglx.so
*) 在與#nouveau 的人聊了幾句之後,使用當前的 Ubuntu 設置(內置 vesafb)似乎很難甚至不可能。我試圖讓它與 uvesafb 一起工作,但現在答案中的腳本可以滿足我的需求。
最佳回答
我現在有兩個切換驅動程序的腳本,xorg.conf,處理黑名單和 libglx,所以答案是:是的,這是可能的。
黑名單適用於 /etc/modprobe.d/
中包含 blacklist nvidia
或 blacklist 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 已編譯到內核中,我不知道該怎麽做。