# Linux Kernel for Repka Pi 4 Данный репозиторий содержит исходный код ядра Linux для платы Repka Pi 4. **Версии необходимых утилит для сборки:** | Утилита | Версия | |-----------------|----------| | 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. ## Перед сборкой Перед сборкой необходимо установить следующие пакеты: ```bash sudo apt install -y build-essential flex bison libssl-dev libelf-dev bc rsync cpio u-boot-tools ``` ## Сборка Для сборки ядра необходимо выполнить следующие команды: 1. Скопировать сгенерированный заранее конфигурационный файл (для того, чтобы каждый раз не конфигурировать ядро): ```bash cp repka_configs/.config.old . ``` 2. Сконфигурировать ядро из ранее готового конфигурационного файла. ```bash make olddefconfig ``` 3. Запустить сборку ядра: ```bash make -j$(nproc) bindeb-pkg ``` 4. После успешной сборки в директории выше (./..) появятся следующие файлы: ``` ├── 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 4 1. В первую очередь необходимо загрузить 3 deb-пакета на плату Repka Pi 4 по любому удобному пути. 2. После загрузки необходимо установить пакеты: ```bash 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 ``` 3. В данный момент после установки deb-пакета в директории /boot/ появляется заархивированный файл ядра vmlinuz-6.6.44. Его необходимо распаковать: ```bash 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 ``` 4. После распаковки необходимо перезагрузить Repka Pi 4: ```bash reboot ``` ## Как формируется версия ядра для Repka Pi 4 Учитывая то, что данный репозиторий является фактически форком репозитория ядра Linux было принято решение реализовывать его версионность на базе основной версии Linux, но с добавлением дополнительного значения, которое прописано по пути repka_configs/.version ``` Как выглядит версия ядра Linux (с нашим дополнением): 6.6.44-3 │ │ │ └── 3 - номер версии (доработка команды Repka Pi, именно она будет изменяться с новыми обновлениями) └── 6.6.44 - версия ядра Linux (по стандарту Linux) ```