Чому Raspberry Pi вчиться показувати картинку ще до завантаження системи?

Розробники додали у прошивку інтерпретатор малого мовлення, який керує SPI- та I2C-екранами за пару секунд після подачі живлення. Це дозволяє робити власні заставки на портативних пристроях на базі Compute Module без зайвих етапів завантаження.

Портативні пристрої на Raspberry Pi стають меншими. Екрани ж залишаються тими самими — маленькі, SPI або I2C, підключені безпосередньо до GPIO. Коли ви вмикаєте такий гаджет, екран довго лишається чорним. Потім з'являється логотип ядра, потім консоль, потім графічна оболонка. Користувач чекає десятки секунд.

Thomas Griffiths, стажер літа 2026 року, написав розширення прошивки, яке виводить зображення за дві-три секунди. Мова не в прискоренні Linux. Мова в тому, щоб не чекати Linux взагалі.

Мова, яка розуміє регістри

Griffiths назвав її «splash language». Синтаксис запозичений у mipi-dbi — бібліотеки Noralf Trønnes для Linux-драйверів дисплеїв. Але інтерпретатор працює у завантажувачі, до старту ядра. Образ статично скомпільований у бінарник. Код керує шіною безпосередньо: задає регістри, шле байти, чекає мілісекунди.

Приклад для сегментного індикатора MAX7219 виглядає так:

define mled spi [copi 10] [cipo 9] [sclk 11] [cs 8] [freq 1000000]
mled 0x0c 0x00
mled 0x09 0x00
mled 0x0b 0x07
mled 0x0a 0x08
mled 0x0f 0x00
mled 0x01 0x00
mled 0x02 0x00
mled 0x03 0x7e
mled 0x04 0x0e
mled 0x05 0x0e
mled 0x06 0x4f
mled 0x07 0x37
mled 0x08 0x00
mled 0x0c 0x01

Це не скрипт. Це дамп команд ініціалізації. Кожен рядок — одна SPI-транзакція. Інтерпретатор просто відтворює їх у порядку запису. Тому можна керувати чим завгодно, що сидить на SPI: сегментниками, матрицями, навіть чековим принтером через bit-banged UART.

Як це увімкнути на своєму пристрої

Функція знаходиться у бета-гілці прошивки. Потрібно:

  1. Запустити sudo raspi-config, перейти в Advanced Settings → Beta Access.
  2. Виконати sudo apt update && sudo apt full-upgrade.
  3. Скласти свій опис екрану у файлі .splashasm, скомпілювати у бінарник утилітою з папки splashasm репозиторію raspberrypi/utils.
  4. Положити отриманий .bin у папку прошивки завантаження і прописати шлях у config.txt.

Коротка інструкція для бета-тестерів викладена розробниками окремо. Офіційного релізу ще немає. Pi 5 підтримується «майже повністю», але тестування не завершено — це з коментаря інженера PhilE.

Чому не просто U-Boot

M5Stack хотів заставку на своєму Cardputer Zero на базі CM0. Їхній шлях — додати U-Boot як окремий крок завантаження. Це працює, але ускладнює ланку: більше коду, більше місць для помилок, довший час до першого кадру. Розширення Griffiths усуває посередника. Завантажувач Raspberry Pi сам розуміє, як розбудити екран.

MIPI/DSI екрани — інша історія. Їхні контролери вимагають складнішої ініціалізації, часто з мікрокодом. У повідомленні сказано: підтримку не виключають, але це «дуже інша пропозиція». Конкретних термінів немає.

Що це змінює для автора кібердеку

Ви пишете прошивку екрану раз. Потім пристрій показує ваш логотип, анімацію або текст ще до появи будь-якого логу ядра. Екран не мигає. Не висить у чорному. Виглядає як готовий прилад, а не як плата в процесі завантаження.

Мова проста. Інструменти — у відкритому репозиторію. Обмеження — лише у вашій уяві та регістрах контролера дисплея.

The sources this article was written from

  • "Raspberry Pi
    https://www.raspberrypi.com/news/configure-early-boot-splash-screens-for-spi-and-i2c-based-displays/"

Read next