add: сборка ядра Linux для opi5plus (.3)
This commit is contained in:
parent
cbf3ae56bb
commit
86c51d33ce
@ -165,27 +165,32 @@ uname -r
|
|||||||
nano Makefile
|
nano Makefile
|
||||||
```
|
```
|
||||||
|
|
||||||
И меняем строку `XTRAVERSION =` (у меня это пятая строчка) на:
|
И устанавливаем модификатор версии ядра, строку `XTRAVERSION =` (у меня это пятая строчка):
|
||||||
```text
|
```text
|
||||||
EXTRAVERSION = -rockchip-rk3588
|
EXTRAVERSION = -rockchip-rk3588
|
||||||
```
|
```
|
||||||
Копируем конфиг текущего ядра в конфиг для сборки:
|
|
||||||
|
|
||||||
|
Затем копируем конфиг текущего ядра в конфиг для сборки.
|
||||||
```bash
|
```bash
|
||||||
zcat /proc/config.gz > .config
|
zcat /proc/config.gz > .config
|
||||||
```
|
```
|
||||||
|
|
||||||
|
`.config` содержит все текущие настройки ядра. Это очень удобно, так как нужно добавить только поддержку нужных модулей
|
||||||
|
(в нашем случае `iSCSI`), а не настраивать всё с нуля.
|
||||||
|
|
||||||
## Настройка конфига с iSCSI
|
## Настройка конфига с iSCSI
|
||||||
|
|
||||||
Теперь его нужно отредактировать, `.config` чтобы включить `iSCSI`. Заходим в кофигуратор ядра `menuconfig`:
|
Теперь нужно отредактировать, `.config` чтобы включить `iSCSI`. Заходим в интерфейс конфигуратора ядра `menuconfig`:
|
||||||
```bash
|
```bash
|
||||||
ake ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
|
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
|
||||||
```
|
```
|
||||||
|
|
||||||
Используя стрелки на клавиатуре, чтобы двигаться по пунктам меню.
|
Используя стрелки на клавиатуре, чтобы двигаться по пунктам меню.
|
||||||
1. Перейди в `Device Drivers` → `SCSI device support` → `SCSI Transports`.
|
1. Перейди в `Device Drivers` → `SCSI device support` → `SCSI Transports`.
|
||||||
2. Найти внутри `iSCSI Initiator over TCP/IP`, с помощью стрелок выбрать его.
|
2. Найти внутри `iSCSI Transport Attributes`, с помощью стрелок выбрать его.
|
||||||
3. Нажимает `M` (для модуля) — появится `<M>` рядом с пунктом. Это означает, что модуль будет собираться как модуль,
|
3. Нажимает `M` (для модуля) — появится `<M>` рядом с пунктом. Это означает, что модуль будет собираться как модуль,
|
||||||
а не встраиваться в ядро. Модуль (iscsi_tcp.ko) проще протестировать без перезагрузки.
|
а не встраиваться в ядро. Модуль (`iscsi_tcp.ko`) проще протестировать без перезагрузки.
|
||||||
4. В нижнем меню выбрать `<Save>` и подтвердим сохранение в `.config`.
|
4. В нижнем меню выбрать `<Save>` и подтвердим сохранение в `.config`.
|
||||||
6. Вернуться в меню выше `SCSI device support` (через нижнее меню `<Exit>`).
|
6. Вернуться в меню выше `SCSI device support` (через нижнее меню `<Exit>`).
|
||||||
7. Зайти в раздел `SCSI low-level drivers`.
|
7. Зайти в раздел `SCSI low-level drivers`.
|
||||||
@ -193,6 +198,10 @@ ake ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
|
|||||||
9. Снова сохраняем конфиг в `.config` (через нижнее меню `<Save>`).
|
9. Снова сохраняем конфиг в `.config` (через нижнее меню `<Save>`).
|
||||||
10. Выйти из `menuconfig` (через нижнее меню `<Exit>`, три раза).
|
10. Выйти из `menuconfig` (через нижнее меню `<Exit>`, три раза).
|
||||||
|
|
||||||
|
| Может быть полезно: |
|
||||||
|
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
| На моём Orange Pi 5 Plus загрузка идет с NVMe диска ([см. как настроить](opi5plus-move-system-to-nvme-or-emmc.md)), и мне было полезно так же включить ещё и систему мониторинга NVMe: `Device Drivers` → `NVME Support`, найти пункт `SNVMe hardware monitoring` и включить его. В нижнем меню выбрать `<Save>` и подтвердим сохранение в `.config`. Выйти из `menuconfig` (через нижнее меню `<Exit>`, три раза). Теперь у меня будет возможность отслеживать состояние NVMe-диска (температуру, износ и т.д.) через инструменты вроде `nvme-cli`. |
|
||||||
|
|
||||||
Проверим, что iSCSI включён:
|
Проверим, что iSCSI включён:
|
||||||
```bash
|
```bash
|
||||||
grep -E "ISCSI_TCP|SCSI_ISCSI_ATTRS|ISCSI_BOOT" .config
|
grep -E "ISCSI_TCP|SCSI_ISCSI_ATTRS|ISCSI_BOOT" .config
|
||||||
@ -205,6 +214,10 @@ CONFIG_ISCSI_TCP=m
|
|||||||
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
||||||
```
|
```
|
||||||
|
|
||||||
|
| Проверка, что включен мониторинг NVMe (если включили): |
|
||||||
|
|--------------------------------------------------------------|
|
||||||
|
| `grep -E "NVME_HWMON" .config` и увидим `CONFIG_NVME_HWMON=y` |
|
||||||
|
|
||||||
## Компиляция ядра и модулей
|
## Компиляция ядра и модулей
|
||||||
|
|
||||||
Запускаем компиляцию ядра и модулей:
|
Запускаем компиляцию ядра и модулей:
|
||||||
@ -212,18 +225,20 @@ CONFIG_ISCSI_TCP=m
|
|||||||
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8
|
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8
|
||||||
```
|
```
|
||||||
|
|
||||||
`-j8` — это количество потоков, используй столько, сколько у тебя ядер. Например, если 4 ядра, то `-j4`.
|
`-j8` — это количество потоков, используем столько, сколько у нас ядер. На Orange Pi 5 Plus восемь ядер. Но, например,
|
||||||
|
если у вас четыре ядра, то `-j4`.
|
||||||
|
|
||||||
Компиляция займёт 20-40 минут (Orange Pi 5 Plus). После завершения проверим, что ядро скомпилировалось:
|
Компиляция займёт 20-40 минут (Orange Pi 5 Plus). После завершения проверим, что ядро скомпилировалось:
|
||||||
```bash
|
```bash
|
||||||
ls -l arch/arm64/boot/Image
|
ls -l arch/arm64/boot/Image
|
||||||
```
|
```
|
||||||
|
|
||||||
Ожидаемый размер: около 40 МБ:
|
Ожидаемый размер: около 40 МБ:
|
||||||
```text
|
```text
|
||||||
-rw-rw-r-- 1 opi opi 40579584 Mar 22 19:09 arch/arm64/boot/Image
|
-rw-rw-r-- 1 opi opi 40579584 Mar 22 19:09 arch/arm64/boot/Image
|
||||||
```
|
```
|
||||||
|
|
||||||
Размер должен почти совпать (или полностью совпадать) с размером текущего ядра:
|
Размер должен почти совпасть (или полностью совпадать) с размером текущего ядра:
|
||||||
```bash
|
```bash
|
||||||
ls -l /boot/Image
|
ls -l /boot/Image
|
||||||
```
|
```
|
||||||
|
Loading…
x
Reference in New Issue
Block a user