LINUX.ORG.RU

LD_PRELOAD из lightdm

 , ,


0

1

Нужно сделать ld_preload перед запуском Xorg. В /etc/lightdm/lightdm.conf я пишу

[Seat:0]
xserver-command=export LD_PRELOAD=xdummy.so /usr/bin/Xorg
Но получаю ошибку:
[+0.14s] DEBUG: DisplayServer x-0: Can't launch X server export LD_PRELOAD=xdummy.so /usr/bin/Xorg, not found in path
[+0.14s] DEBUG: DisplayServer x-0: X server stopped
Если прописать команду до sh скрипта в котором будет LD_PRELOAD то lightdm запускается не правильно (графическая часть lightdm не запускается и в логах нет ошибок).

Путь полный укажи. not found in path. И вообще тебе может шелл потребоваться. То есть команда в таком виде «sh -c LD_PRELOAD=/path/to/lib.so /usr/bin/Xorg»

UPD: Хотя нет. Глянул в инете по lightdm. Там вроде можно переменные прямо здесь указывать.

P.S. По-прежнему не понимаю, чем ты занимаешься. По-моему, фигней какой-то. Какие-то LD_PREOLOAD перед сервером делаешь зачем-то.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 4)
Ответ на: комментарий от Zubok

*.so у меня в /usr/lib всегда загружал без указания полного пути. За команду спасибо, но это не помогло. Сразу после завершения sh завершается и lightdm. Кроме того lightdm как то подключается к запущенному процессу и взаимодействует с ним, посылает какие то команды. так вот если бы даже sh не завершался то графическая часть lightdm не стартовала бы, хотя для этого вроде соблюдены все условия - /usr/bin/Xorg запускается и работает.

Я не знаю как все это устроено, но нужно запускать из lightdm /usr/bin/Xorg самым первым без посредников которые выполняют LD_PRELOAD и запускают Xorg. Или надо как то передать управление Xorg`ом lightdm`у если /usr/bin/Xorg запускается из посредника (например sh).

drunkwolfs
() автор топика
Ответ на: комментарий от drunkwolfs

*.so у меня в /usr/lib всегда загружал без указания полного пути.

Ну пишет же, что по пути не найден. Ну явно же говорит, что не нашел, что искал. Не я же это выдумал, а он.

Пробуй так еще:

xserver-command=env LD_PRELOAD=/path/to/xdummy.so /usr/bin/Xorg
Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

Автор x11vnc создал скрипт xdummy. Он использует LD_PRELOAD для добавления ништяков, улучшает взаимодействие между x11vnc и Xorg.

Этот скрипт работает, но я не понял как его пихнуть в автозагрузку и запускать сразу lightdm, а не kde. Все что у меня получилось работало очень плохо.

Сейчас мне кажется я иду по верному пути.

drunkwolfs
() автор топика
Ответ на: комментарий от Zubok

он жалуется что не нашел export, потому что такого исполняемого файла нет. Если сделать sudo export будет та же ошибка.

drunkwolfs
() автор топика
Ответ на: комментарий от Zubok

он жалуется что не нашел export, потому что такого исполняемого файла нет. Если сделать sudo export будет та же ошибка.

Спасибо. Решил проблему так:

[Seat:0]
LD_PRELOAD=xdummy.so
xserver-command=/usr/bin/Xorg

drunkwolfs
() автор топика
Ответ на: комментарий от drunkwolfs

Странно как-то. lightdm переменные таким образом позволяет указывать в конфигурации? Если да, то я бы с этим, конечно, не помог, так как lightdm в глаза не видел. Советовал то, что казалось очевидным. Это в документации написано, что так можно?

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

инфа не точная. Скорее всего ошибаюсь. У меня все работает нормально, возможно те проблемы которые у меня были не связаны с не загрузкой *.so.

Сейчас попробую донастроить. Я так и не понял зачем нужен этот *.so вроде он позволяет менять разрешение экрана на любое какое я захочу, разрешение моего телефона не поддерживается, поэтому загружал *.so. Кроме этого постоянно падали кеды и x11vnc.

Обойдусь пожалуй пока что без LD_PRELOAD.

drunkwolfs
() автор топика
Ответ на: комментарий от drunkwolfs

Как я могу проверить загружен ли в процесс *.so через LD_PRELOAD?

Да 100% не загружен. Он просто строчку твою проигнорировал и загрузил просто Xorg. Мне это и показалось странным.

Zubok ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.