На этот раз достался очередной толстый клиент, но с видяхой VIA VX900, подключил в сеть и опять облом: картинка вся в мыле, не то разрешение и не работает OpenGL, при попытке узнать как он там:
glxinfo
Получаем кучу:
Xlib: extension "GLX" missing on display ":0.0".
Чтож, добавим в эот зоопарк дрова на VIA VX900, а именно свободные openchrome
Понятно дело, в предыдущий раз были поставлены дрова на Нвидию т.к. остальные клиенты на ней, а теперь зоопарк.
Нус, добавим в этот зоопарк дрова на VIA VX900, а именно свободные openchrome.
Переходим в рут к ltsp, подключаем нужные разделы и ставим дрова:
sudo ltsp-chroot --mount-all
apt-get install xserver-xorg-video-openchrome
разумеется нужно в lts.conf указать конкретный драйвер:
[client mac]
XSERVER=openchrome
Можно попробовать перегрузиться, но по glxinfo опять облом =(
Смотрим /var/log/xorg.0.log, а там
LoadModule: "glx"
...
Module glx: vendor="NVIDIA corporation"
Походу, что-то не оттуда грузиться, поэтому сделаем свой xorg.conf.openchrome, который укажем в настройках lts.conf и засунем в него портянку , где в секции FIles укажем дефолтные пути загрузки:
Вам скорее всего придётся изменить под себя, т.к. у меня только VGA выход.
и пропишем в lts.conf его явно:
[client mac]
X_CONF=/etc/X11/xorg.conf.openchrome
Можно пробовать перезагрузиться, разрешение должно прийти в норму, а вот с glxinfo опять облом, опять же смотрим xorg.0.log
AIGLX error: dlopen of /usr/lib/xorg/modules/drivers/i965_dri.so failed (/usr/lib/xorg/modules/drivers/i965_dri.so: undefined symbol: _glapi_set_dispatch)
Вот падла, что-то опять не оттуда загрузил, проверяем откуда libglx.so берёт зависимости:
ldd /usr/lib/xorg/modules/extensions/libglx.so
а там
libGL.so.1 => /usr/lib/nvidia-340/libGL.so.1
Бля, тащит libGL от Нвидии. Ладно, значит Нвидиа подсунула в ld свои настройки, идём в /etc/ld.so.conf.d смотрим в *.conf файлах отголоски Нвидии и заменяем на папку, откуда по идее должен быть libGL.so.1 (можно узнать, заюзав find / -name «libGL.so.1»)
/usr/lib/i386-linux-gnu/mesa
Ну и не забываем обновить кэш ld:
ldconfig
Обновляем образ, перегружаем клиента, радуемся,
Таким макаром мы сломали загрузу дров Нвидии.
Создадим и для неё отдельный xorg.conf.nvidia
не забудем прописать в lts.conf для клиентов с Нвидиа карточками
[client mac]
X_CONF=/etc/X11/xorg.conf.nvidia
Но это ещё не всё…
Дело в том, что Nvidia подменяет системный libGL своим…, а мы заменив пути в /etc/ld.so.conf.d тем самым указали где лежат зависимости на библиотеки от NVidia.
и через xorg.conf это никак не настроить =(( Тоесть придётся перед загрузкой клиента заранее прописывать какой там путь должен быть.
Как это сделать более элегантно я не придумал, кроме как запускать скрипты из rc.local
Вот как-то так =)