repka-os_kernel/README.md
2025-03-13 16:17:59 +04:00

86 lines
No EOL
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)
```