Raspberry Pi 3 — как настроить удаленный рабочий стол ( устаревшая версия)

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 .

📎📎📎📎📎📎📎📎📎📎