add: сборка ядра Linux для opi5plus (.3)
This commit is contained in:
parent
cbf3ae56bb
commit
86c51d33ce
@ -165,27 +165,32 @@ uname -r
|
||||
nano Makefile
|
||||
```
|
||||
|
||||
И меняем строку `XTRAVERSION =` (у меня это пятая строчка) на:
|
||||
И устанавливаем модификатор версии ядра, строку `XTRAVERSION =` (у меня это пятая строчка):
|
||||
```text
|
||||
EXTRAVERSION = -rockchip-rk3588
|
||||
```
|
||||
Копируем конфиг текущего ядра в конфиг для сборки:
|
||||
|
||||
|
||||
Затем копируем конфиг текущего ядра в конфиг для сборки.
|
||||
```bash
|
||||
zcat /proc/config.gz > .config
|
||||
```
|
||||
|
||||
`.config` содержит все текущие настройки ядра. Это очень удобно, так как нужно добавить только поддержку нужных модулей
|
||||
(в нашем случае `iSCSI`), а не настраивать всё с нуля.
|
||||
|
||||
## Настройка конфига с iSCSI
|
||||
|
||||
Теперь его нужно отредактировать, `.config` чтобы включить `iSCSI`. Заходим в кофигуратор ядра `menuconfig`:
|
||||
Теперь нужно отредактировать, `.config` чтобы включить `iSCSI`. Заходим в интерфейс конфигуратора ядра `menuconfig`:
|
||||
```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`.
|
||||
2. Найти внутри `iSCSI Initiator over TCP/IP`, с помощью стрелок выбрать его.
|
||||
2. Найти внутри `iSCSI Transport Attributes`, с помощью стрелок выбрать его.
|
||||
3. Нажимает `M` (для модуля) — появится `<M>` рядом с пунктом. Это означает, что модуль будет собираться как модуль,
|
||||
а не встраиваться в ядро. Модуль (iscsi_tcp.ko) проще протестировать без перезагрузки.
|
||||
а не встраиваться в ядро. Модуль (`iscsi_tcp.ko`) проще протестировать без перезагрузки.
|
||||
4. В нижнем меню выбрать `<Save>` и подтвердим сохранение в `.config`.
|
||||
6. Вернуться в меню выше `SCSI device support` (через нижнее меню `<Exit>`).
|
||||
7. Зайти в раздел `SCSI low-level drivers`.
|
||||
@ -193,6 +198,10 @@ ake ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
|
||||
9. Снова сохраняем конфиг в `.config` (через нижнее меню `<Save>`).
|
||||
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 включён:
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
| Проверка, что включен мониторинг 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
|
||||
```
|
||||
|
||||
`-j8` — это количество потоков, используй столько, сколько у тебя ядер. Например, если 4 ядра, то `-j4`.
|
||||
`-j8` — это количество потоков, используем столько, сколько у нас ядер. На Orange Pi 5 Plus восемь ядер. Но, например,
|
||||
если у вас четыре ядра, то `-j4`.
|
||||
|
||||
Компиляция займёт 20-40 минут (Orange Pi 5 Plus). После завершения проверим, что ядро скомпилировалось:
|
||||
```bash
|
||||
ls -l arch/arm64/boot/Image
|
||||
```
|
||||
|
||||
Ожидаемый размер: около 40 МБ:
|
||||
```text
|
||||
-rw-rw-r-- 1 opi opi 40579584 Mar 22 19:09 arch/arm64/boot/Image
|
||||
```
|
||||
|
||||
Размер должен почти совпать (или полностью совпадать) с размером текущего ядра:
|
||||
Размер должен почти совпасть (или полностью совпадать) с размером текущего ядра:
|
||||
```bash
|
||||
ls -l /boot/Image
|
||||
```
|
||||
|
Loading…
x
Reference in New Issue
Block a user