arch | ||
block | ||
certs | ||
crypto | ||
Documentation | ||
drivers | ||
fs | ||
include | ||
init | ||
io_uring | ||
ipc | ||
kernel | ||
lib | ||
LICENSES | ||
mm | ||
net | ||
repka_configs | ||
rust | ||
samples | ||
scripts | ||
security | ||
sound | ||
tools | ||
usr | ||
virt | ||
.clang-format | ||
.cocciconfig | ||
.get_maintainer.ignore | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.rustfmt.toml | ||
COPYING | ||
CREDITS | ||
Kbuild | ||
Kconfig | ||
MAINTAINERS | ||
Makefile | ||
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
Сборка
Для сборки ядра необходимо выполнить следующие команды:
-
Скопировать сгенерированный заранее конфигурационный файл (для того, чтобы каждый раз не конфигурировать ядро):
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 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 4
Учитывая то, что данный репозиторий является фактически форком репозитория ядра Linux было принято решение реализовывать его версионность на базе основной версии Linux, но с добавлением дополнительного значения, которое прописано по пути repka_configs/.version
Как выглядит версия ядра Linux (с нашим дополнением):
6.6.44-3
│ │
│ └── 3 - номер версии (доработка команды Repka Pi, именно она будет изменяться с новыми обновлениями)
└── 6.6.44 - версия ядра Linux (по стандарту Linux)