Raspberry Pi:Настройка/Удалённый доступ/VNC

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


VNC[1]

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

VNC (расшифровывается как Virtual Network Computing, что можно перевести как «виртуальные сетевые вычисления»)— это система удаленного доступа к рабочему столу, позволяющая управлять одним компьютером при помощи другого. Другими словами, команды от мыши и клавиатуры, подключенных к ведущему компьютеру (компьютеру-хосту), будут переданы ведомому компьютеру (компьютеру-реципиенту), экран которого будет постоянно обновляться в соответствии с полученными командами.

Рабочий стол Raspberry Pi будет показан в специальном окне вашего компьютера. Таким образом, вы сможете управлять Pi, как если бы она была прямо перед вами.

  • Установите на Pi пакет TightVNC (при помощи монитора или через SSH):
sudo apt-get install tightvncserver
  • Теперь запускаем сервер TightVNC, после чего система запросит у вас пароль для полного доступа (и опционально — пароль для ограниченного доступа, при котором пользователь сможет лишь смотреть на рабочий стол, а ввод данных с мыши и клавиатуры будет заблокирован):
tightvncserver
  • Запускаем VNC-сервер из терминала. В данном случае мы запускаем сессию на VNC-дисплее под номером 0 (:0) и в полном HD-разрешении:
vncserver :0 -geometry 1920x1080 -depth 24
  • Теперь устанавливаем и запускаем на вашем компьютере VNC-клиент. На Linux-машинах это можно сделать при помощи установки пакета xtightvncviewer (при помощи команды
sudo apt-get install xtightvncviewer

). Другой способ — загрузить TightVNC отсюда.

Автоматизация и запуск при загрузке

Чтобы вам для запуска VNC-сервера не приходилось каждый раз писать одну и ту же команду, ее можно упаковать в специальный файл, называемый shell-скриптом.

  • Сначала создаем файл, в котором будет содержаться этот shell-скрипт:
#!/bin/sh
vncserver :0 -geometry 1920x1080 -depth 24 -dpi 96
  • Сохраняем его, например, как vnc.sh
  • Делаем этот файл выполняемым:
chmod +x vnc.sh
  • Теперь вы можете запускать его в любое время при помощи следующей команды:
./vnc.sh

Чтобы этот скрипт запускался при загрузке, делаем следующее:

  • Залогиниваемся в терминале Pi через root:
sudo su
  • Переходим в директорию /etc/init.d/:
cd /etc/init.d/
  • Создаем новый файл, в котором будет содержаться следующий скрипт:
#! /bin/sh
# /etc/init.d/vncboot

### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

USER=pi
HOME=/home/pi

export USER HOME

case "$1" in
 start)
  echo "Starting VNC Server"
  #Insert your favoured settings for a VNC session
  su - pi -c "/usr/bin/vncserver :0 -geometry 1280x800 -depth 16 -pixelformat rgb565"
  ;;

 stop)
  echo "Stopping VNC Server"
  /usr/bin/vncserver -kill :0
  ;;

 *)
  echo "Usage: /etc/init.d/vncboot {start|stop}"
  exit 1
  ;;
esac

exit 0
  • Сохраняем этот файл, например, как vncboot
  • Делаем его выполняемым:
chmod 755 vncboot
  • Теперь делаем так, чтобы порядок загрузки полагался на зависимости:
update-rc.d /etc/init.d/vncboot defaults
  • Если это действие было выполнено успешно, вы увидите такое сообщение:
update-rc.d: using dependency based boot sequencing
  • Если нет — то такое:
update-rc.d: error: unable to read /etc/init.d//etc/init.d/vncboot
  • В этом случае пробуем следующую команду:
update-rc.d vncboot defaults
  • Теперь перезагружаем Raspberry Pi. При этой перезагрузке должен загрузиться и VNC-сервер.

Теперь вам нужно воспользоваться клиентской VNC-программой, установленной на вашем компьютере/ноутбуке, чтобы с ее помощью подключиться к VNC-серверу, установленному на Pi, и, собственно, начать ею управлять.

Дальнейшие шаги зависят от вашей операционной системы:

См.также

Внешние ссылки