2

Я разрабатываю робота с Raspberry Pi, и у меня проблемы с пересылкой X11. Когда я собираюсь запустить свой скрипт как:

   sudo python myscript.py

Я получаю ошибку:

   Putty X11 proxy: Authorisation not recognised
   (Imagen Combinada:3642) : Gtk-Warning **: cannot open display: localhost:10.0

Я использую PuTTY с Xming(Включение SSH -> X11 -> Включить пересылку X11).

Кто-нибудь знает, что здесь может происходить и как я могу это решить?

2 ответа2

4

У меня была такая же проблема, и я нашел решение. Причиной ошибки не является передача MIT-MAGIC-COOKIE-1 в корень. Этот файл хранится в ~/.Xauthority. У вас есть три варианта.

1) Быстрое исправление будет загружать всю пользовательскую среду

$ sudo -E python myscript.py

Опция -E будет загружать среды оболочки root из домашнего каталога пользователя. Итак, ~/.Xauthority пользователя будет прочитан. Тем не менее, это своего рода грубая сила и не рекомендуется для обеспечения безопасности.

2) перечислите ключ и загрузите его в root /root /.Xauthority

Еще один способ напрямую загрузить ключ в root.Xauthority.

pi@RPi-Dev:~$ xauth list
RPi-Dev/unix:10  MIT-MAGIC-COOKIE-1  5cxxxxxxxxxxxxxxxxxxxxxxxxxxx3d3
pi@RPi-Dev:~$ sudo -s
root@RPi-Dev:/home/pi# xauth add RPi-Dev/unix:10  MIT-MAGIC-COOKIE-1  5c5cxxxxxxxxxxxxxxxxxxxxxxxxxxxd3

3) настройка и передача значения среды XAUTHORITY.

Вы можете указать.Файл Xauthority с XAUTHORITY, однако, по умолчанию он не установлен и просто загружает файл из ~/.Xauthority. Итак, дайте вариант sudo таким образом.

$ sudo XAUTHORITY=${HOME}/.Xauthority python myscript.py

root получит XAUTHORITY =/home/(пользователь)/.Xauthority, и прочитайте файл соответственно.

0

Вполне вероятно, что sudo вызывает проблему. Чтобы проверить, вы можете запустить приложение X (например, xeyes) без sudo . Если это работает, вы можете запустить ваш скрипт на python, добавив xauth cookie в root:

dave@raspberrypi$ xauth list
raspberrypi/unix:10  MIT-MAGIC-COOKIE-1  1e656e1......2d6d5a

dave@raspberrypi$ sudo su 
# paste in the output from 'xauth list' below:
root@raspberrypi$ xauth add raspberrypi/unix:10  MIT-MAGIC-COOKIE-1  1e656e1......2d6d5a

dave@raspberrypi$ sudo python myscript.py

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .