Был момент, когда я только установил Raspbery Pi OS на свою малинку, и поскольку она мне необходима не только для доступа с консоли, стал думать, как сделать так, чтобы можно было подключиться к ней по VNC.

Сам VNC-Server уже установлен в Raspbery Pi OS, необходимо только пометить галочкой VNC Enable в меню Paspberry Pi Configuration.

Находится в главном меню — Параметры

Но счастье было не долгим, и как оказалось, этого мало 🙂

Этот пункт лишь включает VNC в текущей сессии пользователя, и никак не стартует после перезагрузки.

Ну что ж. Теперь добавим VNC-сервер в автозагрузку:

После открытия терминала, сразу вводим следующие команды:

cd .config

Теперь необходимо создать папку autostart куда мы будем добавлять наши приложение, для которых необходима автозагрузка. командой ls проверяем, не существует ли она уже (если вдруг ранее, что-то мы уже делали и забыли).

Вывод будет примерно следующим:

[email protected]:~/.config $ ls
chromium libfm lxpanel lxtask.conf lxterminal menus pcmanfm user-dirs.dirs user-dirs.locale

Как можно заметить, нужно папки у нас нет, а значит создаем папку:

mkdir autostart

Затем переходим внутрь:

cd autostart

И создаем файл, автоматически открыв его в редакторе nano:

nano tightvnc.desktop

Файл может быть произвольного названия, но старайтесь давать файлам краткие и говорящие названия, чтобы потом не запутаться, для чего у нас существует этот файл. Очень сложно будет потом понять, что именно у нас стоит в автозагрузках, если файл будет называться например «avtozagruzka» 🙂

Ну и наконец, в открывшемся редакторе, необходимо указать сами параметры:

[Desktop Entry]

Type=Application

Name=TightVNC

Exec=vncserver :1 -geometry 1280×1024 -depth 24

StartupNotify=false

Так выглядят параметры автозагрузки VNC-сервера

На этом все. Можно смело выполнять reboot и VNC-сервер у нас стартует автоматом с системой.

И все ведь хорошо, правда? Но только до тех пор, пока у вас подключен какой-нибудь монитор/телевизор к вашей малинке. И видеовыход определяется. Если же нет, есть шанс в VNC Viewer увидеть следующую печальную картину:

Невозможно отобразить рабочий стол

А происходит это потому, что VNC не может определить, в каком разрешении отдавать вам картинку, т.к. никакого видео-сигнала в данный момент нет. Решение как оказалось довольно простое.

В том же терминале (предварительно подключившись по SSH, либо подключив монитор и зайдя в терминал уже непосредственно на малинке) вводим команду:

sudo raspi-config

Открывается окно с конфигурационным меню, и наc интересует пункт 7 Advanced Options. Выбираем его:

пункт 7 Advanced Options

Теперь нас интересует пункт А5 Resolutions, который позволяет устанавливать необходимые параметры экрана:

Я установил себе немного: 1280х1024, т.к. использовать разрешение на максимум — а это значит, что по-умолчанию GUI будет использовать именно это разрешение даже тогда, когда вы не планируете подключаться к своему устройству, что может также негативно сказываться на производительности (насколько сильно, не тестировал, но нагрузка на ЦПУ возрастает).

Выбор необходимого разрешения DMT Mode 35 1280×1024 60Hz 5:4

Выбираем ОК, перезагружаемся, и благополучно наслаждаемся нашим удаленным рабочим столом, даже без подключенного физически монитора: