Debian stelt geen extra vereisten inzake hardware bovenop de vereisten die gesteld worden door de Linux- of de KFreeBSD-kernel en de GNU-gereedschapssets. Daardoor kan Debian gebruikt worden op elke architectuur of elk platform waarvoor de Linux- of de KFreeBSD-kernel, libc, gcc, enz. geschikt gemaakt werden en waarvoor een Debian-uitgave bestaat. Raadpleeg de pagina's over geschikte architecturen (ports) op https://www.debian.org/ports/arm/ voor meer informatie over systemen van de architectuur 32-bit hard-float ARMv7 waarop Debian GNU/Linux getest werd.
Eerder dan alle verschillende ondersteunde hardwareconfiguraties van 32-bit hard-float ARMv7 te proberen beschrijven, bevat dit hoofdstuk algemene informatie en verwijzingen naar plaatsen waar bijkomende informatie gevonden kan worden.
Debian GNU/Linux 12 ondersteunt 9 hoofdarchitecturen en verschillende variaties van elk van die architecturen, “varianten” (flavors) genoemd.
Architectuur | Aanduiding in Debian | Onderarchitectuur | Variant |
---|---|---|---|
AMD64 & Intel 64 | amd64 | ||
Gebaseerd op Intel x86 | i386 | standaard x86-systemen | standaard |
enkel Xen PV domeinen | xen | ||
ARM | armel | Marvell Kirkwood en Orion | marvell |
ARM met hardware-FPU | armhf | multiplatform | armmp |
64bits ARM | arm64 | ||
64bits MIPS (little endian) | mips64el | MIPS Malta | 5kc-malta |
Cavium Octeon | octeon | ||
Loongson 3 | loongson-3 | ||
32bits MIPS (little endian) | mipsel | MIPS Malta | 4kc-malta |
Cavium Octeon | octeon | ||
Loongson 3 | loongson-3 | ||
Power Systems | ppc64el | IBM POWER8 of recentere machines | |
64bits IBM S/390 | s390x | IPL van VM-reader en DASD | generieke |
Dit document behandelt de installatie op de architectuur 32-bit hard-float ARMv7 met de kernel Linux. Indien u op zoek bent naar informatie over een van de andere door Debian ondersteunde architecturen, raadpleeg dan de webpagina Architecturen waarop Debian werkt (Ports).
Mettertijd is de ARM-architectuur geëvolueerd en moderne ARM-processors hebben functionaliteit die in oudere modellen niet aanwezig was. Daarom brengt Debian drie verschillende uitgaven (ports) uit voor ARM om op die manier de best mogelijke ondersteuning te bieden voor een zeer ruim scala van verschillende machines:
Debian/armel is bedoeld voor oudere 32-bits ARM-processoren zonder ondersteuning voor een hardware floating point unit (FPU),
Debian/armhf werkt alleen op recentere 32-bits ARM-processoren die minstens de architectuur ARMv7 met versie 3 van de ARM vector floating point specificatie (VFPv3) toepassen. Ze maakt gebruik van de uitgebreide functionaliteit en de verbeterde prestaties van deze modellen.
Debian/arm64 werkt op 64-bits ARM-processoren die minstens de architectuur ARMv8 toepassen.
Vanuit technisch oogpunt kunnen alle momenteel beschikbare ARM CPU's volgens beide endian-modi (big of little) functioneren, maar in de praktijk gebruikt het grootste deel de modus little-endian. Zowel Debian/arm64, Debian/armhf als Debian/armel ondersteunen enkel little-endian systemen.
ARM-systemen zijn veel heterogener dan systemen die een i386/amd64 PC-architectuur als basis hebben. Daardoor kan de situatie wat ondersteuning betreft, veel gecompliceerder zijn.
De ARM-architectuur wordt hoofdzakelijk gebruikt in zogenaamde “system-on-chip” (SoC) designs (geïntegreerde schakelingen). Dergelijke SoC's worden ontworpen door zeer veel verschillende bedrijven die gebruik maken van erg uiteenlopende hardwarecomponenten, zelfs voor de meest basale functionaliteit die het systeem activeert. Mettertijd werden systeemfirmware-interfaces in toenemende mate gestandaardiseerd, maar vooral op oudere hardware zijn er grote verschillen op het gebied van firmware/opstart-interfaces. Op dergelijke systemen moet de Linuxkernel rekening houden met veel systeemspecifieke basiszaken, die in de PC-wereld door het BIOS/UEFI van het moederbord ter harte genomen zouden worden.
Bij het begin van de ondersteuning voor ARM in de Linuxkernel vereiste de variatie in hardware een aparte kernel voor elk ARM-systeem in tegenstelling tot de uniforme (“one-fits-all”) kernel voor PC-systemen. Aangezien een dergelijke aanpak niet past bij een groot aantal verschillende systemen, werd er gewerkt aan een kernel die uiteenlopende ARM-systemen kan opstarten en erop kan functioneren. Recentere ARM-systemen worden nu ondersteund op een manier die het gebruik van een dergelijke multplatform-kernel toelaat, maar voor verschillende oudere systemen is nog steeds een aparte specifieke kernel vereist. Om die reden kan de standaarddistributie van Debian slechts op een beperkt aantal van dergelijke oudere ARM-systemen geïnstalleerd worden. Daarnaast worden de nieuwere systemen ondersteund door de multiplatformkernels voor ARM (“armmp” genaamd) in Debian/armhf.
Van de volgende systemen is bekend dat ze werken met Debian/armhf als de multiplatformkernel (armmp) gebruikt wordt:
De IMX53QSB is een ontwikkelingsbord, gebaseerd op het i.MX53 SoC.
De Versatile Express is een serie van ontwikkelingsborden van ARM die bestaan uit een basisbord dat uitgerust kan worden met verschillende CPU dochterborden.
De armmp-kernel ondersteunt verschillende ontwikkelingsborden en ingebedde systemen die gebaseerd zijn op de Allwinner SoC's A10 (architectuurcodenaam “sun4i”), A10s/A13 (architectuurcodenaam “sun5i”), A20 (architectuurcodenaam “sun7i”), A31/A31s (architectuurcodenaam “sun6i”) en A23/A33 (onderdeel van de “sun8i”-familie). Het installatiesysteem biedt momenteel volledige ondersteuning (met inbegrip van de beschikbaarheid van gebruiksklare SD-kaartimages met het installatiesysteem) voor de volgende op sunXi gebaseerde systemen:
Cubietech Cubieboard 1 + 2 / Cubietruck
LeMaker Banana Pi en Banana Pro
LinkSprite pcDuino en pcDuino3
Olimex A10-Olinuxino-LIME / A20-Olinuxino-LIME / A20-Olinuxino-LIME2 / A20-Olinuxino Micro / A20-SOM-EVB
Xunlong OrangePi Plus
Systeemondersteuning voor apparaten die gebaseerd zijn op Allwinner sunXi blijft beperkt tot de stuurprogramma's en de apparaatinformatie die in de standaardkernel beschikbaar zijn. Leveranciersspecifieke kernel-apparatenlijsten en de van android afgeleide 3.4 kernels van linux-sunxi.org worden door Debian niet ondersteund.
Over het algemeen ondersteunt de hoofdversie van de Linux-kernel op de Allwinner SoC's A10, A10s/A13, A20, A23/A33 en A31/A31s de seriële console, ethernet, SATA en MMC/SD-kaarten. De mate van ondersteuning voor een lokaal beeldscherm (HDMI/VGA/LCD) en voor audio-hardware verschilt naargelang het systeem. Voor de meeste systemen bevat de kernel zelf geen grafische stuurprogramma's, maar maakt hij gebruik van de “simplefb”-infrastructuur waarin de bootloader het scherm initialiseert en waarbij de kernel gewoon de vooraf geïnitialiseerde framebuffer hergebruikt. Over het algemeen functioneert dit behoorlijk goed, hoewel dit zekere beperkingen inhoudt (de schermresolutie kan niet in een oogwenk aangepast worden en de energiebeheerfunctionaliteit van het scherm gebruiken is niet mogelijk).
Het ingebouwd flashgeheugen dat bedoeld is om als massaopslagapparaat gebruikt te worden bestaat in twee basisvarianten op systemen die gebaseerd zijn op sunXi: ruw NAND-flash en eMMC-flash. De meeste oudere op sunXi-gebaseerde borden met ingebouwde flashopslagcapaciteit gebruiken ruw NAND-flash waarvoor in de hoofdversie van de kernel meestal geen ondersteuning voorzien is en daarom ook niet in Debian. Een aantal recentere systemen gebruiken eMMC-flash in plaats van NAND-flash. Een chip met eMMC-flash wordt meestal herkend als een snelle niet-verwijderbare SD-kaart en wordt op dezelfde manier ondersteund als een gewone SD-kaart.
Het installatiesysteem biedt een basale ondersteuning voor een aantal op sunXi-gebaseerde systemen die hierboven niet vermeld worden. Maar vermits het Debian project geen toegang heeft tot de betreffende hardware is het installatiesysteem er nauwelijks of niet op uitgeprobeerd. Voor dergelijke systemen worden geen vooraf gecompileerde SD-kaartimages voorzien. Tot de ontwikkelingsborden waarvoor de ondersteuning beperkt is, behoren:
Olimex A10s-Olinuxino Micro / A13-Olinuxino / A13-Olinuxino Micro
Sinovoip BPI-M2 (gebaseerd op A31s)
Xunlong Orange Pi (gebaseerd op A20) / Orange Pi Mini (gebaseerd op A20)
Naast de hierboven vermelde SoC's en systemen, biedt het installatiesysteem een zeer beperkte ondersteuning voor de H3 SoC van Allwinner en voor een aantal borden die erop gebaseerd zijn. Ondersteuning voor de H3 in de hoofdversie van de kernel was nog in volle ontwikkeling toen het tijd was voor het bevriezen van de ontwikkeling in functie van de release van Debian 9. Om die reden ondersteunt het installatiesysteem van Debian bij systemen die op H3 gebaseerd zijn, enkel de seriële console, MMC/SD en de USB-controller van de computer. Er is nog geen stuurprogramma voor de ethernetpoort van H3-borden. Daarom kan het netwerk enkel gebruikt worden met behulp een USB ethernetadapter of een USB wifi-dongle. Systemen die gebaseerd zijn op de H3 en waarvoor een dergelijke basisondersteuning door het installatiesysteem bestaat, zijn:
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
De NVIDIA Jetson TK1 is een ontwikkelingsbord dat gebaseerd is op de Tegra K1 chip (ook bekend als de Tegra 124). De Tegra K1 heeft een quad-core 32-bits ARM Cortex-A15 CPU en een Kepler GPU (GK20A) met 192 CUDA-kernen. Ook andere systemen gebaseerd op de Tegra 124 kunnen werken.
De Seagate Personal Cloud en Seagate NAS zijn NAS-apparaten die gebaseerd zijn op het platform Armada 370 van Marvell. Debian ondersteunt de Personal Cloud (SRN21C), Personal Cloud 2-Bay (SRN22C), Seagate NAS 2-Bay (SRPD20) en de Seagate NAS 4-Bay (SRPD40).
De Cubox-i-modellen zijn een reeks kleine kubusvormige systemen, gebaseerd op de SoC-familie Freescale i.MX6. Systeemondersteuning voor de Cubox-i-modellen blijft beperkt tot de stuurprogramma's en apparaatinformatie die in de standaard Linuxkernel beschikbaar zijn. De Freescale 3.0 kernels voor de Cubox-i worden niet ondersteund door Debian. De standaardkernel bevat onder meer stuurprogramma's voor de seriële console, voor ethernet, voor USB, voor MMC/SD-kaarten en voor schermondersteuning over HDMI (console en X11). Daarenboven wordt ook de eSATA-poort op de Cubox-i4Pro ondersteund.
De Wandboard Quad, Dual en Solo zijn ontwikkelingsborden die gebaseerd zijn op het Freescale i.MX6 Quad SoC. Systeemondersteuning blijft beperkt tot de stuurprogramma's en apparaatinformatie die in de standaard Linuxkernel beschikbaar zijn. De wandboard-specifieke 3.0 en 3.10 kernels van wandboard.org worden niet ondersteund door Debian. De standaardkernel bevat onder meer stuurprogramma's voor de seriële console, voor weergave via HDMI (console en X11), voor ethernet, voor USB, voor MMC/SD, voor SATA (enkel Quad) en voor analoge audio. Ondersteuning voor de andere audiomogelijkheden (S/PDIF, HDMI-Audio) en voor de ingebouwde WLAN/Bluetooth-module is in Debian 9 niet aanwezig.
Over het algemeen laat de multiplatform-ondersteuning in de Linuxkernel voor ARM toe om debian-installer
te gebruiken op armhf-systemen die hierboven niet expliciet vermeld werden, zolang de kernel die door debian-installer
gebruikt wordt, de componenten van het doelsysteem ondersteunt en er voor dat doelsysteem een bestand met apparatenlijst (device-tree file) beschikbaar is. In dergelijke gevallen kan het installatieprogramma gewoonlijk voor een werkende installatie zorgen, maar het zal niet in staat zijn om het systeem automatisch opstartbaar te maken. Om dat te kunnen doen heeft men in veel gevallen apparaatspecifieke informatie nodig.
Wanneer u debian-installer
op dergelijke systemen gebruikt, zult u het systeem handmatig opstartbaar moeten maken op het einde van de installatie, bijvoorbeeld door de vereiste commando's uit te voeren in een shell die vanuit debian-installer
gestart werd.
Ondersteuning voor meerdere processoren — ook wel “symmetric multiprocessing” of SMP genoemd — is voor deze architectuur beschikbaar. Het standaard kernelimage van Debian 12 werd gecompileerd met ondersteuning voor SMP-alternatives (SMP-varianten). Dit houdt in dat de kernel het aantal processoren (of processorkernen) vaststelt en SMP automatisch uitschakelt op systemen met slechts één processor.
De aanwezigheid van meerdere processoren in een computer was oorspronkelijk slechts weggelegd voor serversystemen uit het topsegment, maar is de laatste jaren ongeveer overal een gewone zaak geworden met de introductie van de zogenaamde “multi-core”-processoren (multikernprocessoren). Deze hebben in één enkele fysieke chip twee of meer processoreenheden, die “cores” of kernen genoemd worden.
De ondersteuning van Debian voor grafische interfaces wordt bepaald door de onderliggende ondersteuning ervan in het X11-systeem van X.Org en in de kernel. Basale grafische weergave via de framebuffer wordt door de kernel geleverd, terwijl een desktopomgeving gebruik maakt van X11. Of geavanceerde functionaliteit van grafische kaarten, zoals 3D hardwareacceleratie of video met hardwareacceleratie beschikbaar is, hangt af van de grafische hardware die in het systeem gebruikt wordt en in sommige gevallen ook van het extra installeren van “firmware”-images (zie Paragraaf 2.2, “Apparaten waarvoor firmware vereist is”).
Bijna alle ARM-machines hebben de grafische hardware ingebouwd in plaats van op een in te pluggen grafische kaart. Sommige machines hebben expansiesloten waarin een grafische kaart geplaatst kan worden, maar dat is een rariteit. Hardware die bedoeld is als een systeem zonder toetsenbord en beeldscherm (headless) heeft vrij courant geen grafische hardware. Terwijl basale grafische weergave via de framebuffer waarvoor de kernel instaat, op elk apparaat met grafische hardware zou moeten werken, moet snelle 3D grafische hardware steevast binaire stuurprogramma's hebben om te kunnen functioneren. De situatie verandert snel, maar op het ogenblik van de release van bookworm zijn vrije stuurprogramma's voor nouveau (Nvidia Tegra K1 SoC) en freedreno (Qualcomm Snapdragon SoC's) beschikbaar in de release. Andere hardware heeft niet-vrije stuurprogramma's nodig van derden.
Meer informatie over ondersteunde grafische hardware en aanwijsapparaten is te vinden op https://wiki.freedesktop.org/xorg/. Debian 12 bevat versie 7.7 van X.Org.
Zowat elke netwerkkaart (NIC) die door de kernel Linux ondersteund wordt, zou ook moeten ondersteund worden door het installatiesysteem. Stuurprogramma's zouden normaal automatisch geladen moeten worden.
Op 32-bit hard-float ARMv7 worden de meeste ingebouwde ethernetapparaten ondersteund en worden modules voorzien voor bijkomende PC- en USB-apparaten.