5

У меня есть Raspberry Pi, и я использую его как безголовый сервер. Но я хочу запустить X на этом. Он поставляется с lightdm, и если вы запускаете его, используя входящий в комплект HDMI или видео, он работает, и я могу использовать его и x11vnc к нему, но без подключенного монитора, по умолчанию он равен 800x600 или что-то очень маленькое. Я пытаюсь установить геометрию, без эффекта.

Поэтому я решил запустить Xvfb, затем запустить lightdm, а затем x11vnc - весь шебанг.

Проблема в том, что lightdm, похоже, не хочет подключаться к уже работающему X-серверу, он хочет создать свой собственный. Хорошо, поэтому я говорю ему запустить Xvfb вместо X, и это не удается, потому что lightdm пытается передать 'vt7' в качестве параметра X-серверу, но Xvfb не принимает виртуальный терминал в качестве параметра, потому что он не использует какой-либо терминал Это виртуальный фрейм-буфер.

Так помогите мне? Как я могу получить lightdm (я проверил документы и опции, ничего очевидного), чтобы правильно запустить Xvfb (без параметра vt7), или заставить его подключиться к уже работающему X-серверу и не пытаться запустить его самостоятельно.

1 ответ1

7

Кстати, я столкнулся с той же проблемой в то же время. Также хотел запустить безголовый сервер с Xvfb и VNC, но не на RPi. Я нашел рабочее решение, выполнив следующие шаги ...

apt-get install lubuntu-core xvfb x11vnc

Я понял, что все параметры конфигурации lightdm.conf описаны в /usr/share/doc/lightdm/lightdm.conf.gz. Посмотрите на них, выполнив следующую команду.

zcat /usr/share/doc/lightdm/lightdm.conf.gz

Очевидно, как вы сообщали, lightdm пытается создать свой собственный X-сервер и передает некоторые аргументы, которые Xvfb не может обработать. Первым шагом для решения этой проблемы является добавление строки 'xserver-command' в файл конфигурации lightdm/etc/lightdm/lightdm.conf (по умолчанию это xserver-command = X).

[SeatDefaults]
greeter-session=lightdm-gtk-greeter
user-session=Lubuntu
xserver-command=/etc/X11/xinit/xserverrc

После этого я изменил /etc /X11 /xinit /xserverrc, чтобы запускать Xvfb вместо реального X-сервера (обратите внимание, что я закомментировал исходную строку X exec, которая передает аргументы командной строки в X). Вместо этого было достаточно добавить строку exec, которая запускает Xvfb, чтобы lightdm работал с Xvfb.

#!/bin/sh

#exec /usr/bin/X -nolisten tcp "$@"
exec Xvfb :0 -screen 0 1024x768x24

Мне кажется, что это удобный способ обернуть команду lightdm X в подходящий скрипт-обертку, который уже присутствует в (L)Ubuntu по умолчанию.

Наконец, я использую VNC после ssh'ing в систему, переадресации порта VNC и подключения к перенаправленному порту на localhost с помощью клиента VNC (в моем случае совместное использование экрана Mac OS).

ssh -L 5900:localhost:5900 user@machine 'x11vnc -localhost -display :0 -many'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .