Raspberry Pi 3 — как настроить удаленный рабочий стол ( устаревшая версия)
Метод, представленный в данной статье, позволит осуществлять ограниченный перечень действий, включающий работу в терминале. Он не позволит запускать полноэкранные графические приложения, вроде игр или медиаплееров. Тем не менее, он обеспечит полноценное окружение, такое же, как если бы оно было выведено напрямую на монитор.
http://ali.pub/wob8z Raspberry Pi 3 Model B ( 3 в 1)
Удаленный рабочий стол
Рано или поздно, возникнет необходимость управлять компьютером Raspberry Pi удаленно, будь то сервер умного дома, центр сбора данных, либо мозги умного телевизора. И не придумано ещё более удобного способа, чем удаленный рабочий стол. В этом разделе будет показано, как настроить связку Raspberri Pi 3 + ПК на Windows, находящиеся в одной локальной сети таким образом, чтобы осуществлять администрирование Малинкой, сидя на своем привычном месте, так, как будто вместо ПК к монитору подключена Малинка.
Первым делом обновляем операционку Raspbian:
Опцией update утилита apt-get запускает проверку в репозиториях новых версий программ, доступных для загрузки и обновляет кэш в системе. Опцией upgrade запускается обновление системы до последней версии. Как правило обе команды используются вместе. Можно использовать обе команды в одной строке, для последовательного выполнения обеих команд, для этого нужно разделить их точкой с запятой — sudo apt-get update; sudo apt-get upgrade или амперсандом — sudo apt-get update & sudo apt-get upgrade . Это весьма долгая процедура.
Далее на Raspbery Pi 3 необходимо установить серверный компонент VNC-системы ( Virtual Network Computing) для осуществления доступа к удаленному рабочему столу — в нашем случае будем устанавливать TightVNC Server. Он позволит подключаться к малинке различным VNC-клиентам ( просмотрщикам, viewer). Также он будет осуществлять от имени пользователя, взаимодействие с системой, эмулируя нажатия кнопок и работу с мышью. Устанавливается очень просто:
После установки сервера, необходимо настроить статический IP-адрес, для того чтобы VNC-клиент мог обращаться к устройству по конкретному адресу.
Следующими действиями, мы отменяем режим DHCP ( англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла, используется для автоматического динамического присвоения IP-адресов устройствам сети) и все параметры сети устанавливаем вручную.
Для этого сначала нужно выполнить команду ( открыть файл /etc/dhcpcd.conf для редактирования в текстовом редакторе nano):
И в самом конце файла под строкой nohook lookup-hostname указать данные своей сети и желаемый IP-адрес устройства ( он должен быть свободен, чтобы не было конфликтов) в сети:
После того как все настроено, нужно перезагрузить систему и убедиться что, установленные параметры вступили в силу:
Установленный IP-адрес можно всегда узнать командой ( параметр -I чувствителен к регистру):
Запуск сервера осуществляется следующей командой:
В качестве параметров указаны дисплей 1, разрешение дисплея и глубина цвета. При первом запуске VNCServer запросит установить 2 пароля — основной для доступа и пароль только для просмотра. Второй пароль можно не устанавливать. Пароли устанавливаются последовательным нажатием клавиш и подтверждением клавишей Enter . На экране во время ввода пароля ничего не будет происходить. После запуска, система оповестит о том, что запуск прошел нормально:
На серверной стороне ( Raspberry Pi 3) все готово.
Теперь необходимо настроить клиентскую сторону, в нашем случае Windows, но по сути она может быть любой, в т. ч. и Android. Скачиваем и запускаем VNC-клиент VNC Viewer и в меню File → New Connection создаем новое соединение:
В настройках соединения нужно указать только IP-адрес устройства к которому будет осуществлено подключение — он задавался в файле dhcpcd.conf . Через двоеточие указываем номер дисплея, заданный при запуске VNC-сервера. В поле name можно указать имя соединения, например, Raspberry Pi 3
Вновь созданное соединение появляется в главном окне:
Если все настройки сделаны корректно, то при двойном клике должно появиться окно с запросом пароля — он задавался при первом запуске VNC-сервера:
После ввода пароля появляется рабочий стол системы с заданными параметрами — разрешением и цветностью:
Убираем ошибку GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject
Очень вероятно, что при первом удаленном подключении на вновь отображенном рабочем столе будет висеть окно с ошибкой:
Окно закрывается по кнопке ОК, и на работу никак не влияет, но жутко раздражает. Для того чтобы это окно больше не всплывало, при подключении к VNC-серверу, нужно проделать несложные манипуляции.
Сначала в редакторе главного меню, нужно добавить пункт Default applications for LXSession:
Далее зайти по добавленному пункту меню Default applications for LXSession и из вкладки Core applications, удалить значение lxpolkit поля Polkit agent, оставив это поле пустым.
После этого перезагружаем систему, запускаем VNC-сервер и при подключении VNC-клиента такой ошибки уже не будет.
Борьба с Х-курсором в терминале
На этом месте, кого-то может все устроить и на этом все закончится, но некоторых будет смущать X-образный курсор, вместо привычной стрелки.
Для того, чтобы вернуть курсору стандартный стрелочный вид, вместо Х, необходимо в файле /home/pi/.vnc/xstartup ( не путать с /etc/vnc/xstartup ):
добавить к строке xsetroot -solid grey параметры:
Перезагружаем и переподключаемся. Теперь результат такой, как надо:
Настройка автозапуска VNC-сервера, и включение его как службы
Внимательный читатель наверняка заметил одну неприятность — при перезагрузке Малинки для повторного подключения к ней, придется снова запускать TightVNC Server из терминала самой Малинки, что очень неудобно. Неудобство усугубляется необходимостью постоянно вводить дополнительные параметры. Устраним этот недостаток.
Заходим в папку .config/autostart ( если папки нет, создать её можно средствами стандартного оконного менеджера):
Создаем файл tightvnc.desktop :
Сохраняем файл Ctrl+X , перезагружаем Малинку и снова подключаемся к ней из Windows, уже не запуская TightVNCServer в ручном режиме.
Настройка VNC-сервера как службы, может быть полезна для быстрого запуска и остановки сервера без ввода дополнительных параметров. Для этого нужно создать файл vncsrver в папке /etc/init.d/ :
Сохраняем файл Ctrl+X . Далее изменяем владельца на root ( chown ), назначаем права доступа на выполнение ( chmod 755 ) и устанавливаем ссылку сценария инициализации ( update-rc.d ):
После перезагружаем компьютер. При загрузке компьютера, VNC-сервер запустится автоматически.
Теперь можно управлять VNC-сервером как службой, например, чтобы остановить его необходимо выполнить команду:
А чтобы перезагрузить:
Копирование и вставка текста из приложений рабочего компьютера в приложения VNC-клиента
Работая в режиме уделенного рабочего стола, постоянно перемещаясь между сервером и клиентом, досадной и раздражающей, окажется невозможность копирования текста на рабочем компьютере ( Windows) и вставки его на удаленном клиенте ( Raspbian OS). Буферы обмена будут жить каждый своей обособленной жизнью. К сожалению, утилита vncconfig не включена в состав TightVNC-сервера, поэтому ею воспользоваться не получится. Зато можно установить другую специальную утилиту autocutsel .