Код opengl через SSH, запустить программу через дисплей машины

Я работаю через Библию Opengl 5-е издание. Из-за недавнего сбоя оборудования мой основной компьютер теперь является старым ноутбуком, который не поддерживает стандарт opengl для моей учебной книги. У меня есть безголовый сервер под управлением Ubuntu 11.10, на котором установлена ​​видеокарта. Я хотел бы написать код через SSH, и моя скомпилированная программа отображается на мониторе, подключенном к серверу. Как бы я поступил так?

2 ответа

Вы не указали слишком много о вашей среде, так что давайте пойдем один за другим. Во-первых, если вы работали с Ubuntu (или с любой другой GNU/Linux) на своей предыдущей машине, вы, скорее всего, используете X Windows для отображения в своих приложениях OpenGL. Исходя из этого предположения, все, что вам нужно, - это работающий сервер X Windows на вашем "безголовом" сервере (обратите внимание, что когда вы подключаете монитор, он больше не является безголовым). Если он не установлен (например, если вы установили Ubuntu Server Edition), сначала нужно установить его, проверьте следующее:

Обратите внимание, что не рекомендуется устанавливать X (или что-то не нужное) на чистых серверах по разным причинам, см. Раздел " Аргументы против графического интерфейса пользователя " в приведенной выше ссылке, чтобы увидеть некоторые из них и решить, хотите ли вы это делать или нет.

Когда у вас это установлено (что вы можете проверить, например, запустив dpkg -s xserver-xorg-code в терминале и проверка Status и запустил его, вы можете проверить это, запустив, например, xeyes или другие примеры приложений X. Во-первых, убедитесь, что у вас есть DISPLAY набор переменных среды:

$ echo $DISPLAY
:0.0

Из этого:

Вы можете видеть, что эта переменная имеет следующий формат:

hostname:displaynumber.screennumber

с hostname опущено выше значения localhost, Если это работает (например, работает xeyes на самом деле показывает эти забавные глаза, которые отслеживают вашу мышь), вы все настроены по-икс.

Если у вас не установлен SSH-сервер, вам нужно установить его - это довольно просто, вот один из многих уроков:

Проверьте, что ваш SSH работает, запустив ssh <target IP> с вашего ноутбука, например:

$ ssh 10.0.0.5

если ваш сервер IP 10.0.0.5. Если это удастся, у вас все готово.

Теперь, когда вы можете подключиться к серверу по протоколу SSH, достаточно просто запустить xeyes изнутри соединения SSH. Может быть, что ваш DISPLAY переменная не установлена, когда вы ssh, так что если echo $DISPLAY ничего не возвращает, вы можете запустить это:

$ export DISPLAY=:0.0

при условии, что вы используете bash, что, вероятно, имеет место.

Если, с другой стороны, вы хотите запустить само приложение на ноутбуке и просто отобразить на сервере, все, что вам нужно сделать, это изменить DISPLAY переменная, и это будет работать, например:

$ export DISPLAY=10.0.0.5:0.0

при условии, что IP вашего сервера 10.0.0.5. Вы можете попробовать вышеуказанное в терминале, следуя xeyes и вы снова должны увидеть эти забавные глаза на мониторе вашего сервера.

Надеюсь это поможет.

У меня была похожая проблема. Хорошее решение для этого - VirtualGL http://www.virtualgl.org/

Это довольно легко настроить. Вот руководство.

Он запускает приложение на сервере и перенаправляет выходные данные OpenGL клиенту в виде необработанных кадров (сжатых для лучшей производительности).

Другие вопросы по тегам