在没有重启的情况下在nvidia-current和nouveau之间切换?

是否可以即时在Nvidia的BLOB和Nouveauvideo驱动程序之间切换?

我想我需要能够:

  1. [✓]卸载nvidia
  2. [✓]卸载nouveau
  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)。

切换到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之后运行/etc/init.d/consolefont restart以恢复文本模式。 请注意,它已在更新的系统上重命名为console-font,在Ubuntu 13.10中它根本无法以这种方式调用,但是像这样: service console-font restart

此外,它始终不起作用。 在某些情况下,启动X( service lightdm start – 或者你正在使用的任何DM)将启动gfx模式,并在切换到vt1( ctrl-alt-f1 )时也提供工作文本模式。

(我使用它将nvidia驱动程序安装到live CD会话中)