NixOS on ARM/ru: Difference between revisions
Created page with "Инстанс [https://hydra.nixos.org/ official NixOS Hydra] собирает полный набор бинарных файлов (доступны на https://cache.nixos.org) для архитектуры AArch64 на каналах nixpkgs-unstable и stable." |
Created page with "Легенда таблицы: * Система на кристалле - https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BD%D0%B0_%D0%BA%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%BB%D0%BB%D0%B5?wprov=sfla1 * Архитектура набора команд - https://ru.wikipedia.org/wiki/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%BD%D0%B0%D0%B1%D0%BE%D1%80%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4?wprov=sfla1" |
||
(12 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
Уровень поддержки ARM в целом зависит от архитектуры и конкретных экосистем и плат. | Уровень поддержки ARM в целом зависит от архитектуры и конкретных экосистем и плат. | ||
Интеграция ARM в NixOS осуществляется путем создания '''общих сборок, как граждан первого класса'''. Это означает, что как только появится поддержка платы в ядре и прошивке платформы, NixOS будет работать после их обновления. | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 14: | Line 12: | ||
На данный момент (начало 2024 года) '''только AArch64''' имеет полную поддержку upstream. При этом ни armv6l, ни armv7l не игнорируются, над исправлениями работают и утверждают их по мере необходимости. Не хватает только поддержки и сборки в бинарном виде. На момент написания статьи общедоступных кэшей для armv6l или armv7l не существует.<!-- Пожалуйста, свяжитесь с samueldr на канале NixOS on ARM, если вы хотите поделиться своим собственным кэшем, перед редактированием. Нам нужно пересмотреть формулировку, чтобы было предельно ясно, что это пользовательский кэш. --> | На данный момент (начало 2024 года) '''только AArch64''' имеет полную поддержку upstream. При этом ни armv6l, ни armv7l не игнорируются, над исправлениями работают и утверждают их по мере необходимости. Не хватает только поддержки и сборки в бинарном виде. На момент написания статьи общедоступных кэшей для armv6l или armv7l не существует.<!-- Пожалуйста, свяжитесь с samueldr на канале NixOS on ARM, если вы хотите поделиться своим собственным кэшем, перед редактированием. Нам нужно пересмотреть формулировку, чтобы было предельно ясно, что это пользовательский кэш. --> | ||
'''Для получения ссылок на образы, включая установку UEFI''', перейдите на страницу [[NixOS_on_ARM/Installation|Installation page]]. | |||
''' | |||
<span id="Supported_devices"></span> | <span id="Supported_devices"></span> | ||
== Поддерживаемые устройства == | == Поддерживаемые устройства == | ||
Легенда таблицы: | |||
* Система на кристалле - | |||
* | https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BD%D0%B0_%D0%BA%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%BB%D0%BB%D0%B5?wprov=sfla1 | ||
* | * Архитектура набора команд - | ||
https://ru.wikipedia.org/wiki/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%BD%D0%B0%D0%B1%D0%BE%D1%80%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4?wprov=sfla1 | |||
< | <span id="Upstream_(NixOS)_supported_devices"></span> | ||
=== | === Устройства поддерживающие NixOS из коробки === | ||
NixOS поддерживает эти платы с архитектурой AArch64 на канале nixpkgs-unstable и stable. | |||
NixOS | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 72: | Line 65: | ||
</div> | </div> | ||
Эти платы не проходят регулярную проверку на работоспособность. | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 480: | Line 471: | ||
{{main|NixOS_on_ARM/Installation}} | {{main|NixOS_on_ARM/Installation}} | ||
< | <span id="Initial_configuration"></span> | ||
== | == Начальная настройка == | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 500: | Line 490: | ||
Для просмотра сообщений ядра и вывода загрузки необходимо соответствующим образом настроить "<code>stdout</code>" ядра. | Для просмотра сообщений ядра и вывода загрузки необходимо соответствующим образом настроить "<code>stdout</code>" ядра. | ||
<code>stdout</code> ядра будет отличаться в зависимости от семантики. | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 511: | Line 499: | ||
Другими словами, решение может заключаться в том, чтобы включить соответствующие параметры <code>console=</code> в соответствии с конфигурацией вашего оборудования и системы. | Другими словами, решение может заключаться в том, чтобы включить соответствующие параметры <code>console=</code> в соответствии с конфигурацией вашего оборудования и системы. | ||
* Для дисплея добавьте <code>console=tty0</code>. | |||
* | * Для серийной консоли обратитесь к конфигурации целевого устройства. | ||
* | |||
<span id="Details_about_the_boot_process"></span> | <span id="Details_about_the_boot_process"></span> | ||
Line 536: | Line 522: | ||
=== armv6l и armv7l === | === armv6l и armv7l === | ||
Некоторые '''''пользователи''''' в прошлом предлагали кэши для 32-битных ARM, но в настоящее время ни один из них не доступен. | |||
<span id="Getting_Support"></span> | <span id="Getting_Support"></span> | ||
Line 548: | Line 532: | ||
</div> | </div> | ||
Не стесняйтесь задавать вопросы. Обратите внимание, что время ответа может сильно отличаться в зависимости от предоставленной информации. | |||
<span id="Resources"></span> | <span id="Resources"></span> | ||
Line 558: | Line 540: | ||
=== См. также === | === См. также === | ||
* [[U-Boot]], поскольку он часто используется в паре с оборудованием класса SBC. | |||
* [[U-Boot]], | * [https://mobile.nixos.org/ Mobile NixOS], который обеспечивает расширенную семантику некоторых нестандартных семантик загрузки. | ||
* [https://mobile.nixos.org/ Mobile NixOS], | |||
<span id="Subpages"></span> | <span id="Subpages"></span> | ||
Line 568: | Line 548: | ||
Ниже приведен список всех подстраниц темы ''NixOS на ARM''. | Ниже приведен список всех подстраниц темы ''NixOS на ARM''. | ||
{{Special:PrefixIndex/{{FULLPAGENAME}}/ |hideredirects=1 |stripprefix=1}} | {{Special:PrefixIndex/{{FULLPAGENAME}}/ |hideredirects=1 |stripprefix=1}} | ||
Latest revision as of 21:03, 22 August 2024
Уровень поддержки ARM в целом зависит от архитектуры и конкретных экосистем и плат.
Интеграция ARM в NixOS осуществляется путем создания общих сборок, как граждан первого класса. Это означает, что как только появится поддержка платы в ядре и прошивке платформы, NixOS будет работать после их обновления.
It is still possible, when needed, to build and use a customized platform firmware and kernel for specific boards[reference needed].
На данный момент (начало 2024 года) только AArch64 имеет полную поддержку upstream. При этом ни armv6l, ни armv7l не игнорируются, над исправлениями работают и утверждают их по мере необходимости. Не хватает только поддержки и сборки в бинарном виде. На момент написания статьи общедоступных кэшей для armv6l или armv7l не существует.
Для получения ссылок на образы, включая установку UEFI, перейдите на страницу Installation page.
Поддерживаемые устройства
Легенда таблицы:
- Система на кристалле -
- Архитектура набора команд -
Устройства поддерживающие NixOS из коробки
NixOS поддерживает эти платы с архитектурой AArch64 на канале nixpkgs-unstable и stable.
Support for those board assumes as much is supported as Mainline Linux supports.
Manufacturer | Board | SoC | ISA | CPU | RAM | Storage |
---|---|---|---|---|---|---|
Raspberry Pi Foundation | Raspberry Pi 3 | Broadcom BCM2837 | AArch64 / ARMv7 | 4× Cortex-A53 @ 1.2 - 1.4 GHz | 1 GB | SD/microSD |
Raspberry Pi Foundation | Raspberry Pi 4 | Broadcom BCM2711 | AArch64 / ARMv7 | 4× Cortex-A72 @ 1.5 - 1.8 GHz | 1-8 GB | microSD, eMMC |
Community supported devices
Эти платы не проходят регулярную проверку на работоспособность.
The baseline support level expected is “Just as much as mainline Linux and U-Boot supports them”, except if specified otherwise.
Manufacturer | Board | SoC | ISA | CPU | RAM | Storage |
---|---|---|---|---|---|---|
Apple | Apple Silicon Macs | M1/M1 Pro/M1 Max | AArch64 | — | — | NVMe |
ASUS | Tinker Board | Rockchip RK3288 | ARMv7 | 4× Cortex-A17 | 2 GB | microSD |
Banana Pi | Banana Pi | Allwinner A20 | ARMv7 | 2× Cortex-A7 | 1 GB | SD, SATA |
Banana Pi M64 | Banana Pi M64 | Allwinner A64 | AArch64 | 4× Cortex-A53 | 2 GB | microSD, 8GB eMMc |
Banana Pi BPI-M5 | Banana Pi BPI-M5 | Amlogic S905X3 | AArch64 | 4× Cortex-A55 | 4 GB LPDDR4 | microSD, 16G eMMC |
BeagleBoard.org | BeagleBone Black | TI AM335x (src) | ARMv7 | 1× Cortex-A8 @ 1 GHz | 512 MB | 4 GB eMMC, microSD |
Firefly | AIO-3399C | Rockchip RK3399 | AArch64 | 2× Cortex-A72 @ 2.0 GHz, 4× Cortex-A53 @ 1.5 Ghz | 2/4 GB | 8/16 GB eMMC, microSD |
FriendlyElec | NanoPC-T4 | Rockchip RK3399 | AArch64 | 2× Cortex-A72 @ 2.0 GHz, 4× Cortex-A53 @ 1.5 Ghz | 4 GB | 16 GB eMMC, microSD, NVMe |
FriendlyElec | NanoPi-M4 | Rockchip RK3399 | AArch64 | 2× Cortex-A72 @ 2.0 GHz, 4× Cortex-A53 @ 1.5 Ghz | 4 GB | optional eMMC, microSD |
FriendlyElec | NanoPi-R6C | Rockchip RK3588S | AArch64 | 4× ARM Cortex-A76 @ 2.4 GHz, 4× Cortex-A55 @ 1.8 Ghz | 4 GB / 8 GB | optional eMMC, microSD, NVMe |
Hardkernel | ODROID-HC1 & ODROID-HC2 | Samsung Exynos 5422 | ARMv7 | 4× Cortex-A15 @ 2GHz, 4× Cortex-A7 @ 1.4GHz | 2 GB | microSD |
Hardkernel | ODROID-C2 | Amlogic S905 | AArch64 | 4× Cortex-A53 @ 1.5GHz | 2 GB | eMMC, microSD |
Hardkernel | ODROID-HC4 | Amlogic S905X3 | AArch64 | 4× Cortex-A55 @ 1.8GHz | 4 GB | microSD, SATA |
Kosagi | Kosagi Novena | i.MX6 | ARMv7 | 4× Cortex-A9 @ 1.2 GHz | 4 GB | microSD, SATA |
Libre Computer | ROC-RK3399-PC | Rockchip RK3399 | AArch64 | 2× Cortex-A72 @ 2.0 GHz, 4× Cortex-A53 @ 1.5 Ghz | 4 GB | eMMC, microSD, NVMe |
Libre Computer | ROC-RK3328-CC | Rockchip RK3328 | AArch64 | 4× Cortex-A53 @ 1.4GHz | 4 GB | eMMC, microSD |
Libre Computer | AML-S905X-CC-V2 | Amlogic S905X | AArch64 | 4× Cortex-A53 @ 1.512 GHz | 1/2GB | eMMC, microSD |
Linksprite | pcDuino3 Nano | Allwinner A20 | ARMv7 | 2× Cortex-A7 @ 1 GHz | 1 GB | 4 GB NAND, microSD, SATA |
NVIDIA | Jetson TK1 | Tegra K1/T124 | ARMv7 | 4× Cortex-A15 @ 2.3 GHz | 2 GB | 16 GB eMMC, SD, SATA |
NXP | i.MX 8M Plus EVK | i.MX 8M Plus | AArch64 | 4× Cortex-A53 @ 1.8 Ghz | 6 GB | 32 GB eMMC, microSD |
NXP | i.MX 8M Quad EVK | i.MX 8M Quad | AArch64 | 4× Cortex-A53 @ 1.5 Ghz + 1× Cortex-M4 | 3 GB | 16 GB eMMC, microSD |
OLIMEX | Teres-A64 | AllWinner A64 | AArch64 | 4× Cortex-A53 @ 1.1 GHz | 2GB | 16 GB eMMC, microSD |
Orange Pi | Orange Pi One | Allwinner H3 | ARMv7 | 4× Cortex-A7 @ 1.2 GHz | 512 MB | microSD |
Orange Pi | Orange Pi PC | Allwinner H3 | ARMv7 | 4× Cortex-A7 @ 1.6 GHz | 1 GB | SD/microSD |
Orange Pi | Orange Pi Zero Plus2 (H5) | Allwinner H5 | AArch64 | 4× Cortex-A53 @ 1.2 GHz | 1 GB | SD/microSD + 8GB eMMC |
Orange Pi | Orange Pi Zero2 (H616) | Allwinner H616 | AArch64 | 4× Cortex-A53 @ 1.2 GHz | 1 GB | SD/microSD + 2MB SPI Flash |
Orange Pi | Orange Pi R1 Plus LTS | Rockchip RK3328 | AArch64 | 4× Cortex-A53 @ 1.5 GHz | 1 GB | microSD |
Orange Pi | Orange Pi 5 | Rockchip RK3588s | AArch64 | 4× Cortex-A76 @ 2.4GHz, 4×Cortex-A55 @ 1.8 GHz | 4/8/16 GB | microSD, NVMe |
Orange Pi | Orange Pi 5 Plus | Rockchip RK3588 | AArch64 | 4× Cortex-A76 @ 2.4GHz, 4×Cortex-A55 @ 1.8 GHz | 4/8/16 GB | eMMC, microSD, NVMe |
PINE64 | PINE A64-LTS | Allwinner R18 | AArch64 | 4× Cortex-A53 @ ? GHz | 2 GB | microSD & eMMC |
PINE64 | Pinebook | Allwinner A64 | AArch64 | 4× Cortex-A53 @ ? Ghz | 2 GB | microSD & eMMC |
PINE64 | Pinebook Pro | Rockchip RK3399 | AArch64 | 2× Cortex-A72 @ 2.0 GHz, 4× Cortex-A53 @ 1.5 Ghz | 4 GB | microSD & eMMC |
PINE64 | ROCK64 | Rockchip RK3328 | AArch64 | 4× Cortex-A53 @ 1.5 GHz | 1/2/4 GB | microSD/eMMC |
PINE64 | ROCKPro64 | Rockchip RK3399 | AArch64 | 2× Cortex-A72 @ 2.0 GHz, 4× Cortex-A53 @ 1.5 Ghz | 2/4 GB | microSD/eMMC |
Clockworkpi | uConsole A06 | Rockchip RK3399 | AArch64 | 2× Cortex-A72 @ 2.0 GHz, 4× Cortex-A53 @ 1.5 Ghz | 4 GB | microSD |
Radxa | ROCK5 Model B | Rockchip RK3588 | AArch64 | 4× Cortex-A76 @ 2.4GHz, 4×Cortex-A55 @ 1.8 GHz | 4/8/16 GB | eMMC, microSD, NVMe |
Radxa | ROCK5 Model A | Rockchip RK3588s | AArch64 | 4× Cortex-A76 @ 2.4GHz, 4×Cortex-A55 @ 1.8 GHz | 4/8/16 GB | eMMC, microSD, NVMe |
Raspberry Pi Foundation | Raspberry Pi | Broadcom BCM2835 | ARMv6 | 1 × ARM1176 @ 700 MHz | 256 MB / 512 MB | SD/microSD |
Raspberry Pi Foundation | Raspberry Pi 2 | Broadcom BCM2836 | ARMv7 | 4× Cortex-A7 @ 900 MHz | 1 GB | SD/microSD |
Raspberry Pi Foundation | Raspberry Pi 3 | Broadcom BCM2837 | AArch64 / ARMv7 | 4× Cortex-A53 @ 1.2 GHz | 1 GB | SD/microSD |
Raspberry Pi Foundation | Raspberry Pi 4 | Broadcom BCM2711 | AArch64 / ARMv7 | 4× Cortex-A53 @ 1.5 GHz | 1-8 GB | microSD |
Raspberry Pi Foundation | Raspberry Pi 5 | Broadcom BCM2712 | AArch64 | 4× Cortex-A76 @ 2.4 GHz | 4-8 GB | microSD |
Toshiba | AC100 (mini laptop) | Tegra 2 250 (T20) | ARMv7 | 2× Cortex-A9 @ 1 GHz | 512 MB | 8–32 GB eMMC, SD |
Wandboard | Wandboard Solo/Dual/Quad | Freescale i.MX6 | ARMv7 | 1×/2×/4× Cortex-A9 @ 1000 MHz | 512 MB / 1 GB / 2 GB | microSD, SATA |
Особые устройства
С помощью QEMU можно эмулировать платформу ARM.
Manufacturer | Board | SoC | ISA | CPU | RAM | Storage |
---|---|---|---|---|---|---|
QEMU | QEMU | — | ARMv7 | up to 8 | up to 2 GB | Anything QEMU supports |
Установка
Начальная настройка
Устранение неполадок
Hanging at Starting kernel ...
When booting a NixOS system, it may look like it is hung at Starting kernel ...
.
Маловероятно, что он завис на этом этапе. Это последнее сообщение, выводимое U-Boot. U-Boot печатает сразу и на дисплей, и в консоль.
Для просмотра сообщений ядра и вывода загрузки необходимо соответствующим образом настроить "stdout
" ядра.
stdout
ядра будет отличаться в зависимости от семантики.
- When there are no valid
console=
kernel command-line arguments, it will default to the/chosen/stdout-path
device tree property. (Generally a serial console.) - When valid
console=
parameters are present, the kernel picks the leftmost valid one asstdout
.
Другими словами, решение может заключаться в том, чтобы включить соответствующие параметры console=
в соответствии с конфигурацией вашего оборудования и системы.
- Для дисплея добавьте
console=tty0
. - Для серийной консоли обратитесь к конфигурации целевого устройства.
Подробные сведения о процессе загрузки
NixOS также может быть загружена через UEFI на ARM. Семантика в целом такая же, как и на других архитектурах. Обратите внимание, что частое использование Device Tree вместо ACPI в аппаратном обеспечении потребительского класса может сделать это немного более неудобным.
Otherwise, in SBC-class hardware, it is common that boards are generally expected to use U-Boot as the platform firmware and bootloader. See the section about using NixOS with U-Boot.
Бинарные кэши
Aarch64
Инстанс official NixOS Hydra собирает полный набор бинарных файлов (доступны на https://cache.nixos.org) для архитектуры AArch64 на каналах nixpkgs-unstable и stable.
armv6l и armv7l
Некоторые пользователи в прошлом предлагали кэши для 32-битных ARM, но в настоящее время ни один из них не доступен.
Получение поддержки
There is a dedicated room for the upstream NixOS effort on Matrix, #nixos-on-arm:nixos.org.
Не стесняйтесь задавать вопросы. Обратите внимание, что время ответа может сильно отличаться в зависимости от предоставленной информации.
Источники
См. также
- U-Boot, поскольку он часто используется в паре с оборудованием класса SBC.
- Mobile NixOS, который обеспечивает расширенную семантику некоторых нестандартных семантик загрузки.
Подстраницы
Ниже приведен список всех подстраниц темы NixOS на ARM.