Последнее обновление:
October 20, 2021

Есть мысль... Жми, напиши!
Что имеем: Постов : 143 Авторов: 1 Категорий: 22

Ubuntu LTSP fat clients install OPENCHROME drivers

На этот раз достался очередной толстый клиент, но с видяхой 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 укажем дефолтные пути загрузки:

nano /etc/X11/xorg.conf.openchrome
Section «ServerLayout»
Identifier «Default Layout»
Screen «Default Screen»
InputDevice «Mouse»
InputDevice «Keyboard»
EndSection

Section «InputDevice»
Identifier «Keyboard»
Driver «kbd»
Option «XkbRules» «xorg»
Option «XkbModel» «pc105»
Option «XkbLayout» «cn»
EndSection

Section «InputDevice»
Identifier «Mouse»
Driver «mouse»
Option «CorePointer»
EndSection

Section «Files»
ModulePath «/usr/lib/xorg/modules»
EndSection

Section «Monitor»
Identifier «VGA-1»
Option «Enable» «true»
Option «DefaultModes» «true»
EndSection

Section «Monitor»
Identifier «LVDS-1»
Option «Ignore» «true»
Option «DefaultModes» «true»
EndSection

Section «Monitor»
Identifier «DVI-1»
Option «Ignore» «true»
Option «DefaultModes» «true»
EndSection

Section «Monitor»
Identifier «HDMI-1»
Option «Ignore» «true»
Option «DefaultModes» «true»
EndSection

Section «Monitor»
Identifier «DisplayPort-1»
Option «Ignore» «true»
Option «DefaultModes» «true»
EndSection

Section «Device»
Driver «openchrome»
VendorName «VIA Tech»
BoardName «via»
Identifier «Configured Video Device»
EndSection

Section «Screen»
DefaultDepth 24
SubSection «Display»
Depth 24
EndSubSection
Identifier «Default Screen»
Device «Configured Video Device»
EndSection

Section «Module»
Load «glx»
Load «dri»
Load «extmod»
EndSection

Section «DRI»
Group 0
Mode 0666
EndSection

Section «Extensions»
Option «Composite» «Enable»
EndSection

Вам скорее всего придётся изменить под себя, т.к. у меня только 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

Обновляем образ, перегружаем клиента, радуемся,

ha_ha


Таким макаром мы сломали загрузу дров Нвидии.

Создадим и для неё отдельный xorg.conf.nvidia

xorg.conf.nvidia
Section "Files"
        ModulePath   "/usr/lib/nvidia-340/xorg"
        ModulePath   "/usr/lib/xorg/modules"
EndSection


Section "Device"
        Driver "nvidia"
        VendorName "NVIDIA coproration"
        BoardName "nvidia"
        Identifier      "Configured Video Device"
EndSection

не забудем прописать в lts.conf для клиентов с Нвидиа карточками

[client mac] 
X_CONF=/etc/X11/xorg.conf.nvidia

Но это ещё не всё…

Дело в том, что Nvidia подменяет системный libGL своим…, а мы заменив пути в /etc/ld.so.conf.d  тем самым указали где лежат зависимости на библиотеки от NVidia.

и через xorg.conf это никак не настроить =((    Тоесть придётся перед загрузкой клиента заранее прописывать какой там путь должен быть.

Как это сделать более элегантно я не придумал, кроме как запускать скрипты из rc.local

Вот как-то так =)

Views :

456

Ubuntu LTSP fat clients install NVIDIA drivers

Раздобыл тут на днях парочку толстых клиентов, но радость была недолгой, т.к. после подключения к сети картинка была вся в мыле и настройки не помогали.

Пришлось поплясать с бубном, что бы внедрить в дистрибутив проприетарные драйвера от Нвидии, т.к. простой установкой nvidia-current дело не обошлось и всё равно грузился драйвер vesa или nouveau.

Чтож, погнали:

переключаемся в рут к ltsp, заодно сразу обновим

sudo ltsp-chroot --mount-all
apt-get update
apt-get dist-upgrade 
снесём отголоски предыдущих установок:
apt-get remove --purge nvidia-*
apt-get autoremove

ВАЖНО это может потянуть за собой и оболочку, поэтому её нужно вернуть обратно (замените на свою, у меня lubuntu):

apt-get install lubuntu-desktop

установим заголовочники ядра и утилиты для пересборки:

apt-get install dkms build-essential linux-headers-generic

отключим загрузку открытых драйверов NVidia nouveau (но):

nano /etc/modprobe.d/blacklist-nouveau.conf
>>blacklist nouveau
>>blacklist lbm-nouveau
>>options nouveau modeset=0
>>alias nouveau off
>>alias lbm-nouveau off

По идее, это должно и так было быть сделано при установке проприетарных дров от NVidia, но в моём случае этого почему-то не произошло.

Что бы наверняка, можно вообще удалить её (не забудьте глянуть будет ли оболочка в списке зависимостей, если что — вернуть обратно, как-написано выше ):

apt-get --purge remove xserver-xorg-video-nouveau 
ну и ставим новые дрова (гляньте на сайте Нвидии какие подходят):
apt-get install nvidia-340

закругляемся:

exit
sudo ltsp-update-kernels
sudo ltsp-update-image

Осталось только в конфиге lts.conf прописать у клиентов какой драйвер использовать:

После перезагрузки клиента можно глянуть какие дрова используются:

lspci -k| grep -EA2 'VGA|3D'

Вот как-то так =)

Views :

403