привет Я использую ubuntu на android (с chroot) Я пытаюсь выполнить xev (чтобы изменить кнопку регулировки громкости на CTRL) но каждый раз, когда я пытаюсь открыть xev, это говорит невозможно открыть экран '' или не удалось открыть дисплей 127.0.0.1:0.0 ' (когда я изменяю переменную DISPLAY с экспортом)
Может кто-нибудь сказать мне, как решить эту проблему? Я не могу найти официальную страницу ошибки в Google ваш маленький совет будет очень полезен для меня С уважением. Taeyun.
DISPLAY=127.0.0.1:0.0
говорит использовать TCP/IP для подключения к дисплею 0.0
. Распределения не настроили X-серверы для прослушивания на TCP в течение пяти лет или более, потому что это ненужный риск безопасности; вам нужно удалить -nolisten
, но вы выполняете свой X
, если вы действительно хотите использовать TCP, а не сокеты домена Unix.
Но вам действительно нужно слушать TCP для соединений? Кажется маловероятным - сокеты домена Unix (например, /tmp/.X11-unix/X0
) гораздо более распространены, просто используйте DISPLAY=:0.0
, чтобы вместо этого потребовать сокет для домена Unix. Возможно, вам понадобится связать сокет в вашей среде chroot, в зависимости от того, откуда начинаются клиент и сервер.
Как только вы сможете связаться с X-сервером с вашего X-клиента, вам также необходимо его аутентифицировать, используя xauth(1)
. Это раздражает:) и является единственной самой популярной причиной, почему все просто используют SSH X11 forwarding (ssh -X
), а не работают с прослушиванием TCP и xauth
вручную. (Кстати, вы можете просто запустить sshd "внутри" chroot на другом порту, чтобы вы могли легко получить всю эту магию бесплатно?:)
/path/to/chroot/etc/ssh/sshd_config
чтобы включить sshd на порту2222
? Затем, когда вы используетеssh -X localhost:2222
вы подключитесь кsshd
работающему внутри "chroot", где, как мы надеемся, сокеты домена Unix для X11 внутри chroot "просто работают".