Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Перенаправить графический вывод с Xorg-сервера через ssh  (Прочитано 5025 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lyrax

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Здравствуйте.

Я прочитал очень много рецептов, как это сделать. Возможно, я что-то не понимаю.

У меня есть ноутбук с Ubuntu 12.04 и гибридной графикой nvidia. Там все настроено, optirun работает, CUDA-программы выпоняются - в общем все нормально. Есть системный блок свидеокартой nvidia 780 Ti. Подключил к системнику монитор, установил на него Gentoo. Драйвера nvidia встали нормально, CUDA работает. Поставил туда Xorg, настроил. Запускаю startx - появляется twm, nvidia-settings и glxgears работают нормально.

Что я хочу:
Есть ноутбук + монитор (для удобства, но монитора может не быть и будет один ноутбук) - это клиент.
Есть системный блок без монитора - это сервер.
Оба они подключены к одному роутеру. С ноутбука я загружаю задачу и сервер ее считает. В обычном состоянии Xorg на сервере отключен. Но иногда мне будет нужен графический интерфейс, и я хочу включать Xorg и передавать изображение с сервера на ноутбук(клиент).

Настроил ssh. В режиме без иксов подключается нормально. Вот так:
Цитировать
$ ssh user1@192.168.1.40   
Логинится, файлы передаются, команды выполняются.

Файл ssh_config на сервере (то, что относиться к X):
Цитировать
ForwardX11 yes
AddressFamily inet
Port 2405

Файл ssh_config клиента (то, что относиться к X):
Цитировать
ForwardAgent yes
ForwardX11 yes
AddressFamily inet

Подключаюсь к серверу:
Цитировать
   
$ ssh -X -v user1@192.168.1.40
много сообщений и в конце
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Requesting authentication agent forwarding.
debug1: Sending environment.
debug1: Sending env LANG = ru_RU.UTF-8
X11 forwarding request failed on channel 0

Запускаю Xorg на сервере через ssh:
Цитировать
$ startx
много сообщений и в конце
Loading extension GLX
(EE)
Fatal server error:
(EE) no screens found(EE)
(EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

Файл /var/log/Xorg.0.log:
Цитировать

много строк и в конце
147 [  3482.294] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0.
148 [  3482.294] (EE) NVIDIA(0):     Set AllowEmptyInitialConfiguration if you want the server
149 [  3482.294] (EE) NVIDIA(0):     to start anyway
150 [  3482.540] (EE) NVIDIA(0): Failing initialization of X screen 0
151 [  3482.540] (II) UnloadModule: "nvidia"
152 [  3482.540] (II) UnloadSubModule: "wfb"
153 [  3482.540] (II) UnloadSubModule: "fb"
154 [  3482.540] (EE) Screen(s) found, but none have a usable configuration.
155 [  3482.540] (EE)
156 Fatal server error:
157 [  3482.540] (EE) no screens found(EE)
158 [  3482.540] (EE)
159 Please consult the The X.Org Foundation support
160      at http://wiki.x.org
161  for help.
162 [  3482.540] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
163 [  3482.540] (EE)
164 [  3482.548] (EE) Server terminated with error (1). Closing log file.   

На ноутбуке:
Цитировать
$ echo $DISPLAY
:0   

На сервере (монитор не подключен):
Цитировать
$ echo $DISPLAY


Пустота.
Если подключатся к серверу, так:
Цитировать
$ ssh -Y -v user1@192.168.1.40   
, то результат такой же.

Пробовал подключить монитор к серверу и запустить Xorg (через startx), потом на ноутбуке:
Цитировать
   
$ ssh -Y -v user1@192.168.1.40   
Опять выдает:
X11 forwarding request failed on channel 0

Что можете посоветовать? Заранее Благодарен.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Цитировать
$ echo $DISPLAY


Пустота.
~/.bashrc добапавить
export DISPLAY=:0.0

Пользователь решил продолжить мысль 05 Августа 2014, 02:05:10:
Xvfb
L~$
L~$ ssh root@v2
Warning: Permanently added 'v2,192.168.100.3' (ECDSA) to the list of known hosts.
root@v2's password:
Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0-29-generic i686)

 * Documentation:  https://help.ubuntu.com/

No mail.
Last login: Sun Aug  3 04:50:11 2014 from 192.168.100.2
root@v2:~#
root@v2:~# cat /usr/bin/X
#!/bin/sh
#exit 1
b="Xvfb -dpi 140 -screen 0 1024x768x24 "`echo "$@" | sed 's/ vt7 -novtswitch//g'`
exec $b
exit 1
root@v2:~#
root@v2:~# ps aux | grep Xvfb
root       940  0.0  0.6 127064 27432 ?        Sl   21:19   0:00 Xvfb -dpi 140 -screen 0 1024x768x24 -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp
root      1888  0.0  0.0   5928   816 pts/1    S+   22:06   0:00 grep Xvfb
root@v2:~#
root@v2:~# exit
выход
Connection to v2 closed.
L~$

« Последнее редактирование: 05 Августа 2014, 02:05:10 от victor00000 »
Wars ~.o

Оффлайн lyrax

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Я нашел вот это:
https://stackoverflow.com/questions/18061121/x11-forwarding-error-on-ubuntu-though-it-works-on-windows
Нужно выполнить:
$ xauth add ${client_ip}:0 . ${hex_key}
Где взять ${hex_key}.

На клиенте я выполнил:
$ xauth list
usern/unix:0  MIT-MAGIC-COOKIE-1  9d1e422ae451f50d22ce6da0e3fe282f
Последней число это и есть hex_key? Мне его нужно взять с клиента и записать в ~/.Xauthority на сервер?

export DISPLAY=:0.0
добавил на сервер
$ echo DISPLAY
:0.0
,но это не помогло
« Последнее редактирование: 05 Августа 2014, 10:58:29 от lyrax »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
на другой форум.

Пользователь решил продолжить мысль 05 Августа 2014, 11:09:47:
vnc?
« Последнее редактирование: 05 Августа 2014, 11:09:47 от victor00000 »
Wars ~.o

Оффлайн lyrax

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Оставим пока xauth. Это была просто гипотеза.

Перейдем к Xvfb - это виртуальный X-сервер, который для вывода использует не видеокарту, а оперативную память.
Сначала я его установил на сервере.

Команда
root@v2:~# cat /usr/bin/Xу меня выводит огромное количество непонятных символов и в конце в командной строке появляется:
root@v2:~# 1;2c
Возможно имелось в виду то, что нужно с помощью cat добавить в конец файла /usr/bin/X скрипт:
#!/bin/sh
#exit 1
b="Xvfb -dpi 140 -screen 0 1024x768x24 "`echo "$@" | sed 's/ vt7 -novtswitch//g'`
exec $b
exit 1

Потом проверить, что все добавилось с помощью
root@v2:~# ps aux | grep Xvfb
и закончить соединение с сервером. Я правильно все понял?




Пользователь решил продолжить мысль 05 Августа 2014, 12:27:50:
vnc?

VNC - это Virtual Network Computing?
Может быть он и используется, но я его специально не ставил и не настраивал. И с VNC я не работал, по крайней мере осмысленно.
« Последнее редактирование: 05 Августа 2014, 12:27:50 от lyrax »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Wars ~.o

Оффлайн lyrax

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
На сервере НЕ НАДО править /etc/ssh/ssh_config - это конфиг ssh-клиента самого сервера! На сервере надо править /etc/ssh/sshd_config.

Ошибся чуть-чуть.

 

Страница сгенерирована за 0.021 секунд. Запросов: 21.