可以在Nvidia的BLOB和Nouveau视频驱动程序之间即时切换吗?
我认为我需要能够:
- [✓]卸载nvidia
- [✓]卸载nouveau
- [✕]卸载nouveau *后还原控制台
- [✓]交换xorg.conf文件
- [✓]列入黑名单
- [✓]处理libglx.so
*)与#nouveau的人员进行了一些交谈之后,使用当前的Ubuntu安装程序(内置vesafb)似乎很难甚至不可能。我正在尝试使其与uvesafb一起使用,但是到目前为止,答案中的脚本可以满足我的需求。
可以在Nvidia的BLOB和Nouveau视频驱动程序之间即时切换吗?
我认为我需要能够:
*)与#nouveau的人员进行了一些交谈之后,使用当前的Ubuntu安装程序(内置vesafb)似乎很难甚至不可能。我正在尝试使其与uvesafb一起使用,但是到目前为止,答案中的脚本可以满足我的需求。
Answers:
现在,我有两个脚本来切换驱动程序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)。
切换到nvidia:
#!/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已编译到内核中,所以我不知道该怎么做。
我不相信这是有可能的,不仅nouvou驱动程序内核模式设置没有,而nvidia则没有,而且nvidia驱动程序使用了被入侵的xorg库,即使在需要intel驱动程序的机器上使用相同的安装,也是如此。(请参阅颠倒的元素错误和问题)
http://nouveau.freedesktop.org/wiki/KernelModeSetting/建议在rmmoding nouevau后恢复/mode/init.d/consolefont 重新启动以恢复文本模式。请注意,在较新的系统上已将其重命名为console-font,在Ubuntu 13.10中根本无法以这种方式调用它,但是像这样:service console-font restart
另外,它并不总是有效。在某些情况下,启动X(服务lightdm start-或使用的任何DM)将启动gfx模式,并在切换到vt1(ctrl-alt-f1)时也提供工作文本模式。
(我使用它来将nvidia驱动程序安装到实时CD会话中)