README.md

    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.

    Перед сборкой

    Перед сборкой необходимо установить следующие пакеты:

    sudo apt install -y build-essential flex bison libssl-dev libelf-dev bc rsync cpio u-boot-tools
    

    Сборка

    Для сборки ядра необходимо выполнить следующие команды:

    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 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 4

    Учитывая то, что данный репозиторий является фактически форком репозитория ядра Linux было принято решение реализовывать его версионность на базе основной версии Linux, но с добавлением дополнительного значения, которое прописано по пути repka_configs/.version

    Как выглядит версия ядра Linux (с нашим дополнением):
     6.6.44-3
          │ │
          │ └── 3 - номер версии (доработка команды Repka Pi, именно она будет изменяться с новыми обновлениями)
          └── 6.6.44 - версия ядра Linux (по стандарту Linux)
    
    Конвейеры
    10 успешных
    0 с ошибкой