Обновлено 28 февраля 2018
Кравченко Виктор

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

Радиотехника и электроника Цифровые устройства Умный дом Raspberry
01 На заметку:
Эта статья является актуализированной по сравнению с Raspberry Pi 3 - как настроить удаленный рабочий стол (устаревшая версия) по состоянию на 05.07.2017 г.
02 На заметку:
Теперь при нажатии кнопки PrintScreen в терминальном окне будет автоматически сделан снимок экрана Raspbian и помещен в папку /home/pi.
03

Метод, представленный в данной статье, позволит осуществлять ограниченный перечень действий, включающий работу в терминале. Он не позволит запускать полноэкранные графические приложения, вроде игр или медиаплееров. Тем не менее, он обеспечит полноценное окружение, такое же, как если бы оно было выведено напрямую на монитор.


Проверено — автор рекомендует:
http://ali.pub/wob8z Raspberry Pi 3 Model B (3 в 1)

Официальный корпус для Rasberry Pi 3 — http://ali.pub/kslog
Все одним комплектом — http://ali.pub/puqa9, http://ali.pub/wdsti
Как покупать на Aliexpress со скидкой от 5,5%

Видео-инструкция о покупке со скидками на Aliexpress
04

Удаленный рабочий стол

Рано или поздно, возникнет необходимость управлять компьютером Raspberry Pi удаленно, будь то сервер умного дома, центр сбора данных, либо мозги умного телевизора. И не придумано ещё более удобного способа, чем удаленный рабочий стол. В этом разделе будет показано, как настроить связку Raspberri Pi 3 + ПК на Windows, находящиеся в одной локальной сети таким образом, чтобы осуществлять администрирование Малинкой, сидя на своем привычном месте, так, как будто вместо ПК к монитору подключена Малинка.

05
Настройка на стороне Raspberry Pi 3
06

Первым делом обновляем операционку Raspbian:

07
1
2
sudo apt-get update sudo apt-get upgrade
08

Опцией update утилита apt-get запускает проверку в репозиториях новых версий программ, доступных для загрузки и обновляет кэш в системе. Опцией upgrade запускается обновление системы до последней версии. Как правило обе команды используются вместе. Можно использовать обе команды в одной строке, для последовательного выполнения обеих команд, для этого нужно разделить их точкой с запятой — sudo apt-get update; sudo apt-get upgrade или амперсандом — sudo apt-get update & sudo apt-get upgrade. Это весьма долгая процедура.

09 На заметку:
Для корректного исполнения важных команд используется комбинация && — следующая команда будет выполнена, только если предыдущая завершена без ошибок: sudo apt-get update && sudo apt-get dist-upgrade
10

Перед манипуляциями с сервером необходимо настроить статический IP-адрес устройства, для того чтобы VNC-клиент мог обращаться к устройству по конкретному адресу.

11

Следующими действиями, мы отменяем режим DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла, используется для автоматического динамического присвоения IP-адресов устройствам сети) и все параметры сети устанавливаем вручную.

12

Для этого сначала нужно выполнить команду (открыть файл /etc/dhcpcd.conf для редактирования в текстовом редакторе nano):

13
1
sudo nano /etc/dhcpcd.conf
14

И в самом конце файла под строкой nohook lookup-hostname указать данные своей сети и желаемый IP-адрес устройства (он должен быть свободен, чтобы не было конфликтов) в сети:

15
1
2
3
4
interface eth0 static ip_address=192.168.0.99 static routers=192.168.0.1 static domain_name_servers=192.168.0.1 192.168.0.2
16 На заметку:
Обратите внимание, что настройка для Wi-Fi и Ethernet происходит раздельно. Для Wi-Fi в первой строке кода нужно указать interface wlan0.
17

После того как все настроено, нужно перезагрузить систему и убедиться что, установленные параметры вступили в силу:

18
19

Установленный IP-адрес можно всегда узнать командой (параметр -I чувствителен к регистру):

20
1
hostname -I
21

VNC Server

Перед запуском сервера необходимо настроить нормальное разрешение. Для этого в файл /boot/config.txt:

22
1
sudo nano /boot/config.txt
23

Необходимо добавить строки (подробно о значениях параметров можно почитать на официальном ресурсе сообщества Raspberry и VNC, в данном случае hdmi_mode=82 — 1920×1080, 60Hz, 1080p, hdmi_force_hotplug=1 — Малинка всегда считает, что к HDMI-разъему подключен монитор, если монитор подключается по RCA-разъему, это строку нужно удалить):

24
1
2
3
4
hdmi_force_hotplug=1 hdmi_ignore_edid=0xa5000080 hdmi_group=2 hdmi_mode=82
25
26

Сохраняем Ctrl+X, Y.

27

Начиная с версии 4.8 (Raspbian Jessie With Desktop) VNC Server установлен в системе. Если его по каким-то причинам нет, его можно установить командой:

28
1
sudo apt-get install realvnc-vnc-server
29

После этого его нужно включить в настройках Start → Preferences → Parpberry Pi Configuration, на вкладке Interfaces, установить галочку Enabled напротив VNC:

30
31

VNC-сервер будет запущен автоматически, если этого не произошло, его можно запустить вручную:

32
1
vncserver
33

На серверной стороне (Raspberry Pi 3) все готово...

34

Настройка на стороне Windows (на примере Windows 7)

Теперь необходимо настроить клиентскую сторону, в нашем случае Windows, но по сути она может быть любой, в т. ч. и Android. Скачиваем и запускаем VNC-клиент VNC Viewer и в меню File → New Connection создаем новое соединение:

35
36

В настройках соединения нужно указать только IP-адрес устройства к которому будет осуществлено подключение — он задавался в файле dhcpcd.conf. Через двоеточие указываем номер дисплея, заданный при запуске VNC-сервера (по-умолчанию 0 — можно не указывать). В поле name можно указать имя соединения, например, Raspberry Pi 3:

37
38 На заметку:
Если планируется работать только с одним рабочим столом, то можно указывать IP-адрес (в поле VNC Server) без его номера (192.168.0.99). Но если рабочих столов будет несколько (каждая новая команда vncserver создает новый рабочий стол), то подключаться к каждому из них нужно будет с указанием его номера после IP-адреса через двоеточие: 192.168.0.99:1, 192.168.0.99:2 и т. д.
39

Вновь созданное соединение появляется в главном окне:

40
41

Если все настройки сделаны корректно, то при двойном клике должно появиться окно с запросом имени пользователя и пароля, по умолчанию логин pi, пароль — raspberry:

42
Можно установить галочку Remember Password — в этом случае вводить пароль больше не потребуется
Можно установить галочку Remember Password — в этом случае вводить пароль больше не потребуется
43

После ввода пароля, появляется рабочий стол системы с заданным разрешением:

44
45
С 07.09.2017
неактуально

Убираем ошибку GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject

Очень вероятно, что при первом удаленном подключении на вновь отображенном рабочем столе будет висеть окно с ошибкой:

С выходом Raspbian Stretch With Desktop (4.9) проблема потеряла актуальность
46
GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject
GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject
47

Окно закрывается по кнопке ОК, и на работу никак не влияет, но жутко раздражает. Для того чтобы это окно больше не всплывало, при подключении к VNC-серверу, нужно проделать несложные манипуляции.

48

Сначала в редакторе главного меню, нужно добавить пункт Default applications for LXSession:

49
50

Далее зайти по добавленному пункту меню Default applications for LXSession и из вкладки Core applications, удалить значение lxpolkit поля Polkit agent, оставив это поле пустым.

51
52

После этого перезагружаем систему, запускаем VNC-сервер и при подключении VNC-клиента такой ошибки уже не будет.

53
С 07.09.2017
неактуально

Борьба с Х-курсором в терминале

На этом месте, кого-то может все устроить и на этом все закончится, но некоторых будет смущать X-образный курсор, вместо привычной стрелки.

С выходом Raspbian Stretch With Desktop (4.9) проблема потеряла актуальность
54
55

Для того, чтобы вернуть курсору стандартный стрелочный вид, вместо Х, необходимо в файле /home/pi/.vnc/xstartup (не путать с /etc/vnc/xstartup):

56
1
sudo nano /home/pi/.vnc/xstartup
57

добавить к строке xsetroot -solid grey параметры:

58
1
xsetroot -solid grey -cursor_name left_ptr
59

Перезагружаем и переподключаемся. Теперь результат такой, как надо:

60
61

Настройка автозапуска VNC-сервера

В актуальной версии (начиная с 4.8 от 05.07.2017) автозапуск VNC-сервера работает «из коробки».

62

Скрипт автозапуска находится в файле /etc/vnc/xstartup.

63

В случае, если необходимо добавлять при старте ещё один рабочий стол, это можно сделать, создав в папке .config/autostart (если папки autostart нет, её также нужно создать) файл автозапуска vncserver.desktop следующего содержания:

64
1
2
3
4
5
[Desktop Entry] Type=Application Name=VNCServer Exec=vncserver :1 StartupNotify=false
65

Остановка VNC Server

Для остановки VNC-сервера нужно выполнить команду:

66
1
sudo systemctl stop vncserver-x11-serviced.service
67

Подробнее на официальной странице https://www.realvnc.com/en/docs/raspberry-pi.html.

68

Копирование и вставка текста из приложений рабочего компьютера в приложения VNC-клиента

В актуальной версии (начиная с 4.8 от 05.07.2017) копирование и вставка текста между Windows-клиентом и Raspbian-сервером работают «из коробки».

69

Удаленный рабочий стол из любой точки мира через Интернет

Иногда возникает необходимость удаленного доступа к Малинке из-за пределов вашей домашней сети. Существует 2 метода: через выделенный статический IP-адрес, который доступен не каждому и при помощи программы TeamViewer. Первый способ сложен и здесь будет опущен.

70

Второй способ очень прост и эффективен. Для его реализации необходимо скачать TeamViewer Host для Debian (armv7 32bit) со страницы закачки. И установить приложение при помощи утилиты прямой установки приложений dpkg из файла .deb, предварительно скачав установочный файл:

71
1
2
wget https://download.teamviewer.com/download/linux/teamviewer-host_armhf.deb sudo dpkg --install teamviewer-host_armhf.deb
72

Но поскольку недостатком использования утилиты dpkg является то, что она работает с отдельными пакетами и не обрабатывает зависимости автоматически, установка прекратится. Но при этом утилита предоставит список зависимостей, которые можно установить командой:

73
1
sudo apt-get install -f
74

Готово, задаем пароль и теперь к клиенту можно подключаться с любого устройства с установленным приложением TeamViewer.

75
76

В завершение

Когда все настроено и работает, перед началом экспериментов, автор рекомендует, при помощи программы Win32DiskImager, сделать образ настроенной системы, чтобы в случае неудачных опытов её всегда можно было развернуть с этой точки.

77
78

Что почитать:

79

Похожие запросы:

  • Удалённый рабочий стол на Raspberry Pi. Настройка VNC.
  • Raspberry Pi – удаленный доступ к рабочему столу из Windows и Android
  • Настройка VNC на Raspberry Pi
  • Доступ к удаленному рабочему столу (VNC) Raspberry Pi / tightvnc
  • Desktop startup with VNC
  • TightVNC: remote mouse cursor is “X”
  • After setting up VNC, mouse pointer shows as «
  • Instructions how to change mouse cursor from «x» to arrow
  • Start a VNC Server on Raspbian on Boot
  • Auto start TightVncServer on Raspberry Pi
  • Running VNCServer at Startup
  • Setting up the Pi to Automatically Start a VNC Server Upon Bootup
  • Start VNC automatically
  • Autostart Raspberry pi VNC and server
  • Autorun other scripts when Rpi boots
  • Setting up VNC server on Raspberry Pi to autostart on reboot – Incoherent Musings
  • Automatically start VNC server on startup
  • How do I start VNC Server on boot?
  • Auto startup tightvncserver?
  • How to copy/paste text from remote system?
  • How to fix broken paste clipboard in VNC on Windows
  • Vncviewer clipboard operations like copy/cut+paste suddenly stops on linux
  • Copying and pasting text from/to VNC Server
  • Copy text between client and server; using the clipboard
comments powered by HyperComments