2.1. Hardware supportato

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 https://www.debian.org/ports/arm/ per conoscere quali sistemi con architettura ARMv7 32 bit con unità di calcolo in virgola mobile sono stati testati con Debian GNU/Linux.

Piuttosto che cercare di descrivere tutte le diverse configurazioni hardware che sono supportate da ARMv7 32 bit con unità di calcolo in virgola mobile , questa sezione contiene delle informazioni generali e dei riferimenti a documenti dov'è possibile trovare delle informazioni aggiuntive.

2.1.1. Architetture supportate

Debian GNU/Linux 10 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 macchine x86 default
solo domini Xen PV xen
AMD64 & Intel 64 amd64    
ARM armel Marvell Kirkwood e Orion marvell
ARM con FPU hardware armhf multipiattaforma armmp
64bit ARM arm64    
32bit MIPS (big endian) mips MIPS Malta 4kc-malta
Cavium Octeon octeon
64bit MIPS (little endian) mips64el MIPS Malta 5kc-malta
Cavium Octeon octeon
Loongson 3 loongson-3
32bit MIPS (little endian) mipsel MIPS Malta 4kc-malta
Cavium Octeon octeon
Loongson 3 loongson-3
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 ARMv7 32 bit con unità di calcolo in virgola mobile con il kernel Linux. Se si cercano delle informazioni su un'altra delle architetture supportate da Debian si consultati la pagina dei port Debian.

2.1.2. I tre port ARM

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 per fornire il miglior supporto per una gamma molto ampia di macchine:

  • 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. Fa un ampio uso delle funzioni e dei miglioramenti delle prestazioni disponibili su questi modelli.

  • Debian/arm64 funziona sui processori ARM a 64-bit conformi almeno all'architettura ARMv8.

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.

2.1.3. Variazioni nelle CPU ARM e difficoltà di supporto

I sistemi ARM sono molto più eterogenei rispetto a quelli dell'architettura dei PC basati su i386/amd64, quindi il supporto può essere più complicato.

L'architettura ARM è principalmente usata per i SoC («system-on-chip»). 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 sarebbero gestiti dal BIOS della scheda madre.

Agli albori il supporto per ARM nel kernel Linux proprio per la grande varietà di hardware richiedeva di avere un kernel specifico per ciascun sistema ARM ma ciò è in contrasto con il kernel «uno-va-bene-per-tutti» per i sistemi PC. Infatti tale approccio non è scalabile su un gran numero di dispositivi e quindi iniziò il lavoro che ha portato alla realizzazione di un unico kernel ARM che può funzionare su molti sistemi ARM. Adesso 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 la distribuzione Debian standard può essere installata solo su un numero ristretto di vecchi sistemi ARM più vecchi oltre che sui sistemi più recenti supportati con il kernel ARM multipiattaforma (chiamati «armmp») in Debian/armhf.

2.1.4. Piattaforme supportate da Debian/armhf

I seguenti sistemi funzionano con Debian/armhf usando il kernel multipiattaforma (armmp):

Freescale MX53 Quick Start Board (MX53 LOCO 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»), A20 (nome in codice dell'architettura «sun7i»), A31/A31s (nome in codice dell'architettura «sun6i») e A23/A33 (parte della famiglia «sun8i») sono supportate dal kernel armmp. Attualmente l'installazione è pienamente supportata (compresa la preparazione della scheda SD con l'installatore) sui seguenti sistemi basati sul sunXi:

  • Cubietech Cubieboard 1 + 2 / Cubietruck

  • LeMaker Banana Pi e Banana Pro

  • LinkSprite pcDuino e pcDuino3

  • Olimex A10-Olinuxino-LIME / A20-Olinuxino-LIME / A20-Olinuxino-LIME2 / A20-Olinuxino Micro / A20-SOM-EVB

  • Xunlong OrangePi Plus

Il supporto per i dispositivi Allwinner basati su sunXi è limitato ai driver e alle informazioni del device-tree presenti nel kernel Linux. I kernel specifici preparati dai produttori (come i kernel Allwinner SDK) e il kernel linux-sunxi.org 3.4 derivato da android non sono supportati da Debian.

Sui SoC Allwinner A10, A10s/A13, A20, A23/A33 e A31/A31s il kernel Linux supporta la console seriale, ethernet, SATA, USB e MMC/SD; il livello di supporto per il display locale (HDMI/VGA/LCD) e per l'audio variano da sistema a sistema. La maggior parte dei sistemi non dispone di driver nativi per la parte grafica e utilizza l'infrastruttura «simplefb» per la quale il bootloader inizializza il display e il kernel semplicemente utilizza il framebuffer già inizializzato. Solitamente ciò funziona ragionevolmente bene, tuttavia in alcuni casi comporta alcune limitazioni (non è possibile cambiare la risoluzione del display al volo e non è possibile gestire il risparmio energetico).

Sui sistemi sunXi esistono due tipologie di memorie flash da utilizzare come memorie di massa: memoria flash NAND e eMMC. La maggior parte delle schede basate su sunXi più vecchie utilizzano flash NAND, il supporto non è presente nel kernel e di conseguenza nemmeno in Debian. I sistemi più recenti usano flash eMMC al posto di quelle NAND. Un chip flash eMMC appare come una scheda SD veloce, non removibile ed è supportato esattamente come una normale scheda SD.

L'installatore può funzionare in modo basilare anche su sistemi sunXi non elencati in precedenza, tuttavia su tali sistemi non sono stati fatti test perché il progetto Debian non dispone di questo tipo di hardware. Per tali sistemi nobo sono state preparate nessuna immagine con l'installatore per schede SD. Le schede di sviluppo con supporto limitato comprendono:

  • Olimex A10s-Olinuxino Micro / A13-Olinuxino / A13-Olinuxino Micro

  • Sinovoip BPI-M2 (A31s-based)

  • Xunlong Orange Pi (A20-based) / Orange Pi Mini (A20-based)

In aggiunta ai SoC e dispositivi elencati in precedenza l'installatore dispone di un supporto limitato per il SoC Allwinner H3 e per alcune schede basate su esso. Il lavoro per inserire il supporto per H3 nel kernel è in corso al momento in cui Debian 9 è stata congelata per il rilascio, quindi sui sistemi H3 l'installatore gestisce solo la console seriale, MMC/SD e il controller USB. Non esistono ancora driver per la porta ethernet a bordo e l'unico modo per collegare l'H3 a una rete è attraverso un adattatore USB ethernet o tramite un dongle USB wifi. I sistemi basati su H3 per i quali è disponibile questo limitatissimo supporto sono:

  • FriendlyARM NanoPi NEO

  • Xunlong Orange Pi Lite / Orange Pi One / Orange Pi PC / Orange Pi PC Plus / Orange Pi Plus / Orange Pi Plus 2E / Orange Pi 2

NVIDIA Jetson TK1

La NVIDIA Jetson TK1 è una scheda per sviluppo basata sul chip Tegra K1 (conosciuto anche come Tegra 124). Il Tegra 124 dispone di una CPU ARM con quattro core a 32 bit Cortex-A15 e una GPU Kepler (GK20A) con 192 CUDA core. Potrebbero funzionare anche altri sistemi basati su Tegra 124.

Seagate Personal Cloud e Seagate NAS

I dispositivi Seagate Personal Cloud e Seagate NAS sono basati sulla piattaforma Marvell Armada 370. Debian funzona su Personal Cloud (SRN21C), Personal Cloud 2-Bay (SRN22C), Seagate NAS 2-Bay (SRPD20) e Seagate NAS 4-Bay (SRPD40).

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

Le Wandboard Quad, Dual e Solo sono schede per lo sviluppo basate sul Soc Freescale i.MX6 Quad. Il supporto per tali sistemi è 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 le schede 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, SATA (solo Quad) e audio analogico. Il supporto per gli altri dispositivi audio montati sulla scheda (S/PDIF, HDMI-Audio) e per il modulo WLAN/Bluetooth non sono stati testati oppure non sono disponibili in Debian 9.

Solitamente il supporto ARM multipiattaforma del kernel Linux permette di usare il installatore Debian anche su sistemi armhf non esplicitamente elencati in precedenza, a condizione che il kernel usato dal installatore Debian 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 un'installazione funzionante ma potrebbe essere in grado di impostare l'avvio automatico del sistema. Per questa operazione, in molti casi, sono necessari informazioni specifiche sul dispositivo.

Quando si usa installatore Debian 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 installatore Debian.

2.1.5. 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.

2.1.6. Sistemi multiprocessore

Il supporto multiprocessore — detto anche «symmetric multiprocessing» o SMP — è disponibile per questa architettura. Il kernel standard di Debian 10 è 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.

2.1.7. Hardware grafico supportato

Il supporto di Debian per le interfacce grafiche è determinato dal supporto sottostante fornito dal sistema X11 di X.Org e dal kernel. La grafica di base del framebuffer è fornita dal kernel invece gli ambienti desktop utilizzano X11. La disponibilità delle funzionalità avanzate della scheda grafica come l'accelerazione 3D o l'accelerazione video dipende da quale hardware è installato nel sistema e in alcuni casi potrebbe essere necessario installare delle immagini aggiuntive con il «firmware» (consultare Sezione 2.2, «Dispositivi che richiedono firmware specifico»).

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 buster 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 https://wiki.freedesktop.org/xorg/. Debian 10 include la versione 7.7 di X.Org.

2.1.8. Schede di rete

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 ARMv7 32 bit con unità di calcolo in virgola mobile , la maggior parte dei dispositivi Ethernet integrati sono supportati e i moduli per i dispositivi PCI e USB aggiuntivi sono disponibili.

2.1.9. Periferiche e altro hardware

Linux supporta una grande varietà di dispositivi hardware come per esempio mouse, stampanti, dispositivi PCMCIA/CardBus/ExpressCard e USB. Tuttavia molte di queste periferiche non sono necessarie durante l'installazione del sistema.