Ядро Linux

К СВЕДЕНИЮ

Репозиторий с ядром 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.

  1. Скопировать сгенерированный заранее конфигурационный файл:

    cp repka_configs/.config.old .
    
  2. Сконфигурировать ядро из ранее подготовленного конфигурационного файла:

    make olddefconfig
    
  3. Запустить сборку ядра:

    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 5 #

Сборка выполняется в репозитории repka-os_linux-rockchip.

Последовательность команд та же, что и для Repka Pi 4.

  1. Скопировать заранее подготовленный конфигурационный файл для Repka Pi 5:

    cp repka-configs/armbian-generated_linux-rk35xx-vendor.config .config
    
  2. Сконфигурировать ядро из ранее подготовленного конфигурационного файла:

    make olddefconfig
    
  3. Запустить сборку ядра:

    make -j$(nproc) bindeb-pkg
    
  4. После успешной сборки в директории уровнем выше (./..) появятся deb-пакеты ядра Linux для архитектуры arm64.

  5. Для Repka Pi 5 в дереве устройств используется DTB-файл:

    arch/arm64/boot/dts/rockchip/rk3588-repka-pi5.dtb
    

Установка ядра на Repka Pi 4 #

  1. В первую очередь необходимо загрузить 3 deb-пакета на плату Repka Pi 4 по любому удобному пути.
  2. После загрузки необходимо установить пакеты:
    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. Его необходимо распаковать:
    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:
    reboot
    

Установка ядра на Repka Pi 5 #

  1. Необходимо загрузить собранные deb-пакеты на плату Repka Pi 5 по любому удобному пути.
  2. После загрузки необходимо установить пакеты 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
    
  3. После установки необходимо убедиться, что на плате используется образ ядра, собранный из репозитория repka-os_linux-rockchip, и DTB-файл rk3588-repka-pi5.dtb.
  4. После обновления ядра необходимо перезагрузить 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

15 просмотров0 комментариев
0

Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Разделы

Навигация

ВойтиРегистрация