К СВЕДЕНИЮ
Репозиторий с ядром Linux для Repka Pi 3 на данный момент недоступен в открытом виде.
Репозиторий с ядром Linux для Repka Pi 4 доступен по ссылке: repka-os_kernel
Репозиторий с ядром Linux для Repka Pi 5 доступен по ссылке: repka-os_linux-rockchip
Документ описывает сборку ядра Linux для плат Repka Pi 4 и Repka Pi 5.
Для Repka Pi 5 сборка выполняется на той же машине и той же последовательностью команд, что и для Repka Pi 4. Отличаются только:
- используемый репозиторий;
- заранее подготовленный конфигурационный файл;
- целевой DTB-файл платы.
Версии необходимых утилит для сборки:
| Утилита | Версия |
|---|---|
| git | 2.43.0 |
| gcc | 4:11.2.0-1ubuntu1 |
| bc | 1.07.1-3build1 |
| bison | 2:3.8.2+dfsg-1build1 |
| build-essential | 12.9ubuntu3 |
| cpio | 2.13+dfsg-7ubuntu0.1 |
| flex | 2.6.4-8build2 |
| libelf-dev | :arm64 0.186-1build1 |
| libssl-dev | :arm64 3.0.2-0ubuntu1.19 |
| rsync | 3.2.7-0ubuntu0.22.04.4 |
| u-boot-tools | 2022.01+dfsg-2ubuntu2.6 |
Примечание:
Сборка осуществлялась на ОС Linux Ubuntu 22.04.5 LTS с архитектурой aarch64.
Перед сборкой #
Перед сборкой необходимо установить следующие пакеты:
sudo apt install -y build-essential flex bison libssl-dev libelf-dev bc rsync cpio u-boot-tools
Сборка ядра #
Repka Pi 4 #
Сборка выполняется в репозитории repka-os_kernel.
-
Скопировать сгенерированный заранее конфигурационный файл:
cp repka_configs/.config.old . -
Сконфигурировать ядро из ранее подготовленного конфигурационного файла:
make olddefconfig -
Запустить сборку ядра:
make -j$(nproc) bindeb-pkg -
После успешной сборки в директории уровнем выше (
./..) появятся следующие файлы:├── repka-os_kernel <-- директория, в которой выполнялась команда make ├── linux-headers-6.6.443_6.6.443-<Хэш коммита>-<Версия сборки>_arm64.deb ├── linux-image-6.6.443_6.6.443-<Хэш коммита>-<Версия сборки>_arm64.deb └── linux-libc-dev_6.6.443-<Хэш коммита>-<Версия сборки>_arm64.deb
Repka Pi 5 #
Сборка выполняется в репозитории repka-os_linux-rockchip.
Последовательность команд та же, что и для Repka Pi 4.
-
Скопировать заранее подготовленный конфигурационный файл для Repka Pi 5:
cp repka-configs/armbian-generated_linux-rk35xx-vendor.config .config -
Сконфигурировать ядро из ранее подготовленного конфигурационного файла:
make olddefconfig -
Запустить сборку ядра:
make -j$(nproc) bindeb-pkg -
После успешной сборки в директории уровнем выше (
./..) появятся deb-пакеты ядра Linux для архитектурыarm64. -
Для Repka Pi 5 в дереве устройств используется DTB-файл:
arch/arm64/boot/dts/rockchip/rk3588-repka-pi5.dtb
Установка ядра на Repka Pi 4 #
- В первую очередь необходимо загрузить 3 deb-пакета на плату Repka Pi 4 по любому удобному пути.
- После загрузки необходимо установить пакеты:
dpkg -i linux-headers-6.6.443_6.6.443-<Хэш коммита>-<Версия сборки>_arm64.deb dpkg -i linux-image-6.6.443_6.6.443-<Хэш коммита>-<Версия сборки>_arm64.deb dpkg -i linux-libc-dev_6.6.443-<Хэш коммита>-<Версия сборки>_arm64.deb - В данный момент после установки deb-пакета в директории
/boot/появляется заархивированный файл ядраvmlinuz-6.6.44. Его необходимо распаковать:gunzip -c /boot/vmlinuz-6.6.44 > /boot/vmlinuz-6.6.44_unpack mv /boot/vmlinuz-6.6.44_unpack /boot/vmlinuz-6.6.44 ln -sf /boot/vmlinuz-6.6.44 /boot/Image - После распаковки необходимо перезагрузить Repka Pi 4:
reboot
Установка ядра на Repka Pi 5 #
- Необходимо загрузить собранные deb-пакеты на плату Repka Pi 5 по любому удобному пути.
- После загрузки необходимо установить пакеты
linux-headers,linux-imageиlinux-libc-dev, полученные на этапе сборки:dpkg -i linux-headers-<Версия ядра>_arm64.deb dpkg -i linux-image-<Версия ядра>_arm64.deb dpkg -i linux-libc-dev_<Версия ядра>_arm64.deb - После установки необходимо убедиться, что на плате используется образ ядра, собранный из репозитория
repka-os_linux-rockchip, и DTB-файлrk3588-repka-pi5.dtb. - После обновления ядра необходимо перезагрузить Repka Pi 5:
reboot
Как формируется версия ядра для Repka Pi 4 #
Учитывая то, что данный репозиторий является фактически форком репозитория ядра Linux, было принято решение реализовывать его версионность на базе основной версии Linux, но с добавлением дополнительного значения, которое прописано по пути repka_configs/.version.
Как выглядит версия ядра Linux (с нашим дополнением):
6.6.44-3
│ │
│ └── 3 - номер версии (доработка команды Repka Pi, именно она будет изменяться с новыми обновлениями)
└── 6.6.44 - версия ядра Linux (по стандарту Linux)
Как формируется версия ядра для Repka Pi 5 #
Для Repka Pi 5 версия ядра формируется на базе версии ядра Linux из репозитория repka-os_linux-rockchip с добавлением локального суффикса, указанного в конфигурации ядра:
CONFIG_LOCALVERSION="-repka-pi5"
Пример итоговой версии:
6.1.115.1-repka-pi5