Настройка Raspberry Pi в режиме киоска
Режим киоска позволяет Raspberry Pi загружаться прямо в полноэкранное приложение или веб-страницу, минуя стандартный рабочий стол. Это идеальное решение для проектов, где устройство должно выполнять одну конкретную задачу, будучи защищённым от случайного или намеренного вмешательства пользователя. Типичные применения: информационные дисплеи (в музеях, аэропортах, магазинах), системы самозаписи, панели управления «умным домом», станции наблюдения или интерактивные зеркала (Magic Mirror).
Настройка Raspberry Pi в режиме киоска
Введение и область применения
Режим киоска позволяет Raspberry Pi загружаться прямо в полноэкранное приложение или веб-страницу, минуя стандартный рабочий стол. Это идеальное решение для проектов, где устройство должно выполнять одну конкретную задачу, будучи защищённым от случайного или намеренного вмешательства пользователя. Типичные применения: информационные дисплеи (в музеях, аэропортах, магазинах), системы самозаписи, панели управления «умным домом», станции наблюдения или интерактивные зеркала (Magic Mirror).
Необходимое оборудование
- Raspberry Pi: Модель 3 или новее (обязательно не менее 1 ГБ оперативной памяти).
- Блок питания: Соответствующий модели.
- Карта microSD: Для установки операционной системы.
- Монитор и кабель для его подключения к Raspberry Pi.
- Другой компьютер в вашей сети для первоначальной настройки карты microSD.
Начальная настройка системы с помощью Raspberry Pi Imager
- Загрузите и запустите Raspberry Pi Imager на своём обычном компьютере.
- Выберите операционную систему: Raspberry Pi OS (64-bit).
- Вставьте карту microSD и нажмите кнопку “CHOOSE STORAGE”, чтобы выбрать её.
- Перед записью нажмите значок шестерёнки (“Show advanced settings” или “Edit settings”), чтобы открыть меню настройки.
- Установите имя хоста (например,
pi-kiosk). - Создайте имя пользователя и надёжный пароль.
- Включите Configure wireless LAN и введите данные вашей Wi-Fi сети (SSID и пароль).
- На вкладке Services обязательно включите опцию Enable SSH.
- Установите имя хоста (например,
- Запишите образ на карту microSD.
Удалённое подключение и обновление системы (SSH)
После первого запуска Raspberry Pi подключитесь к нему удалённо с вашего обычного компьютера, чтобы продолжить настройку без монитора, клавиатуры и мыши.
- Откройте терминал на вашем основном компьютере.
- Подключитесь по SSH, используя заданное имя хоста:
1
ssh <ваше_имя_пользователя>@pi-kiosk.local
Введите пароль, созданный в Imager.
- Обновите операционную систему до последней версии:
1 2
sudo apt update sudo apt -y full-upgrade
Настройка режима киоска
Мы настроим браузер Chromium для работы в полноэкранном режиме киоска, который будет автоматически переключаться между двумя вкладками (например, raspberrypi.com и time.is/London).
- Установите утилиту
wtype, которая имитирует нажатие клавиш:1
sudo apt -y install wtype
- Создайте и отредактируйте файл автозапуска для оконного менеджера 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— гарантирует запуск в развёрнутом на весь экран окне.
Важно: Амперсанд
&в конце первой строки позволяет одновременно запустить браузер и скрипт переключения вкладок. - Создайте скрипт для автоматического переключения вкладок:
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). - Сделайте скрипт исполняемым и перезагрузите Raspberry Pi:
1 2
chmod +x ~/switchtab.sh sudo reboot
После перезагрузки устройство должно запуститься прямо в полноэкранном браузере, переключая вкладки каждые 10 секунд. При первом запуске вам может потребоваться временно подключить USB-мышь, чтобы закрыть всплывающие окна (например, с согласием на использование cookies) на отображаемых сайтах.
Повышение безопасности и надёжности
Устройства в режиме киоска часто работают без присмотра, поэтому критически важны меры безопасности.
- Физическая защита: Поместите Raspberry Pi в корпус, который делает USB-порты и другие разъёмы недоступными для посторонних.
- Настройка аутентификации SSH по ключам (вместо пароля):
- На вашем основном компьютере сгенерируйте пару ключей:
ssh-keygen -t ed25519. - Скопируйте публичный ключ на Raspberry Pi в файл
~/.ssh/authorized_keys. - Отключите вход по паролю в файле
/etc/ssh/sshd_config, изменив строкуPasswordAuthenticationнаno.
- На вашем основном компьютере сгенерируйте пару ключей:
- Режим «только для чтения» для 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 готов работать в качестве надёжного и защищённого информационного киоска. За основу этого проекта можно взять любую веб-страницу или веб-приложение, адаптировав команду запуска браузера и логику скриптов под ваши задачи.