Инструменты кастомизации Linux для Raspberry Pi
-
Этим летом я разослал больше 500 писем тем, кто кастомизирует дистрибутивы Linux для проектов на базе Raspberry Pi. Получив около 100 ответов, я выделил три самых распространенных причины для кастомизации операционной системы:
Причина первая - убрать лишнее
В своей сборке я хочу отключить установку больших пакетов, которые я никогда бы не запускал на Raspberry Pi, например, офис, игры и т.п.”, – вот что люди чаще всего говорят о причинах создания собственного образа для Raspberry Pi. И дело не в уменьшении размера образа, а в том, что люди просто не хотят держать неиспользуемые пакеты на своём устройстве.
Те, кто беспокоится о безопасности, отключают или удаляют неиспользуемые сервисы. Чем меньше запущенных сервисов в системе, тем меньше потенциальных уязвимостей, которыми может воспользоваться злоумышленник.
“Чем меньше пакетов установлено в системе, тем меньше запущенных в фоне программ и тем меньше операций записи на SD-карту”. Я никогда не задумывался об этом, но ведь действительно, уменьшение количества операций записи продлевает срок службы SD-карты. Изначально SD-карты были рассчитаны на хранение фотографий, а не на использование их в качестве хранилища корневого раздела операционной системы.
Причина вторая - упростить установку
Разработчики RetroPie, FreedomBox и других проектов с открытым исходным кодом подготавливают специальные сборки с предустановленным ПО для конечных пользователей. К примеру, раньше установка RetroPie на Raspberry Pi отнимала два часа, а сегодня, благодаря образу с предустановленным RetroPie это занимает десять минут. Чем проще процесс установки, тем больше пользователей пользуются приложением.
Разработчики ПО на заказ подготавливают сборки, чтобы конечным пользователям было проще начать работу с системой. Такой подход снижает стоимость внедрения проекта, и разработчику не нужно ехать в другой город, чтобы развернуть систему.
Причина третья - узнать новое
Некоторым просто нравится собирать операционные системы вручную. Они экспериментируют и таким образом каждый раз узнают для себя что-то новое: об архитектуре ARM, о ядре Linux, о debootstrap и т.д.
Теперь расскажу о трёх инструментах кастомизации ОС для Raspberry Pi, но на самом деле их намного больше.
rpi23-gen-image
https://github.com/drtyhlpr/rpi23-gen-image Консольная программа для создания образов с операционной системой Debian для Raspberry Pi 2 и Raspberry Pi 3. Принимает сотню параметров для конфигурации создаваемого образа, например:RELEASE=stretch RPI_MODEL=3 PASSWORD=12345 APT_INCLUDES=mc,vim IMAGE_NAME=myimage.img ./rpi23-gen-image.shСоздает минимальный образ myimage.img c Debian Stretch для Raspberry Pi 3 и устанавливает туда утилиты mc и vim. Пароль суперпользователя будет 12345. Полный список параметров смотрите здесь.
По умолчанию, rpi23-gen-image скачивает последнюю версию ядра Linux от разработчиков Raspberry Pi и кросскомпилирует под ARM. Разработчики предусмотрели 18 параметров для управления ядром, на случай, если стандартное поведение вам не подойдёт.
Чтобы воспользоваться скриптом нужна операционная система на базе Debian или его производных (Ubuntu, Linux Mint и пр.).
PiBakery
http://www.pibakery.org/PiBakery не создаёт образы с нуля в отличие от rpi23-gen-image, а используется для модификации уже существующих образов Raspbian. С помощью PiBakery невозможно перекомпилировать ядро, но в интуитивно-понятном графическом интерфейсе программы очень просто задать пароль суперпользователя и прописать настройки WIFI. 27 различных блоков с настройками сгруппированы на панели справа. Каждый блок это команда, которая будет выполнена после запуска операционной системы на Raspberry Pi, а поля ввода на блоках это параметры команд. Блоки объединяются в цепочки перетаскиванием из панели слева в рабочую область справа.
Операционная система последовательно выполнит команды из цепочки On First Boot(на скриншоте выше) при первом запуске, и будет выполнять команды из цепочки On Every Boot при каждой загрузке образа. Разработчик PiBakery рекомендует кастомизировать только официальные образы Raspbian.
PiBakery работает на компьютерах под управлением Windows, macOS и Linux(установка из исходников).
CusDeb
https://cusdeb.com/ru/ Онлайн конструктор образов для одноплатных компьютеров. Под капотом образы собираются с помощью rpi23-gen-image, но скоро перейдём на собственный скрипт под названием Pieman, чтобы не ограниваться Raspberry Pi, а собирать образы для других одноплатных компьютеров.
Для создания образа в CusDeb нужен только браузер. Пошаговый интерфейс предлагает выбрать операционную систему (Debian Jessie или Debian Stretch), выбрать целевое устройство (Raspberry Pi 2 или Raspberry Pi 3), выбрать нужные пакеты, создать пользователей и ещё пару настроек (часовой пояс, имя хоста и т.п.). Затем образ собирается на сервере и после сборки доступен для скачивания.
В этом посте я назвал три распростанённые причины, по которым люди кастомизируют операционные системы для Raspberry Pi, а так-же кратко рассказал о трёх инструментах кастомизации. Буду рад узнать ваше мнение об этом в комментариях.