Как стать автором
Обновить

VNC сервер на Repka Pi — работаем с рабочим столом одноплатника дистанционно (Linux и Windows)

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 4K
Repka Pi 3
Repka Pi 3

Одноплатный компьютер Repka Pi - разработка компании НПО РэйнбовСофт (краткое наименование НПО РБС), где я имею честь работать. Проект создан в качестве Российского аналога Raspberry Pi, а значит, может служить веб сервером, маршрутизатором, домашним компьютером, а также использоваться в учебной робототехнике и системах автоматики. И много ещё где, кто плавал, тот знает.

У пользователей возникают многочисленные вопросы по использованию Repka Pi. Данная статья написана по следам вопросов и материалов от пользователей в группе обсуждения официального Телеграм канала.

Один из таких часто задаваемых вопросов - как установить VNC сервер на Repka Pi, чтобы подключаться к рабочему столу Репки удаленно с основных используемых компьютеров, использующих различные операционные системы. Данная статья отвечает на данный вопрос. Строго говоря, этот туториал относится не только к Repka Pi, но мы рассмотрим решение задачи именно на примере Repka Pi.

Структура материала в данной статье - для быстрой навигации

  1. Зачем VNC сервер на Repka Pi и вообще на одноплатниках?

  2. Установка VNC сервера на Repka Pi.

  3. Подключение по VNC к Репке с компьютера, на котором установлена операционная система Linux (на примере Ubuntu).

  4. Подключение к Repka Pi по VNC с компьютера, на котором установлена операционная система Windows.

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


Зачем VNC сервер на Repka Pi и вообще на одноплатниках?

Для чего может понадобиться устанавливать VNC на Репку?

Ответ прост: важной особенностью Репки и других подобных одноплатников является малый размер, благодаря которому она зачастую используется как составная часть демонстрационных стендов или других составных конструкций, которые не предусматривают постоянного подключения собственной клавиатуры, мыши и другой периферии. Подключиться удалённо с рабочего компа и что то проверить, настроить, установить и т.п., видя рабочий стол ОС - бывает очень удобно. Не для всех задач удобно и достаточно подключаться по ssh.

Репка пай 3 работает в на информационном стенде с данными продаж на плейсмаркетах
Репка пай 3 работает в на информационном стенде с данными продаж на плейсмаркетах

Поэтому, прежде чем отдать Репку для установки ее на демонстрационный стенд или в серверную комнату, необходимо подготовить ее к такому удаленному администрированию, установив на нее VNC сервер. Операционная система Repka OS базируется на Ubuntu 20, так что пользователи UNIX/Linux будут чувствовать себя, как дома.


Установка VNC сервера на Repka Pi

Прежде всего, устанавливаем программу на Repka Pi через терминал при помощи команды sudo apt install x11vnc, как показано на рисунке ниже.

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

x11vnc -usepw

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

Этот пароль надо обязательно запомнить, так как он будет нам необходим при каждом подключении к компьютеру Repka Pi. Ни в коем случае не потеряйте его!

Далее нажимаем Ctrl+C и выходим из утилиты.

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

Рассмотрим в качестве примера две операционные системы - Linux Ubuntu и Windows. Мы не привязываемся жестко к номеру версии операционной системы, поскольку данная инструкция достаточно универсальна и подойдет для различных версий упомянутых операционных систем и даже для других ОС.

Но прежде всего для этого нам необходимо узнать IP адрес Repka Pi в локальной сети. Для этого мы снова открываем терминал и вводим команду

ifconfig

Вывод данной команды выглядит следующим образом:

Нужный нам IP адрес помечен красным прямоугольником. В данном случае Репка подключена к сети по WiFi. Записываем IP и идем дальше - подключаться удалённо при помощи VNC клиента.

Если Вы собираетесь использовать Репку в качестве непрерывно работающего устройства для выполнения тех или иных задач и даже при вынужденной перезагрузке устройства не планируете подключать к нему клавиатуру и монитор, то лучше всего установить статический IP адрес. Не будем подробнее останавливаться на этом вопросе, так как с данной операцией вы наверняка или уже знакомы или сможете ознакомиться в большом количестве других материалов, так как это одна из типовых операций настройки операционной системы.


Подключение по VNC к Репке с компьютера, на котором установлена операционная система Linux (на примере Ubuntu)

Для установления удаленного подключения на компьютере, оснащенном операционной системой Linux Ubuntu, прежде всего устанавливаем утилиту gnome-connections через интерфейс командной строки при помощи команды 

sudo apt install gnome-connections

После окончания установки открываем утилиту, нажимаем на “+” и вводим параметр подключения по маске <имя пользователя>@<адрес Repka Pi>.  В нашем случае в роли пользователя выступает root, а IP адрес Repka Pi в локальной сети мы узнали при помощи ifconfig на предыдущем шаге. Получившийся параметр показан на рисунке ниже.

После ввода параметра в окне подключений выбираем connection type VNC, затем нажимаем на кнопку Connect и вводим пароль, который был задан в разделе “Установка VNC сервера на Repka Pi” (если помните, его необходимо было запомнить и ни в коем случае не терять - вот он и понадобился :-) ).

Окно ввода пароля выглядит следующим образом:

Окно ввода пароля
Окно ввода пароля

Вводим пароль и нажимаем на Sign In и если все прошло удачно, то вы получили доступ к интерфейсу компьютера Repka Pi. Теперь вы можете управлять компьютером Repka Pi с удаленного компьютера! Примерно вот так:

Справа монитор подключенный к Репке. Слева монитор рабочего компьютера на котором по VNC управляем рабочим столом Репки, которая справа. Сама Репка лежит на столе за мониторами примерно между ними :-)
Справа монитор подключенный к Репке. Слева монитор рабочего компьютера на котором по VNC управляем рабочим столом Репки, которая справа. Сама Репка лежит на столе за мониторами примерно между ними :-)

А что же для Windows? Не беспокойтесь, здесь все даже еще проще.


Подключение к Repka Pi по VNC с компьютера, на котором установлена операционная система Windows

Прежде всего вам необходимо скачать VNC-клиент для Windows. Вы можете это сделать, пройдя по ссылке https://www.tightvnc.com/download.html

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

Для этого в поле Remote Host введите локальный IP адрес Repka Pi (который был определен при помощи команды ifconfig) и укажите порт 5900 (по умолчанию, VNC работает на данном порту).

После заполнения поля Remote Host необходимо нажать на кнопку “Connect” и ввести пользовательский пароль, созданный в разделе “Установка VNC сервера на Repka Pi”. Вот так:

Теперь нажмите Ок.

Все готово. Можно работать с одноплатным компьютером Repka Pi удаленно по VNC соединению, пользуясь при этом всеми преимуществами графического интерфейса OS Windows. Как это выглядит на практике, вы можете посмотреть на видео внизу.


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

Для чего нужно настраивать авторазуск VNC сервера?

Как Вы наверняка уже догадались сами - это нужно для того, чтобы после перезапуска Репки (зная IP адрес, т.е. установив его статическим) мы могли сразу подключиться VNC-клиентом, не подключая к Репке клавиатуры и монитора и не выполняя запуск VNC сервера вручную.

И тут мы рассмотрим два варианта:

Первый вариант "лайтовый" и не очень удобен тем, что требует сначала пройти авторизацию в рабочем столе на Репке и уже после этого приложение будет запущено. Но в ряде случаев это как раз и нужно, например когда Вы явно хотите авторизоваться и тем самым явно дать возможность другим пользователям подключиться после этого.

Второй вариант позволит подключаться к рабочему столу ОС Репки не зависимо от состояния авторизации рабочего стола на самой Репке, так как службы имеют более высокий приоритет и запускаются в любом случае сразу после загрузки ядра. Немаловажно, что службы так же загружаются быстрее и ими можно управлять - останавливать, запускать и отключать, включать по мере необходимости. По сути это вариант более "серверный".

Итак, рассмотрим по порядку оба варианта.

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

После установки VNC сервера нам необходимо зайти в настройки операционной системы Repka OS и выбрать опцию “Сеансы и запуск”. Здесь при помощи нескольких простых шагов мы зададим конфигурацию сервера.

По результатам этой операции мы увидим окно, в котором необходимо нажать на кнопку “Добавить”. 

После нажатия на эту кнопку появится всплывающее окно “Добавить приложение”, которое позволит нам ввести необходимые параметры конфигурации VNC сервера. 

Заполняем форму. “Имя” и “Описание” могут быть любыми - главное, чтобы по этим полям мы могли понять, что данная запись отвечает за VNC сервер. А вот содержимое поля “Команда” определяется достаточно жестко:

x11vnc -usepw -display :0 -q -forever

Будьте внимательны: пропущенный пробел, лишний пробел, пропущенное двоеточие приведут к тому, что подключение будет отклонено. Правильный вид команды в окне подключений приведен ниже. Одна из частых ошибок - пропущенный пробел после слова display.

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

Автозапуск VNC сервера в качестве службы

Для запуска сервера VNC как службы воспользуемся systemd - очень крутой и много-функциональной подсистемой инициализации и управления службами в Linux. Это реально очень крутая подсистема, вытеснившая за последние годы init, мы не будем останавливаться подробно на всех её возможностях и используем лишь одну из самых простых возможностей - создание и запуск службы.

Для создания службы создаем файл

vnc-repka.service

в директории

/lib/systemd/system/

И записываем в этот файл следующее содержимое:

[Unit]
Description=Repka Vnc Service # Название службы
Requires=display-manager.service # Какая служба нужна для запуска
After=display-manager.service # После какой службы запускать

[Service]
ExecStart=x11vnc -xkb -noxrecord -noxfixes -noxdamage -auth guess -rfbauth /etc/x11vnc.pass -display :0 -q -forever # Команда выполняемая при старте
ExecStop=/usr/bin/killall x11vnc # Команда выполняемая при остановке
Restart=on-failure # В каком случае перезагружать службу
Restart-sec=2 # Время перезагрузки службы (сек.)

[Install]
WantedBy=multi-user.target # Уровень запуска службы

Далее задаём пароль для авторизации службы, делаем это командой (кавычки в пароле ставить не нужно - мы условно ими выделили часть команды, где Вам нужно будет задать свой пароль)

sudo x11vnc -storepasswd “ВАШ_ПАРОЛЬ” /etc/x11vnc.pass

теперь запустим службу vnc-repka командой

sudo systemctl enable vnc-repka.service

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

Ура!!!! Теперь после подключения к Репке VNC-клиентом мы сможем удалённо пройти авторизацию и продолжить работу с полноценным доступом ко всем возможностям рабочего стола.

Удалённая авторизация рабочего стола на Repka Pi с помощью VNC.
Удалённая авторизация рабочего стола на Repka Pi с помощью VNC.

В завершение хотелось бы рассказать о небольшой особенности поведения рабочего стола при дистанционном подключении когда к Репке физически не подключен монитор.

Если запустить репку без монитора или в процессе работы отключить монитор и подключиться через VNC или делать это при уже установленном VNC подключении, то можно увидеть, что есть изменения в работе системы - а именно: 1) пропали обои и 2) уменьшено разрешение.

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

Надеемся, что статья оказалась полезной для Вас!

Если остались вопросы, задавайте их в комментариях или в группе обсуждения официального канала в Телеграм, и мы постараемся быстро на них ответить.

Несколько полезных ссылок - чтобы узнать о проекте Repka Pi подробнее
  • Официальная страница проекта Repka Pi на сайте производителя - пока по адресу repka-pi.ru делает редирект на эту страницу, вроде скоро проект Repka Pi обзаведётся отдельным сайтом с кучей дополнительной информации, форумом, собственным интернет магазином и онлайн технической поддержкой.

  • Официальный Телеграм канал проекта Repka Pi.

  • Группа обсуждения и комментариев к постам официального канала в Телеграм проекта Repka Pi - там можно задать актуальные вопросы и пообщаться с теми, кто так же увлекается одноплатными компьютерами вообще и Репкой в частности.

  • Официальное сообщество в ВК компании разработчика, там нет нет, да и появятся новости проектов, в том числе и Репки.

Предыдущая статья о проекте Repka Pi, где было подробнее рассказано о целях и задачах этого Проекта.

Теги:
Хабы:
+3
Комментарии 0
Комментарии Комментировать

Публикации

Истории

Работа

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн