Назад | Перейти на главную страницу

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

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

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

Настроить довольно просто. Вот руководство.

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

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

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

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

$ echo $DISPLAY
:0.0

Из этого:

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

hostname:displaynumber.screennumber

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

Если у вас не установлен 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 и вы снова должны увидеть эти забавные глаза на мониторе вашего сервера.

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