Теперь у меня есть два скрипта, которые переключают драйверы, 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 скомпилирован в ядро, я не знаю, что делать.