Одноплатный компьютер Repka Pi - разработка компании НПО РэйнбовСофт (краткое наименование НПО РБС), где я имею честь работать. Проект создан в качестве Российского аналога Raspberry Pi, а значит, может служить веб сервером, маршрутизатором, домашним компьютером, а также использоваться в учебной робототехнике и системах автоматики. И много ещё где, кто плавал, тот знает.
У пользователей возникают многочисленные вопросы по использованию Repka Pi. Данная статья написана по следам вопросов и материалов от пользователей в группе обсуждения официального Телеграм канала.
Один из таких часто задаваемых вопросов - как установить VNC сервер на Repka Pi, чтобы подключаться к рабочему столу Репки удаленно с основных используемых компьютеров, использующих различные операционные системы. Данная статья отвечает на данный вопрос. Строго говоря, этот туториал относится не только к Repka Pi, но мы рассмотрим решение задачи именно на примере Repka Pi.
Repka Pi 3
Структура материала в данной статье - для быстрой навигации
Зачем VNC сервер на Repka Pi и вообще на одноплатниках?
Для чего может понадобиться устанавливать VNC на Репку?
Ответ прост: важной особенностью Репки и других подобных одноплатников является малый размер, благодаря которому она зачастую используется как составная часть демонстрационных стендов или других составных конструкций, которые не предусматривают постоянного подключения собственной клавиатуры, мыши и другой периферии. Подключиться удалённо с рабочего компа и что то проверить, настроить, установить и т.п., видя рабочий стол ОС - бывает очень удобно. Не для всех задач удобно и достаточно подключаться по ssh.
Репка пай 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 управляем рабочим столом Репки, которая справа. Сама Репка лежит на столе за мониторами примерно между ними :-)
А что же для Windows? Не беспокойтесь, здесь все даже еще проще.
Подключение к Repka Pi по VNC с компьютера, на котором установлена операционная система Windows
Прежде всего вам необходимо скачать VNC-клиент для Windows. Вы можете это сделать, пройдя по ссылке
Теперь установите программу, используя стандартную процедуру установки программ на Windows. Если установка прошла успешно, запустите клиент и произведите необходимые настройки для подключения.
Для этого в поле Remote Host введите локальный IP адрес Repka Pi (который был определен при помощи команды ifconfig
) и укажите порт 5900 (по умолчанию, VNC работает на данном порту).
После заполнения поля Remote Host необходимо нажать на кнопку “Connect” и ввести пользовательский пароль, созданный в разделе “Установка VNC сервера на Repka Pi”. Вот так:
Теперь нажмите Ок.
. Можно работать с одноплатным компьютером Repka Pi удаленно по VNC соединению, пользуясь при этом всеми преимуществами графического интерфейса OS Windows. Как это выглядит на практике, вы можете посмотреть на видео внизу.
![Видео об управлении компьютером Repka Pi удаленно из-под Windows через VNC]
Настройка автозапуска 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.
В завершение хотелось бы рассказать о небольшой особенности поведения рабочего стола при дистанционном подключении когда к Репке физически не подключен монитор.
Если запустить репку без монитора или в процессе работы отключить монитор и подключиться через VNC или делать это при уже установленном VNC подключении, то можно увидеть, что есть изменения в работе системы - а именно: 1) пропали обои и 2) уменьшено разрешение.
Если подключаться с подключенным и работающим монитором то работа штатная и мы будем видеть в окне VNC-клиента ровно тоже, что и на мониторе.
Надеемся, что статья оказалась полезной для Вас!
Если остались вопросы, задавайте их в комментариях или в группе обсуждения официального канала в Телеграм, и мы постараемся быстро на них ответить.
Несколько полезных ссылок - чтобы узнать о проекте Repka Pi подробнее
Официальная страница проекта Repka Pi на сайте производителя - пока по адресу repka-pi.ru делает редирект на эту страницу, вроде скоро проект Repka Pi обзаведётся отдельным сайтом с кучей дополнительной информации, форумом, собственным интернет магазином и онлайн технической поддержкой.
Официальный Телеграм канал проекта Repka Pi.
Группа обсуждения и комментариев к постам официального канала в Телеграм проекта Repka Pi - там можно задать актуальные вопросы и пообщаться с теми, кто так же увлекается одноплатными компьютерами вообще и Репкой в частности.
Официальное сообщество в ВК компании разработчика, там нет нет, да и появятся новости проектов, в том числе и Репки.
Предыдущая статья о проекте Repka Pi, где было подробнее рассказано о целях и задачах этого Проекта.