CPU, schede madri e video supportate
I sistemi ARM sono molto più eterogenei rispetto all'architettura dei PC
basati su i386/amd64, nonostante ciò è possibile avviare le macchine ARM
a 64-bit in modo standardizzato, come i PC, ma la situazione è più
complicata sulle macchine ARM a 32-bit.
L'architettura ARM è principalmente usata per i
System-on-Chip
(SoC). I SoC sono progettati da diverse
aziende e usano una gran varietà di componenti hardware anche per le
funzionalità di base necessarie all'avvio del sistema. Con il passare
del tempo le interfacce del firmware sono state via via standardizzate
ma sui sistemi più vecchi le intefacce firmware per l'avvio potrebbero
creare parecchi grattacapi perché il kernel Linux deve prendersi in
carico molti problemi di basso livello e di tutti quegli aspetti
specifici del sistema che nel mondo dei PC sono gestiti dal BIOS della
scheda madre.
Agli albori il supporto per ARM nel kernel Linux la grande varietà di
hardware richiedeva di avere un kernel specifico per ciascun sistema
ARM, ciò era in contrasto con il kernel
uno-va-bene-per-tutti
per i sistemi PC. Un tale
approccio non è scalabile su un gran numero di dispositivi e quindi
fu iniziato il lavoro per realizzare un unico kernel ARM che potesse
funzionare su molti sistemi ARM. I sistemi ARM più recenti dispongono
di un kernel realizzato con l'approccio multipiattaforma ma per molti
dei sistemi più vecchi è ancora necessario utilizzare un kernel
specifico.
Per questo motivo l'installazione della distribuzione &debian; standard
supporta solo su un numero ristretto di vecchi sistemi ARM a 32-bit
oltre che sui sistemi (a 32-bit e a 64-bit) più recenti supportati con
il kernel ARM multipiattaforma (chiamati armmp su 32-bit armhf, senza
nome di versione e su 64-bit arm64).
Nel tempo l'architettura ARM si è evoluta e i moderni processori ARM
forniscono funzionalità che non erano presenti nei modelli precedenti.
&debian; fornisce tre port su ARM: &debian;/arm64 per tutte le macchine
a 64-bit e &debian;/armel e &debian;/armhf per le macchine a 32-bit.
&debian;/armel è adatto ai processori ARM più vecchi che non dispongono
di una FPU (floating point unit), &debian;/armhf funziona solo sui
processori ARM più recenti conformi all'architettura ARMv7 e con l'unità
di calcolo in virgola mobile VFPv3. &debian;/armhf fa un ampio uso delle
funzioni e dei miglioramenti delle prestazioni disponibili su questi
modelli. &debian;/arm64 funziona sui processori conformi almeno
all'architettura ARMv8 (che è a 64-bit).
Tecnicamente, tutte le CPU ARM attualmente disponibili possono
funzionare sia in modalità big-endian che in modalità little-endian,
in pratica la maggior parte dei sistemi attualmente disponibili
utilizzano la modalità little-endian. &debian;/arm64, &debian;/armhf
e &debian;/armel supportano solo sistemi little-endian.
Piattaforme supportate da Debian/arm64
L'hardware Arm64/AArch64/ARMv8 è diventato disponibile quando il ciclo
di sviluppo di &debian; &releasename-cap; era molto avanti e quindi
non è stato possibile inserire il supporto per molte piattaforme nel
kernel di questo rilascio, che è il requisito fondamentale per usare
il &d-i; su qualsiasi piattaforma.
Le piattaforme su cui è stato fatto un test sono elencate di seguito,
in generale il supporto multipiattaforma nel kernel Linux arm64
permette di usare il &d-i; anche sui sistemi non esplicitamente
elencati, l'importante e che il kernel del &d-i; supporti i componenti
del sistema e che sia disponibile un file con il device-tree. In
questo caso l'installatore è in grado di fornire un'installazione
funzionante e, se viene usato UEFI, è in grado di rendere il sistema
avviabile. Se UEFI non è usato (alcune macchine a 64-bit sono prodotte
con U-Boot) probabilmente sono necessari altre configurazioni da fare
manualmente per rendere il sistema avviabile.
È confermato che le seguenti piattaforme sono supportate in questo
rilascio &debian;/arm64. Esiste un unico kernel che supporta tutte
le piattaforme elencate.
Applied Micro (APM) Mustang/X-Gene
L'APM Mustang è stato il primo sistema ARMv8 a essere disponibile. Usa
il SoC X-gene, usato anche su altre macchine, ed è una CPU con 8 core,
scheda ethernet, USB e seriale. Nel fattore di forma comune assomiglia
a un pc desktop ma sono attesi altri formati. La maggior parte
dell'hardware è supportato dal kernel, ma nel kernel di &releasename-cap;
manca il supporto per USB.
ARM Juno Development Platform
Juno è una scheda di sviluppo con una CPU (2xA57, 4xA53) ARMv8-A 800Mhz
con 6 core, grafica Mali (T624), 8GB DDR3 RAM, Ethernet, USB e seriale.
È progettata per la realiazzione e test di sistema di potenza e quindi
non è né piccola né economica ma è una delle prime schede disponibili.
Tutto l'hardware è supportato nel kernel e in &releasename-cap;.
Quando si utilizza &d-i; su sistemi non-UEFI, potrebbe essere
necessario rendere il sistema avviabile al termine dell'installazione,
eseguendo i comandi necessari da una shell avviata all'interno del
&d-i;. flash-kernel sa come impostare l'avvio di un sistema X-Gene
con U-Boot.
Piattaforme supportate da Debian/armhf
I seguenti sistemi funzionano con &debian;/armhf usando il kernel
multipiattaforma (armmp):
Freescale MX53 Quick Start Board
La IMX53QSB è una scheda di sviluppo basata sul SoC i.MX53.
Versatile Express
Versatile Express è una serie di schede per la prototipazione che
consistono in una scheda madre che può essere equipaggiata con varie
CPU su scheda figlia.
Alcune schede di sviluppo e sistemi embedded basati su
Allwinner sunXi
Parecchie schede per sviluppo e sistemi embedded basati sui SoC Allwinner
A10 (nome in codice dell'architettura sun4i
), A10s/A13
(nome in codice dell'architettura sun5i
e A20 (nome
in codice dell'architettura sun7i
) sono supportate dal
kernel armmp. Attualmente l'installazione è pienamente supportata sui
seguenti sistemi basati sul sunXi:
Cubietech Cubieboard 1 + 2 / Cubietruck
LeMaker Banana Pi e Banana Pro
LinkSprite pcDuino e pcDuino3
Mele A1000
Miniand Hackberry
Olimex A10-Olinuxino-LIME / A10s-Olinuxino Micro /
A13-Olinuxino / A13-Olinuxino Micro /
A20-Olinuxino-LIME / A20-Olinuxino-LIME2 / A20-Olinuxino Micro
PineRiver Mini X-Plus
Il supporto per i dispositivi Allwinner basati su sunXi è limitato ai
driver e alle informazioni del device-tree presenti nel kernel Linux.
Il kernel linux-sunxi.org 3.4 derivato da android non è supportato da
Debian.
Sui SoC Allwinner A10, A10s/A13 e A20 il kernel Linux supporta la console
seriale, ethernet, SATA, USB e MMC/SD ma non dispone di driver nativi per
il display locale (HDMI/VGA/LCD) né l'audio. La memoria flash NAND presente
in alcuni sistemi sunXi non è supportata.
Tecnicamente è possibile usare un display locale senza il driver
nativo tramite l'infrastruttura simplefb
presente nel
kernel, la quale si appoggia al bootloader U-Boot
per
l'inizializzazione dell'hardware del diplay; purtroppo tale operazione
non è supportata nella versione di U-Boot presente in &debian; 8.
SolidRun Cubox-i2eX / Cubox-i4Pro
La serie Cubox-i è un insieme di piccoli sistemi a forma di cubo basati
su SoC Freescale della famiglia i.MX6. Il supporto per le serie Cubox-i
è limitato ai driver e alle informazioni del device-tree presenti nel
kernel Linux; il kernel Freescale 3.0 per Cubox-i non è supportato da
Debian. I driver disponibili comprendono console, ethernet, USB,
MMC/SD-card e il video tramite HDMI (console e X11). Oltre a tutto ciò
è supportata anche la porta eSATA presente su Cubox-i4Pro.
Wandboard Quad
Wandboard Quad è una scheda per lo sviluppo basata sul Soc Freescale
i.MX6 Quad. Il supporto per tale scheda è limitato ai driver e alle
informazioni sul device-tree presenti nel kernel Linux; i kernel
delle serie 3.0 e 3.10 disponibili da wandboard.org specifici per la
scheda non sono supportati da Debian. Il kernel Linux contiene i
driver per la console seriale, il video tramite HDMI (console e X11),
ethernet, USB, MMC/SD e SATA. Il supporto per i dispositivi audio
montati sulla scheda (analogico, S/PDIF, HDMI-Audio) e per il modulo
WLAN/Bluetooth non è disponibile in &debian; 8.
Solitamente il supporto ARM multipiattaforma del kernel Linux permette
di usare il &d-i; anche su sistemi armhf non esplicitamente elencati in
precedenza, a condizione che il kernel usato dal &d-i; abbia il
supporto per i componenti del sistema e che sia disponibile un file con
il device-tree. In questo caso l'installatore può solitamente fornire
uno spazio utente funzionante ma probabilmente non è in grado di
impostare l'avvio automatico del sistema perché per questa operazione,
in molti casi, sono necessari informazioni specifiche sul dispositivo.
Quando si usa &d-i; su questi sistemi potrebbe essere necessario,
al termine dell'installazione, rendere il sistema avviabile
manualmente, per esempio, eseguendo gli opportuni comandi dalla
shell disponibile all'interno del &d-i;.
Piattaforme non più supportate da Debian/armhf
EfikaMX
La piattaforma EfikaMX (Genesi Efika Smartbook e Genesi EfikaMX nettop) era
supportata in &debian; 7 grazie a un kernel specifico per questa piattaforma,
da &debian; 8 in poi non è più supportata. Il codice usato in precedenza per
creare il kernel specifico per la piattaforma è stato rimosso dal kernel Linux
nel 2012 e quindi non è possibile creare nuove versioni.
L'uso del kernel multipiattaforma armmp sulla piattaforma EfikaMX potrebbe
richiedere il device-tree di supporto ma attualmente non è disponibile.
Piattaforme supportate da Debian/armel
Le seguenti piattaforme sono supportate da &debian;/armel; richiedono
dei kernel specifici per ciascuna piattaforma.
IXP4xx
La famiglia di processori Intel IXP4xx è utilizzata su dispositivi
NAS (network attached storage) come il Linksys NSLU2.
Anche se il kernel in &debian; 8 supporta questa piattaforma, il &d-i;
non la supporta. Quindi è possibile fare un avanzamento di versione
(dist-upgrade
) da Debian 7 a Debian 8, vista la poca
memoria RAM solitamente presente sui sistemi basati su IXP4xx, è
necessario attivare lo spazio di swap prima di procedere
all'avanzamento. Il supporto per la piattaforma IXP4xx verrà
completamente rimosso in &debian; 9.
Kirkwood
Kirkwood è un sistema su un chip (SoC) della Marvell che integra una
CPU ARM, Ethernet, SATA, USB e altre funzionalità in un unico chip.
Attualmente sono supportati i seguenti dispositivi basati su Kirkwood:
OpenRD (OpenRD-Base, OpenRD-Client e OpenRD-Ultimate), plug computer (SheevaPlug, GuruPluge
e DreamPlug), QNAP
Turbo Station (tutti i modelli TS-11x, TS-21x, TS-41x) e i NAS
LaCie (Network Space v2, Network Space Max v2, Internet Space v2, d2
Network v2, 2Big Network v2 e 5Big Network v2).
Orion5x
Orion è un sistema su un chip (SoC) della Marvell che
integra una CPU ARM, Ethernet, SATA, USB e altre funzionalità in un
unico chip. Sul mercato ci sono molti dispositivi NAS (Network Attached
Storage) basati sul chip Orion. Attualmente sono supportati questi
dispositivi basati sul chip Orion:
Buffalo Kurobox,
D-Link DNS-323 e
HP mv2120.
Versatile
La piattaforma Versatile è emulata da QEMU e quindi è un buon modo per
fare delle prove e per usare &debian; su ARM anche se non si dispone
di un vero hardware.
IXP4xx
La serie di processori Intel IXP4xx è stata utilizzata nei NAS Linksys NSLU2.
&debian; supportava la piattaforma IXP4xx in &debian; 7 ma dalla versione 8
non è più supportata perché il dispositivo dispone di una memoria flash
troppo piccola per il kernel usato in &debian; 8.
Piattaforme non più supportate da Debian/armel
IOP32x
I processori di I/O (IOP) prodotti da Intel sono presenti in molti prodotti
legati alla memorizzazione e all'elaborazione dei dati tipo il GLAN Tank di IO-Data e il Thecus N2100. La piattaforma IOP32x
era supportata in &debian; 7 ma a partire dalla versione 8 non è più
supportata perché la piattaforma ha dei vincoli hardware che non la
rendono adatta per i prossimi rilasci di &debian;.
MV78xx0
La piattaforma MV78xx0 è stata utilizzata sulle schede di sviluppo
Marvell DB-78xx0-BP. Questa piattaforma era supportata in Debian 7
grazie a un kernel specifico (basato sul kernel Linux 3.2) ma dalla
versione 8 in poi non è più supportata.