Пост

Настройка Raspberry Pi в режиме киоска

Режим киоска позволяет Raspberry Pi загружаться прямо в полноэкранное приложение или веб-страницу, минуя стандартный рабочий стол. Это идеальное решение для проектов, где устройство должно выполнять одну конкретную задачу, будучи защищённым от случайного или намеренного вмешательства пользователя. Типичные применения: информационные дисплеи (в музеях, аэропортах, магазинах), системы самозаписи, панели управления «умным домом», станции наблюдения или интерактивные зеркала (Magic Mirror).

Настройка Raspberry Pi в режиме киоска

Введение и область применения

Режим киоска позволяет Raspberry Pi загружаться прямо в полноэкранное приложение или веб-страницу, минуя стандартный рабочий стол. Это идеальное решение для проектов, где устройство должно выполнять одну конкретную задачу, будучи защищённым от случайного или намеренного вмешательства пользователя. Типичные применения: информационные дисплеи (в музеях, аэропортах, магазинах), системы самозаписи, панели управления «умным домом», станции наблюдения или интерактивные зеркала (Magic Mirror).

Необходимое оборудование

  • Raspberry Pi: Модель 3 или новее (обязательно не менее 1 ГБ оперативной памяти).
  • Блок питания: Соответствующий модели.
  • Карта microSD: Для установки операционной системы.
  • Монитор и кабель для его подключения к Raspberry Pi.
  • Другой компьютер в вашей сети для первоначальной настройки карты microSD.

Начальная настройка системы с помощью Raspberry Pi Imager

  1. Загрузите и запустите Raspberry Pi Imager на своём обычном компьютере.
  2. Выберите операционную систему: Raspberry Pi OS (64-bit).
  3. Вставьте карту microSD и нажмите кнопку “CHOOSE STORAGE”, чтобы выбрать её.
  4. Перед записью нажмите значок шестерёнки (“Show advanced settings” или “Edit settings”), чтобы открыть меню настройки.
    • Установите имя хоста (например, pi-kiosk).
    • Создайте имя пользователя и надёжный пароль.
    • Включите Configure wireless LAN и введите данные вашей Wi-Fi сети (SSID и пароль).
    • На вкладке Services обязательно включите опцию Enable SSH.
  5. Запишите образ на карту microSD.

Удалённое подключение и обновление системы (SSH)

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

  1. Откройте терминал на вашем основном компьютере.
  2. Подключитесь по SSH, используя заданное имя хоста:
    1
    
    ssh <ваше_имя_пользователя>@pi-kiosk.local
    

    Введите пароль, созданный в Imager.

  3. Обновите операционную систему до последней версии:
    1
    2
    
    sudo apt update
    sudo apt -y full-upgrade
    

Настройка режима киоска

Мы настроим браузер Chromium для работы в полноэкранном режиме киоска, который будет автоматически переключаться между двумя вкладками (например, raspberrypi.com и time.is/London).

  1. Установите утилиту wtype, которая имитирует нажатие клавиш:
    1
    
    sudo apt -y install wtype
    
  2. Создайте и отредактируйте файл автозапуска для оконного менеджера labwc:
    1
    
    nano ~/.config/labwc/autostart
    

    Добавьте следующие две строки:

    1
    2
    
    chromium https://raspberrypi.com https://time.is/London --kiosk --noerrdialogs --disable-infobars --no-first-run --enable-features=OverlayScrollbar --start-maximized &
    ~/switchtab.sh
    

    Пояснение параметров Chromium:

    • --kiosk — запускает браузер в полноэкранном режиме киоска.
    • --noerrdialogs — подавляет диалоги ошибок.
    • --disable-infobars — отключает информационные панели (например, запрос на использование браузера по умолчанию).
    • --no-first-run — пропускает начальную настройку при первом запуске.
    • --start-maximized — гарантирует запуск в развёрнутом на весь экран окне.

    Важно: Амперсанд & в конце первой строки позволяет одновременно запустить браузер и скрипт переключения вкладок.

  3. Создайте скрипт для автоматического переключения вкладок:
    1
    
    nano ~/switchtab.sh
    

    Вставьте следующий код:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    #!/bin/bash
    # Найти ID процесса браузера Chromium
    chromium_pid=$(pgrep chromium | head -1)
    # Ждать, пока браузер запустится
    while [[ -z $chromium_pid ]]; do
      sleep 5
      chromium_pid=$(pgrep chromium | head -1)
    done
    # Бесконечный цикл для отправки Ctrl+Tab каждые 10 секунд
    while true; do
      wtype -M ctrl -P Tab -p Tab
      sleep 10
    done
    

    Сохраните файл (Ctrl+X, затем Y, затем Enter).

  4. Сделайте скрипт исполняемым и перезагрузите Raspberry Pi:
    1
    2
    
    chmod +x ~/switchtab.sh
    sudo reboot
    

    После перезагрузки устройство должно запуститься прямо в полноэкранном браузере, переключая вкладки каждые 10 секунд. При первом запуске вам может потребоваться временно подключить USB-мышь, чтобы закрыть всплывающие окна (например, с согласием на использование cookies) на отображаемых сайтах.

Повышение безопасности и надёжности

Устройства в режиме киоска часто работают без присмотра, поэтому критически важны меры безопасности.

  1. Физическая защита: Поместите Raspberry Pi в корпус, который делает USB-порты и другие разъёмы недоступными для посторонних.
  2. Настройка аутентификации SSH по ключам (вместо пароля):
    • На вашем основном компьютере сгенерируйте пару ключей: ssh-keygen -t ed25519.
    • Скопируйте публичный ключ на Raspberry Pi в файл ~/.ssh/authorized_keys.
    • Отключите вход по паролю в файле /etc/ssh/sshd_config, изменив строку PasswordAuthentication на no.
  3. Режим «только для чтения» для SD-карты: Эта настройка предотвращает повреждение файловой системы при внезапном отключении питания и продлевает срок службы карты.
    • Запустите sudo raspi-config.
    • Перейдите в Performance Options > Overlay File System.
    • Включите наложение файловой системы и защиту загрузочного раздела от записи.
    • Для внесения изменений в систему этот режим можно временно отключить в raspi-config.

Типичные проблемы и решения

Проблема: Не удаётся подключиться по SSH с помощью имени хоста (например, pi-kiosk.local).

  • Решение: Используйте IP-адрес Raspberry Pi. Найдите его в настройках вашего роутера или используйте сканер сети. Подключайтесь командой ssh <пользователь>@<ip_адрес>.

Проблема: Скрипт переключения вкладок не работает, браузер «зависает» на одной странице.

  • Решение: Убедитесь, что в файле ~/.config/labwc/autostart в конце первой строки стоит амперсанд &. Проверьте права на выполнение скрипта: ls -la ~/switchtab.sh. В начале файла должна быть строка #!/bin/bash.

Проблема: Браузер отображает панели управления или диалоговые окна, которые мешают работе киоска.

  • Решение: Убедитесь, что в команде запуска Chromium присутствуют все ключи из инструкции, особенно --noerrdialogs и --disable-infobars. Также может помочь очистка данных браузера перед финальной настройкой.

Проблема: После включения режима «только для чтения» невозможно установить обновления или изменить конфигурацию.

  • Решение: Это ожидаемое поведение. Временно отключите Overlay File System через sudo raspi-config, перезагрузитесь, внесите необходимые изменения, а затем снова включите защиту от записи.

Проблема: Изображение на экране нестабильно или пропадает.

  • Решение: Проверьте надёжность подключения кабеля к дисплею и Raspberry Pi. Убедитесь, что блок питания обеспечивает достаточную мощность (рекомендуется официальный блок питания).

Теперь ваш Raspberry Pi готов работать в качестве надёжного и защищённого информационного киоска. За основу этого проекта можно взять любую веб-страницу или веб-приложение, адаптировав команду запуска браузера и логику скриптов под ваши задачи.

Авторский пост защищен лицензией CC BY 4.0 .

© evdokimoff. Некоторые права защищены.

Использует тему Chirpy для Jekyll