Raspberry Pi:Настройка/Удалённый доступ/VNC
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
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, и, собственно, начать ею управлять.
Дальнейшие шаги зависят от вашей операционной системы: