NixOS on ARM/fr: Difference between revisions
Created page with "À ce jour (début 2024) '''seul AArch64''' dispose d'un support complet en amont. Ceci dit, cela ne veut pas dire qu'armv6l ou armv7l sont ignorés pour autant, des corrections sont développées et approuvées au besoin. Ce qui fait défaut sont le support et la construction de binaires. Au moment de l'écriture de cet article, il n'y a pas de caches disponibles pour armv6l ou armv7l.<!-- merci de contacter samueldr sur le fil NixOS on ARM si vous souhaitez partager vo..." |
Created page with "{{Special:PrefixIndex/{{FULLPAGENAME}}/ |hideredirects=1 |stripprefix=1}}" Tags: Mobile edit Mobile web edit |
||
(40 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> | |||
<div style="font-size: 1.5rem; text-align: center;padding-bottom: 0.5rem;"><strong>NixOS supporte les ARM 64-bit.</strong></div> | <div style="font-size: 1.5rem; text-align: center;padding-bottom: 0.5rem;"><strong>NixOS supporte les ARM 64-bit.</strong></div> | ||
Line 9: | Line 10: | ||
À ce jour (début 2024) '''seul AArch64''' dispose d'un support complet en amont. Ceci dit, cela ne veut pas dire qu'armv6l ou armv7l sont ignorés pour autant, des corrections sont développées et approuvées au besoin. Ce qui fait défaut sont le support et la construction de binaires. Au moment de l'écriture de cet article, il n'y a pas de caches disponibles pour armv6l ou armv7l.<!-- merci de contacter samueldr sur le fil NixOS on ARM si vous souhaitez partager votre propre cache avant de modifier le wiki. Nous devons retravailler la formulation pour rendre clair comme de l'eau de roche qu'il s'agit d'un cache fournit par un utilisateur. --> | À ce jour (début 2024) '''seul AArch64''' dispose d'un support complet en amont. Ceci dit, cela ne veut pas dire qu'armv6l ou armv7l sont ignorés pour autant, des corrections sont développées et approuvées au besoin. Ce qui fait défaut sont le support et la construction de binaires. Au moment de l'écriture de cet article, il n'y a pas de caches disponibles pour armv6l ou armv7l.<!-- merci de contacter samueldr sur le fil NixOS on ARM si vous souhaitez partager votre propre cache avant de modifier le wiki. Nous devons retravailler la formulation pour rendre clair comme de l'eau de roche qu'il s'agit d'un cache fournit par un utilisateur. --> | ||
'''Pour les liens vers les images disque, incluant les installations UEFI''' dirigez-vous vers la [[NixOS_on_ARM/Installation|page d'installation]]. | |||
''' | |||
< | <span id="Supported_devices"></span> | ||
== | == Périphériques supportés == | ||
Légende du tableau: | |||
* SoC - https://fr.wikipedia.org/wiki/Syst%C3%A8me_sur_une_puce | |||
* SoC - https:// | |||
* ISA - https://en.wikipedia.org/wiki/Instruction_set_architecture | * ISA - https://en.wikipedia.org/wiki/Instruction_set_architecture | ||
< | <span id="Upstream_(NixOS)_supported_devices"></span> | ||
=== | === Périphériques supportés en amont (NixOS) === | ||
NixOS supporte ces cartes d'architecture AArch64 sur les canaux nixpkgs-unstable et stable. | |||
NixOS | |||
Le support de ces cartes est le même que celui fournit par les distributions Linux standard. | |||
<!-- | <!-- | ||
L'ordre pour le tableau des périphériques est: | |||
* | * Par ordre alphabétique de nom de constructeur. | ||
* | * Par ordre chronologique de date de publication (les plus anciennes en premier). | ||
--> | --> | ||
<div class="table"> | <div class="table"> | ||
{|class="table" | {|class="table" | ||
!width="2%"| | !width="2%"| Constructeur | ||
!width="2%"| | !width="2%"| Carte | ||
!width="2%"| SoC | !width="2%"| SoC | ||
!width="1%"| ISA | !width="1%"| ISA | ||
!width="2%"| CPU | !width="2%"| CPU | ||
!width="1%"| RAM | !width="1%"| RAM | ||
!width="2%"| | !width="2%"| Stockage | ||
|- | |- | ||
| Raspberry Pi Foundation | | Raspberry Pi Foundation | ||
Line 65: | Line 57: | ||
|} | |} | ||
</div> | </div> | ||
=== | === Périphériques supportés par la communauté === | ||
Ces cartes ne sont pas assurés d'être fonctionnelles. | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 444: | Line 433: | ||
</div> | </div> | ||
< | <span id="Special_Devices"></span> | ||
==== | ==== Périphériques particuliers ==== | ||
Il est possible d'émuler la plateforme ARM avec QEMU. | |||
<div class="table"> | <div class="table"> | ||
{|class="table" | {|class="table" | ||
!width="2%"| | !width="2%"| Constructeur | ||
!width="2%"| | !width="2%"| Carte | ||
!width="2%"| SoC | !width="2%"| SoC | ||
!width="2%"| ISA | !width="2%"| ISA | ||
!width="2%"| CPU | !width="2%"| CPU | ||
!width="2%"| RAM | !width="2%"| RAM | ||
!width="2%"| | !width="2%"| Stockage | ||
|- | |- | ||
| QEMU | | QEMU | ||
Line 467: | Line 452: | ||
| — | | — | ||
| ARMv7 | | ARMv7 | ||
| | | jusqu'à 8 | ||
| | | jusqu'à 2 GB | ||
| | | Tout ce que QEMU supporte | ||
|} | |} | ||
</div> | </div> | ||
== Installation == | == Installation == | ||
{{main|NixOS_on_ARM/Installation}} | {{main|NixOS_on_ARM/Installation}} | ||
< | <span id="Initial_configuration"></span> | ||
== | == Configuration initiale == | ||
{{main|NixOS_on_ARM/Initial_Configuration}} | {{main|NixOS_on_ARM/Initial_Configuration}} | ||
< | <span id="Troubleshooting"></span> | ||
== | == Dépannage == | ||
=== Bloqué à <code>Starting kernel ...</code> === | |||
=== | Le démarrage de NixOS peut sembler être bloqué à <code>Starting kernel ...</code>. | ||
Il est peu probable que le processus soit bloqué à ce niveau. Ceci est le dernier message affiché par U-Boot. U-Boot affiche en même temps l'écran et la console. | |||
Pour voir les messages du noyau et la sortie du démarrage, le “<code>stdout</code>” du noyau doit être configuré de manière appropriée. | |||
Le <code>stdout</code> du noyau varie en fonction de la sémantique. | |||
* Lorsqu'il n'y a pas d'argument <code>console=</code> valide dans la ligne de command du noyau, la valeur par défaut utilisée est celle de la propriété <code>/chosen/stdout-path</code> de l'arborescence de périphérique. (Généralement une console de série.) | |||
* | * Quand plusieurs paramètres <code>console=</code> sont présents, le noyau prend seulement en compte la première valeur valide pour <code>stdout</code>. | ||
* | |||
En d'autre termes, la solution est d'activer le paramètre <code>console=</code> approprié en fonction de la configuration de votre matériel et de votre système. | |||
* Pour l'écran, ajouter <code>console=tty0</code>. | |||
* | * Pour la console de série, référez-vous à la configuration du périphérique cible. | ||
* | |||
< | <span id="Details_about_the_boot_process"></span> | ||
=== | === Détails sur le processus de démarrage === | ||
NixOS peut également être démarré sur ARM avec l'[[NixOS on ARM/UEFI|UEFI]]. La sémantique est généralement la même que sur les autres architectures. Notez que l'utilisation d'arborescence de périphérique au lieu d'ACPI dans le matériel grand public [[NixOS_on_ARM/UEFI#Device_Trees|''peut'' rendre cela légèrement bizarre]]. | |||
NixOS | |||
Il est courant pour le matériel de classe SBC que les cartes utilisent U-Boot comme micrologiciel de plateforme et comme chargeur de démarrage. Consultez la section sur [[U-Boot#Utiliser NixOS avec U-Boot|utiliser NixOS avec U-Boot]]. | |||
< | <span id="Binary_caches"></span> | ||
== | == Caches de binaires == | ||
=== AArch64 === | === AArch64 === | ||
L'instance [https://hydra.nixos.org/ officielle Hydra de NixOS] construit un ensemble complet de binaires (disponibles sur https://cache.nixos.org) pour l'architecture AArch64 sur les canaux nixpkgs-unstable et stable. | |||
=== armv6l and armv7l === | === armv6l and armv7l === | ||
Par le passé, certains '''''utilisateurs''''' ont fait de leur mieux pour fournir des caches pour ARM 32 bit, cependant aucun n'est actuellement disponible. | |||
< | <span id="Getting_Support"></span> | ||
== | == Obtenir de l'aide == | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 566: | Line 513: | ||
</div> | </div> | ||
N'hésitez pas à poser des questions. Notez cependant que le temps de réponse peut grandement varier en fonction du niveau d'information fournit. | |||
< | <span id="Resources"></span> | ||
== | == Ressources == | ||
< | <span id="See_also"></span> | ||
=== | === Voir également === | ||
* [[U-Boot]], souvent associé au matériel de type SBC. | |||
* [[U-Boot]], | * [https://mobile.nixos.org/ Mobile NixOS] qui fournit une sémantique améliorée pour des sémantiques de démarrage non standard. | ||
* [https://mobile.nixos.org/ Mobile NixOS] | |||
< | <span id="Subpages"></span> | ||
=== | === Sous-pages === | ||
Ci-dessous une liste des sous-pages du sujet ''NixOS sur ARM''. | |||
{{Special:PrefixIndex/{{FULLPAGENAME}}/ |hideredirects=1 |stripprefix=1}} | {{Special:PrefixIndex/{{FULLPAGENAME}}/ |hideredirects=1 |stripprefix=1}} | ||
Latest revision as of 22:21, 12 July 2024
Le niveau de support global d'ARM varie en fonction de l'architecture, des écosystèmes spécifiques et des cartes.
La manière dont ARM est intégré dans NixOS consiste à créer des constructions génériques de premier ordre. Cela veut dire qu'à partir du moment où une carte est supportée en amont par le noyau et le micrologiciel de plateforme, NixOS est censé fonctionner sur ces cartes dès lors qu'ils sont mis à jour.
Il est néanmoins possible, si nécessaire, de construire et utiliser un micrologiciel de plateforme et un noyau personnalisés pour des cartes spécifiques[référence nécessaire].
À ce jour (début 2024) seul AArch64 dispose d'un support complet en amont. Ceci dit, cela ne veut pas dire qu'armv6l ou armv7l sont ignorés pour autant, des corrections sont développées et approuvées au besoin. Ce qui fait défaut sont le support et la construction de binaires. Au moment de l'écriture de cet article, il n'y a pas de caches disponibles pour armv6l ou armv7l.
Pour les liens vers les images disque, incluant les installations UEFI dirigez-vous vers la page d'installation.
Périphériques supportés
Légende du tableau:
- SoC - https://fr.wikipedia.org/wiki/Syst%C3%A8me_sur_une_puce
- ISA - https://en.wikipedia.org/wiki/Instruction_set_architecture
Périphériques supportés en amont (NixOS)
NixOS supporte ces cartes d'architecture AArch64 sur les canaux nixpkgs-unstable et stable.
Le support de ces cartes est le même que celui fournit par les distributions Linux standard.
Constructeur | Carte | SoC | ISA | CPU | RAM | Stockage |
---|---|---|---|---|---|---|
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 |
Périphériques supportés par la communauté
Ces cartes ne sont pas assurés d'être fonctionnelles.
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 |
Périphériques particuliers
Il est possible d'émuler la plateforme ARM avec QEMU.
Constructeur | Carte | SoC | ISA | CPU | RAM | Stockage |
---|---|---|---|---|---|---|
QEMU | QEMU | — | ARMv7 | jusqu'à 8 | jusqu'à 2 GB | Tout ce que QEMU supporte |
Installation
Configuration initiale
Dépannage
Bloqué à Starting kernel ...
Le démarrage de NixOS peut sembler être bloqué à Starting kernel ...
.
Il est peu probable que le processus soit bloqué à ce niveau. Ceci est le dernier message affiché par U-Boot. U-Boot affiche en même temps l'écran et la console.
Pour voir les messages du noyau et la sortie du démarrage, le “stdout
” du noyau doit être configuré de manière appropriée.
Le stdout
du noyau varie en fonction de la sémantique.
- Lorsqu'il n'y a pas d'argument
console=
valide dans la ligne de command du noyau, la valeur par défaut utilisée est celle de la propriété/chosen/stdout-path
de l'arborescence de périphérique. (Généralement une console de série.) - Quand plusieurs paramètres
console=
sont présents, le noyau prend seulement en compte la première valeur valide pourstdout
.
En d'autre termes, la solution est d'activer le paramètre console=
approprié en fonction de la configuration de votre matériel et de votre système.
- Pour l'écran, ajouter
console=tty0
. - Pour la console de série, référez-vous à la configuration du périphérique cible.
Détails sur le processus de démarrage
NixOS peut également être démarré sur ARM avec l'UEFI. La sémantique est généralement la même que sur les autres architectures. Notez que l'utilisation d'arborescence de périphérique au lieu d'ACPI dans le matériel grand public peut rendre cela légèrement bizarre.
Il est courant pour le matériel de classe SBC que les cartes utilisent U-Boot comme micrologiciel de plateforme et comme chargeur de démarrage. Consultez la section sur utiliser NixOS avec U-Boot.
Caches de binaires
AArch64
L'instance officielle Hydra de NixOS construit un ensemble complet de binaires (disponibles sur https://cache.nixos.org) pour l'architecture AArch64 sur les canaux nixpkgs-unstable et stable.
armv6l and armv7l
Par le passé, certains utilisateurs ont fait de leur mieux pour fournir des caches pour ARM 32 bit, cependant aucun n'est actuellement disponible.
Obtenir de l'aide
There is a dedicated room for the upstream NixOS effort on Matrix, #nixos-on-arm:nixos.org.
N'hésitez pas à poser des questions. Notez cependant que le temps de réponse peut grandement varier en fonction du niveau d'information fournit.
Ressources
Voir également
- U-Boot, souvent associé au matériel de type SBC.
- Mobile NixOS qui fournit une sémantique améliorée pour des sémantiques de démarrage non standard.
Sous-pages
Ci-dessous une liste des sous-pages du sujet NixOS sur ARM.