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