Debian non ha nessun requisito aggiuntivo all'hardware oltre a quelli necessari al funzionamento del kernel Linux o kFreeBSD e dei programmi GNU. Perciò è possibile usare Debian su qualsiasi architettura o piattaforma verso cui è stato fatto il port del kernel Linux o kFreeBSD, della libc e del gcc e per la quale esiste il port di Debian. Consultare le pagine dei port su http://www.debian.org/ports/arm/ per conoscere quali sistemi con architettura 32-bit hard-float ARMv7 sono stati testati con Debian GNU/Linux.
Piuttosto che cercare di descrivere tutte le diverse configurazioni hardware che sono supportate da 32-bit hard-float ARMv7, questa sezione contiene delle informazioni generali e dei riferimenti a documenti dov'è possibile trovare delle informazioni aggiuntive.
Debian GNU/Linux 8 supporta dieci architetture principali e diverse varianti di ogni architettura, che vanno sotto il nome di «flavor».
Architettura | Indicazione Debian | Sottoarchitettura | Variante (flavor) |
---|---|---|---|
Intel x86-based | i386 | ||
AMD64 & Intel 64 | amd64 | ||
ARM | armel | Intel IXP4xx | ixp4xx |
Marvell Kirkwood | kirkwood | ||
Marvell Orion | orion5x | ||
Versatile | versatile | ||
ARM con FPU hardware | armhf | multipiattaforma | armmp |
multipiattaforma per sistemi con LPAE | armmp-lpae | ||
64bit ARM | arm64 | ||
MIPS (big endian) | mips | SGI IP22 (Indy/Indigo 2) | r4k-ip22 |
SGI IP32 (O2) | r5k-ip32 | ||
MIPS Malta (32 bit) | 4kc-malta | ||
MIPS Malta (64 bit) | 5kc-malta | ||
MIPS (little endian) | mipsel | MIPS Malta (32 bit) | 4kc-malta |
MIPS Malta (64 bit) | 5kc-malta | ||
IBM/Motorola PowerPC | powerpc | PowerMac | pmac |
PReP | prep | ||
Sistemi Power | ppc64el | IBM POWER8 o macchine più recenti | |
64bit IBM S/390 | s390x | IPL da VM-reader e DASD | generico |
Questo documento tratta l'installazione sull'architettura 32-bit hard-float ARMv7 con il kernel Linux. Se si cercano delle informazioni su un'altra delle architetture supportate da Debian si consultati la pagina dei port Debian.
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.
L'hardware Arm64/AArch64/ARMv8 è diventato disponibile quando il ciclo
di sviluppo di Debian Jessie 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 debian-installer
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 debian-installer
anche sui sistemi non esplicitamente
elencati, l'importante e che il kernel del debian-installer
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.
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 Jessie manca il supporto per USB.
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 Jessie.
Quando si utilizza debian-installer
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
debian-installer
. flash-kernel sa come impostare l'avvio di un sistema X-Gene
con U-Boot.
I seguenti sistemi funzionano con Debian/armhf usando il kernel multipiattaforma (armmp):
La IMX53QSB è una scheda di sviluppo basata sul SoC i.MX53.
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.
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.
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 è 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 debian-installer
anche su sistemi armhf non esplicitamente elencati in
precedenza, a condizione che il kernel usato dal debian-installer
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 debian-installer
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 debian-installer
.
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.
Le seguenti piattaforme sono supportate da Debian/armel; richiedono dei kernel specifici per ciascuna piattaforma.
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 debian-installer
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 è 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).
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.
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.
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.
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.
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.
Il supporto multiprocessore — detto anche «symmetric multiprocessing» o SMP — è disponibile per questa architettura. Il kernel standard di Debian 8 è stato compilato con il supporto per SMP-alternatives. Questo vuol dire che il kernel rileva il numero di processori (o il numero di core) e disattiva automaticamente l'SMP sui sistemi monoprocessore.
In origine la presenza più processori in un computer era una caratteristica solo dei sistemi server di alto livello, negli ultimi anni questa caratteristica è diventata molto comune grazie ai cosiddetti processori «multi-core». Tali processori contengono due o più unità di elaborazione, chiamate «core», all'interno di un solo chip.
Su quasi tutte le macchine ARM l'hardware grafico è integrato anziché essere su una scheda da inserire. Alcune macchine dispongono di slot d'espansione in cui è possibile inserire schede grafiche, ma sono delle rarità. Invece è abbastanza comune trovare dell'hardware progettato per essere usato senza monitor e senza tastiera. Anche se il framebuffer video fornito dal kernel funziona tutti i dispositivi grafici, per far funzionare la grafica 3D sono necessari dei driver binari. Questa situazione si evolve molto rapidamente, al momento del rilascio di jessie sono disponibili i driver liberi per nouveau (Nvidia Tegra K1 SoC) e freedreno (Qualcomm Snapdragon SoCs). Altri hardware richiedono driver non-free da terze parti.
I dettagli sull'hardware grafico e i dispositivi di puntamento supportati possono essere trovati in http://xorg.freedesktop.org/. Debian 8 include la versione 7.7 di X.Org.
Quasi tutte le schede di rete (NIC) supportate dal kernel Linux standard dovrebbero essere supportate anche dal sistema d'installazione; normalmente i driver sono caricati automaticamente.
Su 32-bit hard-float ARMv7, la maggior parte dei dispositivi Ethernet integrati sono supportati e i moduli per i dispositivi PCI e USB aggiuntivi sono disponibili.