Телефонуйте » (+38) 096 227 41 41

Якщо хочете мати повний доступ до робочого столу Raspberry Pi, в тому числі, на своєму смартфоні, то зручно використати для підключення протокол VNC (Virtual Network Computing). Клієнта VNC зможете запустити на ПК під управлінням Windows, Mac або Linux чи на пристроях iOS, Android або Chrome і отримати доступ до робочого столу RPi через мережу.

VNC може працювати в трьох режимах – служби, користувача і віртуальному. Режими служби і користувача подібні, а різниця між режимом служби і віртуальним режимом зрозуміла з рис.:

В залежності від ліцензії є обмеження як на кількість запущених сеансів VNC, так і на використання режимів.

Встановлення сервера VNC

Встановлення сервера VNC на RPi є першим кроком. Виконайте наступну команду для встановлення TightVNC - легкого і з відкритим вихідним кодом сервера VNC:
sudo apt-get install tightvncserver
Тепер, коли сервер встановлений, він повинен бути запущений для генерації віддаленого сеансу. Сервер не запускається за замовчуванням, однак, може бути запущений вручну командою:
vncserver -geometry 1024x728 -depth 24
Де -geometry встановлює роздільну здатність віддаленого робочого столу, в даному випадку 1024x768, а -depth задає глибину кольору, в даному випадку 24 біта. Перший раз, коли ви запускаєте сервер VNC, буде запропоновано ввести пароль віддаленого доступу. Це пароль, який необхідно вводити, коли будете намагатися віддалено підключитися до робочого столу. На нього не варто покладатися як на єдиний засіб, щоб захистити загальний доступ до віддаленого робочого столу, але для приватної домашньої або офісної мережі він достатній, щоб обмежити доступ до інтерфейсу користувача RPi. Ви можете змінити пароль в будь-який час за допомогою інструменту vncpasswd.

При запуску vncserver буде повідомляти про кількість віртуальних екранів, які він створив. Під X (основної системи для багатьох віконних середовищ Linux), ви можете мати кілька дисплеїв, а фізичний робочий стіл за замовчуванням :0. Запущений vncserver, швидше за все, створить дисплей :1, до якого можна отримати доступ від клієнта VNC через порт 5901. Порт 5902 використовується для дистанційного віртуального робочого столу :2 і так далі. Ви можете змусити сервер VNC створити сеанс на певний дисплей, вказавши номер першим параметром:
vncserver :1 -geometry 1024x728 -depth 24
Можна знищити віддалений робочий стіл у будь-який час за допомогою:
vncserver -kill :1
де :1 - номер робочого столу.
Коротке навчальне відео про встановлення VNC-сервера:

Клієнти VNC

Для ПК

Є багато клієнтів VNC (часто названих VNC viewers) для Windows, OS X і Linux. Для Linux можете встановити пакет xtightvncviewer:
sudo apt-get install xtightvncviewer
Для використання на Ubuntu:
sudo apt-get install vncviewer
Для Windows можете отримати переглядача з сайту TightVNC.
Під час установки на Windows вам буде запропоновано на вибір Typical, Custom або Complete. Нам потрібний всього лише клієнт VNC, а не сервер, тому вибирайте Custom. Потім знайдіть в меню TightVNC Server і виберіть Entire feature will be unavailable (Компонент буде повністю недоступний).

Натисніть кнопку Next. Зніміть прапорець про брандмауер Windows і знову натисніть кнопку Next, потім Install.
Після того, як установка буде завершена, ви повинні знайти TightVNC Viewer в меню Пуск. Коли ви запустите його, то відкриється діалогове вікно, зображене нижче. Вам потрібно ввести IP-адресу RPi з номером екрану через двокрапку (:0 або :1). Наприклад: 192.168.0.6:1

Натисніть кнопку Connect і буде запропоновано ввести пароль, який був вказаний вами раніше при встановленні сервера VNC на RPi. Після цього ви повинні побачити робочий стіл свого RPi.
Інші безкоштовні клієнти VNC для різних операційних систем можна завантажити за посиланнями:
- Real VNC
- Ultra VNC
Для підключення до RPi, запустіть переглядач VNC, вказавши номер робочого столу:

Для Mac OS X є вбудований VNC-додаток, тому ви зможете використати VNC без установки програмного забезпечення. З Finder, виберіть Go -> Connect to Server… і введіть vnc://192.168.1.10 (IP-адресу RPi) для підключення.

Для смартфону

Ви також можете встановити клієнт VNC на своєму смартфоні і отримати з нього доступ до робочого столу RPi. Для Android VNC-клієнти доступні для завантаження за посиланнями:
- FastVNCClient
- AndroidVNC
- RealVNC.viewer.android
Можна завантажити будь-якого клієнта VNC для підключення до сервера VNC на RPi. Я використовую RealVNC, але будь-який інший клієнт VNC повинен працювати, якщо правильно введені параметри:
Nick: pi (або інший користувач)
address: ip_address_RPi
port: 5901
password: ваш_пароль
Touch Mouse; D-Pad Pan; Mouse pointer
control mode: TouchPad

Переконайтеся, що замінили ip_address_RPi і ваш_пароль власними налаштуваннями.

Один і той же екран на HDMI і на клієнті VNC

VNC Viewer може бачити те ж саме, що бачить користувач, який сидить перед комп'ютером, коли він входить в систему.
VNC-сервер автоматично зупиняється (VNC Viewer також відключається і не може знову підключитися), як тільки поточний користувач виходить з системи. Іншими словами, екран авторизації не може бути віддаленим.
Для використання такого режиму ви повинні встановити на RPi x11vnc і налаштувати його, щоб отримати один і той же екран на HDMI і на клієнті VNC:
apt-get install x11vnc
потім запустити команду x11vnc на RPi з параметрами:
x11vnc -display :0 -usepw -listen IP_of_pi -allow allowed_ip_address
де
-display  : номер екрану для під’єднання
-usepw     : використовувати пароль для захисту
-listen   :  IP-адреса сервера (IP-адреса RPi - IP_of_pi)
-allow   :    IP-адреси клієнта, який підключається (IP-адреса клієнта - allowed_ip_address)
Для того, щоб встановити пароль на свій VNC-доступ, можете скористатися командою:
x11vnc -storepasswd
Тепер можемо використати клієнт VNC на своєму ПК, щоб отримати доступ до робочого столу RPi.
Більше про використання параметрів x11vnc на karlrunge.com.

Автоматизація та запуск VNC при завантаженні

Ви можете створити простий файл з командою для запуску сервера VNC на RPi, щоб не запам'ятовувати його.
Відкрийте редактор nano, щоб створити файл для автозапуску Tight VNC Server:

sudo nano /etc/init.d/tightvncserver

Введіть наступне (або копіюйте і вставте):

#!/bin/sh
# /etc/init.d/tightvncserver
# Set the VNCUSER variable to the name of the user to start tightvncserver under
VNCUSER='pi'
case "$1" in
  start)
    su $VNCUSER -c '/usr/bin/tightvncserver :1'
    echo "Starting TightVNC server for $VNCUSER"
    ;;
  stop)
    pkill Xtightvnc
    echo "Tightvncserver stopped"
    ;;
  *)
    echo "Usage: /etc/init.d/tightvncserver {start|stop}"
    exit 1
    ;;
esac
exit 0

Натисніть CTR+X, потім Y, щоб зберегти, а далі Enter, щоб зберегти під тим же іменем..
Відредагуйте права доступу і до файлу, щоб він став виконуваним і активним:

sudo chmod 755 /etc/init.d/tightvncserver
sudo update-rc.d tightvncserver defaults

Перезавантажте RPi і тепер сервер VNC повинен завантажитися після вмикання RPi.

Якщо ж необхідно, щоб і x11vnc-сервер запускався разом з LXDE, то виконайте наступні команди в терміналі:

sudo bash
cd .config
mkdir autostart
cd autostart
nano x11vnc.desktop

У вікні редактора, яке відкрилось, введіть:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Exec=x11vnc -forever -usepw -display :0 –ultrafilexfer
StartupNotify=false
Terminal=false
Hidden=false

Звережіть файл за допомогою Ctrl+X і Y та закрийте редактор nano.
Тепер VNC-сервер буде запускатися щоразу, коли стартує LXDE. Залишилось переконатися, що ви вибрали параметр конфігурації "Boot to desktop", який встановлюється у панелі конфігурування через "sudo raspi-config", щоб мати бездоганну роботу після перезавантаження.
За замовчуванням x11vnc-сервер використовує низький дозвіл екрану, тому розкоментуйте рядок hdmi_force_hotplug=1 в /boot/config.txt та перезавантажте RPi, щоб зміни вступили в дію.

Висновки

Тепер, коли встановлено сервер VNC, ви можете отримати доступ до повного робочого столу через мережу за допомогою клієнта VNC. Навіть якщо ваш RPi підключений до телевізора або монітора, це відмінний спосіб, щоб включити віддалене адміністрування пристрою. Якщо коли-небудь вам знадобиться зупинити сервер VNC, то можете скористатися наступною командою:
sudo service vncserver stop
VNC-сервер може бути запущений знову шляхом заміни параметра stop на параметр start в наведеній команді.

Завдання та питання для перевірки

1. Знайдіть та встановіть на свій ПК клієнта VNC Real VNC Viewer. Організуйте доступ до RPi зі свого робочого комп’ютера, попередньо запустивши VNC server на RPi з використанням доступу через SSH.
2. Знайдіть і завантажте на свій смартфон клієнта VNC RealVNC.viewer.android. Отримайте доступ до робочого столу RPi зі свого смартфону. При необхідності, змініть параметри запуску VNC-сервера для кращого відображення на екрані гаджета.
3. Встановіть x11vnc на RPi та перевірте описані вище властивості VNC.
4. Організуйте автоматичний запуск сервера VNC при вмиканні RPi та перевірте його роботу.

Попереднє заняття - Наступне заняття

Новини

  • SDR в IoT

    iotSDR пропонує платформу розробок для IoT-радіо та мережевих доменів. На платі два передавачі Microchip AT86RF215, для вводу-виводу модему на Xilinx ZYNQ SoC, приймач GNSS MAX2769 для GPS, Galileo, BieDou та Glonass. Плата сумісна з ПЗ GNURadio SDR. Дозволяє розробити протоколи фізичного рівня LoRa, SigFox, WightLess, Bluetooth, BLE, 802.15.4, ZigBee тощо для IoT, або шлюз IoT через TheThingsNetwork, LPWAN або Google Thread. Пам'ять EEPROM: 1x AT24MAC602 , flash-пам'ять: 1x QSPI 128 Мб, RAM: 256 MБ DDR3,слот для Micro SD карти, входи/виходи: 2x 8-бітних інтерфейси PL, інтерфейс 8-бітного PS, Gigabit Ethernet, USB 2.0 (USB3310), USB 2.0 (CP2104), 2x SMA RF-роз'єми для приймача діапазонів IoT, 2x SMA RF-роз'єми для приймача 2,4 ГГц , RF-роз'єм приймач GNSS, FPGA-роз'єм JTAG для програмування. Розміри плати: 76,2 мм x 101,6 мм.

     

    in Новини

Записатися на курс