Drei verschiedene ARM-Portierungen
Die ARM-Architektur hat sich über die Zeit weiterentwickelt und
moderne ARM-Prozessoren bieten Funktionalitäten, die in älteren Modellen
nicht verfügbar waren. &debian; bietet daher drei ARM-Portierungen an,
um aus einem breiten Spektrum verschiedener Maschinen das beste
herauszuholen:
&debian;/armel zielt auf ältere 32-Bit ARM-Prozessoren ohne eigene
Hardware-Fließkommaeinheit (FPU) ab;
&debian;/armhf läuft nur auf neueren 32-Bit ARM-Prozessoren,
die mindestens die ARMv7-Architektur mit Version 3 der
ARM-Vektor-Fließkomma-Spezifikation (VFPv3) implementieren.
&debian;/armhf nutzt die erweiterten Funktionalitäten und
Performance-Steigerungen, die bei diesen Modellen möglich sind.
&debian;/arm64 läuft auf 64-Bit ARM-Prozessoren, die mindestens
die ARMv8-Architektur implementieren.
Technisch gesehen können alle derzeit verfügbaren ARM-CPUs in einem der
beiden Endian-Modi (Big-Endian oder Little-Endian) betrieben werden, in der
Praxis verwendet aber die große Mehrheit der derzeit verfügbaren System den
Little-Endian-Modus. Alle drei ARM-Portierungen (&debian;/arm64, &debian;/armhf
und &debian;/armel) unterstützen nur Little-Endian-Systeme.
Variationen beim ARM-CPU-Design und die komplexe
Situation bei der CPU-Unterstützung
ARM-Systeme sind erheblich verschiedenartiger als die i386-/amd64-basierte
PC-Architektur, daher kann die Situation bei der Unterstützung der CPUs
deutlich komplizierter sein.
Die ARM-Architektur wird hauptsächlich in sogenannten
Systems-on-Chip
(SoC - ein komplettes System
auf einem einzigen Chip) verwendet. Diese SoCs werden von
vielen verschiedenen Herstellern mit sich erheblich unterscheidenden
Hardware-Komponenten (und dies sogar z.B. bei grundlegenden
Funktionalitäten, die benötigt werden, um das System zu starten) entwickelt.
Es wurde in der Vergangenheit viel daran gearbeitet, die Schnittstellen
zur System-Firmware zu standardisieren, aber speziell auf älterer
Hardware variieren die Firmware- und Boot-Schnittstellen teilweise
erheblich, daher muss sich der Linux-Kernel bei ARM-Systemen
um viele systemspezifische Themen auf der niedrigsten Hardware-Ebene
kümmern, die in der PC-Welt vom BIOS des Mainboards abgewickelt werden.
Zu Beginn der ARM-Unterstützung im Linux-Kernel führte dies dazu, dass ein
separater Kernel für jedes ARM-System benötigt wurde, im Gegensatz zu dem
Einer-passt-für-alle
-Kernel bei PC-Systemen.
Da dieser Ansatz nicht mit einer großen Anzahl verschiedener Systeme
funktioniert, wurde damit begonnen, einen einzigen ARM-Kernel zu entwickeln,
der auf verschiedenen ARM-Systemen laufen kann. Die Unterstützung für neue
ARM-Systeme ist jetzt auf eine Art implementiert, die die Nutzung eines
solchen Multiplattform-Kernels erlaubt, aber für mehrere ältere Systeme
ist trotzdem noch ein spezifischer Kernel erforderlich. Aufgrunddessen
unterstützt die standardmäßige &debian;-Distribution nur die Installation
auf einer auswählten Anzahl älterer ARM-Systeme, wobei zusätzlich die
neueren Systeme von den ARM-Multiplattform-Kernel (armmp
genannt) unter &debian;/armhf unterstützt werden.
Die ARM-Architektur wird hauptsächlich in sogenannten
Systems-on-Chip
(SoC - ein komplettes System
auf einem einzigen Chip) verwendet. Diese SoCs werden von
vielen verschiedenen Herstellern mit sich erheblich unterscheidenden
Hardware-Komponenten (und dies sogar z.B. bei grundlegenden
Funktionalitäten, die benötigt werden, um das System zu starten) entwickelt.
In älteren Ausprägungen der ARM-Architektur gab es massive Unterschiede
von einem System zum nächsten, aber ARMv8 (arm64) ist erheblich
mehr standardisiert, und daher ist es für den Linux-Kernel und andere
Software einfacher, diese zu unterstützen.
Server-Versionen der ARMv8-Hardware verwenden typischerweise Standards
gemäß Unified Extensible Firmware Interface (UEFI) und Advanced
Configuration and Power Interface (ACPI).
Diese beiden Standards bieten allgemeingültige, geräteunabhängige
Methoden zum Booten und Konfigurieren von Computer-Hardware.
Sie sind auch in der x86-PC-Welt weit verbreitet.
Plattformen, die von
Debian/arm64 unterstützt werden
Arm64-/AArch64-/ARMv8-Hardware wurde erst recht spät innerhalb des
Entwicklungszyklus' von &debian; &releasename-cap; verfügbar,
somit hatten in diesem Entwicklungsstand nur wenige Plattformen
Unterstützung im Mainline-Kernel verfügbar. Dies ist jedoch die
Hauptanforderung, um &d-i; auf diesen Geräten zum Laufen zu bringen.
Folgende Plattformen werden bekanntermaßen von &debian;/arm64
in dieser Veröffentlichung unterstützt. Es gibt nur ein Kernel-Image,
das alle aufgelisteten Plattformen unterstützt.
Applied Micro (APM) Mustang/X-Gene
Der APM Mustang war das erste Linux-fähige ARMv8-System.
Er nutzt das X-Gene System-on-Chip, das seitdem auch in
anderen Maschinen zum Einsatz kam.
Dies ist eine 8-Kern-CPU mit Ethernet,
USB und seriellem Anschluß.
Einer der verfügbaren Formfaktoren sieht einem
Arbeitsplatz-PC sehr ähnlich, aber es werden in Zukunft
noch andere Varianten erwartet. Die meiste Hardware wird
im Mainline-Kernel unterstützt, allerdings fehlt derzeit
im &releasename-cap;-Kernel die Unterstützung für USB.
ARM Juno Entwickler-Plattform
Juno ist ein leistungsfähiges Entwickler-Board mit
6-Kern-CPU (2xA57, 4xA53, ARMv8-A, 800Mhz), Mali-Grafik
(T624), 8GB DDR3-RAM, Ethernet, USB und seriellem Anschluß.
Es war gedacht für Entwicklungen beim Systemstart und
den Test von Leistungsdaten, daher ist es weder klein noch
billig, aber es war eines der ersten verfügbaren Boards.
Die komplette Onboard-Hardware wird im Mainline-Kernel
und in&releasename-cap; unterstützt.
Wenn der &d-i; auf nicht-UEFI-Systemen eingesetzt wird, müssen Sie
das System am Ende des Installationsprozesses von Hand boot-fähig
machen, z.B. indem Sie die erforderlichen Befehle in einer Shell,
die in der &d-i;-Umgebung gestartet wurde, ausführen. Das
Programm flash-kernel kann X-Gene-Systeme korrekt einrichten, die
mit U-Boot gebootet werden.
Andere Plattformen
Die Multiplattform-Unterstützung im arm64-Linux-Kernel kann auch
den Einsatz von &d-i; auf arm64-Systemen ermöglichen, die nicht explizit
oben aufgelistet sind.
Solange der vom &d-i; genutzte Kernel Unterstützung für die Komponenten
des Zielsystems hat und ein Gerätedatei-Baum für das Zielsystem
vorhanden ist, könnte auch die Installation auf ein neues Zielsystem
korrekt funktionieren.
In diesen Fällen kann der Installer normalerweise eine ordnungsgemäße
Installation durchführen, und wenn UEFI eingesetzt wird, sollte es auch
möglich sein, das System boot-fähig zu machen. Wird UEFI nicht genutzt,
müssen Sie eventuell einige händische Konfigurationsschritte ausführen,
um das System boot-fähig zu machen.
Plattformen,
die von Debian/armhf unterstützt werden
Folgende Systeme funktionieren bekanntermaßen mit &debian;/armhf
unter Verwendung des Multiplattform-Kernels (armmp):
Freescale MX53 Quickstart-Board (MX53-LOCO-Board)
Das IMX53QSB ist ein Entwickler-Board, das auf dem
i.MX53 System-on-Chip beruht.
Versatile Express
Das Versatile Express ist eine Entwickler-Board-Serie von
ARM und besteht aus einer Basisplatine, die mit verschiedenen
CPU-Schwester-Platinen ausgerüstet werden können.
Certain Allwinner sunXi-basierte Entwickler-Boards und
eingebettete (embedded) Systeme
Der armmp-Kernel unterstützt mehrere Entwickler-Boards und
eingebettete Systeme, die auf den SoCs Allwinner A10
(Architektur-Codename sun4i
), A10s/A13
(Architektur-Codename sun5i
), A20
(Architektur-Codename sun7i
), A31/A31s
(Architektur-Codename sun6i
) und A23/A33
(Teil der sun8i
-Familie) basieren.
Volle Installer-Funktionalität (inklusive der Beistellung
von gebrauchsfertigen SD-Karten-Images mit dem Installer)
ist derzeit für folgende sunXi-basierte Systeme verfügbar:
Cubietech Cubieboard 1 + 2 / Cubietruck
LeMaker Banana Pi und Banana Pro
LinkSprite pcDuino und pcDuino3
Olimex A10-Olinuxino-LIME / A20-Olinuxino-LIME /
A20-Olinuxino-LIME2 / A20-Olinuxino Micro / A20-SOM-EVB
Xunlong OrangePi Plus
Die Systemunterstützung für Allwinner sunXi-basierte Systeme
ist auf Treiber und Informationen aus dem Gerätedatei-Baum
beschränkt, welche im Mainline-Linux-Kernel enthalten sind.
Hersteller-spezifische Kernel (wie die Allwinner-SDK-Kernel)
und die 3.4-Kernel-Serie des Android-Derivates linux-sunxi.org
werden von &debian; nicht unterstützt.
Der Mainline-Linux-Kernel unterstützt auf den SoCs Allwinner
A10-, A10s/A13-, A20-, A23/A33- und A31/A31s
grundsätzlich die serielle Konsole, Ethernet, SATA,
USB und MMC-/SD-Karten.
Der Grad der Unterstützung für lokale Displays (HDMI/VGA/LCD)
und Audio-Hardware variert zwischen individuellen Systemen.
Für die meisten Systeme enthält der Kernel keine nativen
Grafiktreiber, sondern verwendet stattdessen die
simplefb
-Infrastruktur, in der der Bootloader
das Display initialisiert und der Kernel dann lediglich den
bereits initialisierten Framebuffer weiter nutzt. Dies
funktioniert grundsätzlich ziemlich gut, allerdings führt es
zu einigen Einschränkungen (die Bildschirmauflösung kann nicht
während des Laufens geändert werden und Powermanagement für
das Display ist nicht möglich).
Fest eingebauter Flash-Speicher, der als Massenspeicher
genutzt werden kann, existiert auf sunXi-basierten Systemen
grundsätzlich in zwei verschiedenen Basisvarianten:
als reiner NAND-Flash- oder als eMMC-Flash-Speicher.
Die meisten älteren sunXi-basierten Boards mit fest eingebautem
Flash-Speicher nutzen reinen NAND-Flash, für den im
Mainline-Kernel - und daher auch in Debian - grundsätzlich
keine Unterstützung vorhanden ist. Ein Reihe neuerer Systeme
nutzt stattdessen eMMC-Flash-Speicher. Solch ein Speicher
erscheint im Prinzip als schnelle, fest eingebaute SD-Karte
und wird genauso wie reguläre SD-Karten unterstützt.
Der Installer enthält prinzipiell auch Unterstützung
für einige sunXi-basierte Systeme, die oben nicht aufgeführt
sind, allerdings ist dies überwiegend ungetestet, da das
&debian;-Projekt keinen Zugriff auf die entsprechende
Hardware hat. Für solche Systeme stellen wir daher keine
gebrauchsfertigen SD-Karten-Images bereit. Dazu gehören
folgende Development-Boards:
Olimex A10s-Olinuxino Micro / A13-Olinuxino /
A13-Olinuxino Micro
Sinovoip BPI-M2 (A31s-based)
Xunlong Orange Pi (A20-based) / Orange Pi Mini (A20-based)
Zusätzlich zu den oben genannten SoCs und Systemen enthält
der Installer sehr reduzierte Unterstützung für das
Allwinner H3-SoC und darauf basierende Systeme.
Unterstützung im Mainline-Kernel für H3-Systeme ist zu der
Zeit des Freezes für Debian 9 noch überwiegend in den Anfängen,
so dass der Installer hier derzeit nur die serielle Konsole,
MMC-/SD-Karten und den USB-Host-Controller unterstützt.
Es gibt noch keinen Treiber für den Onboard-Ethernet-Port auf
H3-Systemen, daher ist eine Netzwerkverbindung nur über einen
USB-Ethernet-Adapter oder einen USB-Wifi-Stick möglich.
Zu H3-Systemen mit solch reduzierter Installer-Unterstützung
gehören:
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
Das NVIDIA Jetson TK1 ist ein Developer-Board, das auf dem
Tegra K1-Chip (auch bekannt als Tegra 124) basiert.
Der Tegra K1 enthält eine Quad-core 32-Bit ARM Cortex-A15 CPU
und eine Kepler GPU (GK20A) mit 192 CUDA-Kernen.
Andere Systeme, die auf dem Tegra 124 basieren, könnten auch
von Debian unterstützt sein.
Seagate Personal Cloud und Seagate NAS
Seagate Personal Cloud und Seagate NAS sind NAS-Geräte
basierend auf Marvells Armada 370-Plattform.
Debian unterstützt
Personal Cloud (SRN21C), Personal Cloud 2-Bay (SRN22C),
Seagate NAS 2-Bay (SRPD20) und Seagate NAS 4-Bay (SRPD40).
SolidRun Cubox-i2eX / Cubox-i4Pro
Die Serie der Cubox-i ist eine Sammlung kleiner würfelförmiger
Systeme, die auf der Freescale i.MX6-SoC-Familie aufbauen.
Die Systemunterstützung für die Cubox-i-Serie ist auf
Treiber und Informationen aus dem Gerätedatei-Baum
beschränkt, welche im Mainline-Linux-Kernel enthalten sind.
Die 3.0-Kernel-Serie von Freescale für Cubox-i wird von
&debian; nicht unterstützt.
Die im Mainline-Kernel verfügbaren Treiber unterstützen
die serielle Konsole, Ethernet, USB und MMC-/SD-Karten sowie
Grafikausgabe über HDMI (Konsole und X11).
Außerdem wird auf dem Cubox-i4Pro auch der eSATA-Port
unterstützt.
Wandboard Quad
Das Wandboard Quad ist ein Development-Board, das auf der
Freescale i.MX6-Quad-SoC-Familie basiert. Die Systemunterstützung
ist auf Treiber und Informationen aus dem Gerätedatei-Baum
beschränkt, welche im Mainline-Linux-Kernel enthalten sind.
Die Wandboard-spezifischen Kernel der Serien 3.0 und 3.10
von wandboard.org werden von &debian; nicht unterstützt.
Die im Mainline-Kernel verfügbaren Treiber unterstützen
die serielle Konsole, Grafikausgabe über HDMI (Konsole und X11),
Ethernet, USB, MMC-/SD-Karten und SATA.
Unterstützung für die Onboard-Audio-Funktionalitäten
(Analog, S/PDIF, HDMI-Audio) sowie für das
Onboard-WLAN/Bluetooth-Modul ist in &debian; 8 nicht
verfügbar.
Grundsätzlich erlaubt die ARM-Multiplattform-Unterstützung im
Linux-Kernel, den &d-i; auch auf Systemen laufen zu lassen, die
hier nicht explizit aufgeführt sind, solange der vom &d-i;
genutzte Kernel Unterstützung für die Systemkomponenten des
Zielsystems hat und eine Gerätebaum-Datei dafür vorhanden ist.
In diesen Fällen kann der Installer normalerweise eine
ordnungsgemäße Installation durchführen, aber möglicherweise
kann das System nicht automatisch boot-fähig gemacht werden,
da dies in vielen Fällen gerätespezifische Informationen erfordert.
Wenn Sie den &d-i; auf solchen Systemen einsetzen, müssen Sie
das System am Ende der Installation von Hand boot-fähig machen,
z.B. indem Sie die erforderlichen Befehle in einer innerhalb des
&d-i; gestarteten Shell ausführen.
Plattformen,
die nicht mehr von Debian/armhf unterstützt werden
EfikaMX
Die EfikaMX-Plattform (Genesi Efika Smartbook und Genesi EfikaMX Nettop)
wurde in &debian; 7 mit einem plattform-spezifischen Kernel unterstützt,
wird aber ab &debian; 8 aufwärts nicht mehr unterstützt. Der Code, der
zum Bau des vorher verwendeten plattformspezifischen Kernels erforderlich
ist, wurde in 2012 aus dem Quellcode des Upstream-Linux-Kernels entfernt,
daher kann Debian keine neueren Kernel mehr bereitstellen. Die Nutzung
des armmp-Multiplattform-Kernels auf der EfikaMX-Plattform würde dafür die
Gerätedatei-Baum-Unterstützung voraussetzen, welche aber derzeit
nicht verfügbar ist.
Plattformen,
die von Debian/armel unterstützt werden
Folgende Plattformen werden von &debian;/armel; unterstützt; sie
erfordern plattform-spezifische Kernel.
Kirkwood
Kirkwood ist ein System-on-Chip
von Marvell, das eine ARM-CPU, Ethernet,
SATA, USB sowie weitere Funktionalitäten in einem Chip vereint. &debian;
unterstützt derzeit folgende Kirkwood-basierte Geräte:
Plug-Computer (SheevaPlug,
GuruPlug, DreamPlug und Seagate FreeAgent DockStar)
QNAP Turbo Station
(alle TS-11x-/TS-12x-, HS-210-, TS-21x-/TS-22x- und TS-41x-/TS-42x-Modelle)
LaCie-NAS-Geräte (Network Space v2, Network Space Max v2, Internet
Space v2, d2 Network v2, 2Big Network v2 und 5Big Network v2)
OpenRD (OpenRD-Base, OpenRD-Client und OpenRD-Ultimate)
Orion5x
Orion ist ein System-on-Chip
von
Marvell, das eine ARM-CPU, Ethernet, SATA, USB sowie weitere Funktionalität
in einem Chip vereint. Es gibt viele Network-Attached-Storage-Geräte (NAS-Systeme -
Geräte, die Speicherplatz im Netzwerk zur Verfügung stellen) auf dem Markt,
die auf dem Orion-Chip basieren. &debian; unterstützt derzeit die folgenden
Orion-basierten Geräte: Buffalo
Kurobox, HP
mv2120 und QNAP TS-109,
TS-209, TS-409 und TS-409U sowie deren Varianten.
Versatile
Die Versatile-Plattform wird von QEMU emuliert und ist deshalb eine nette
Möglichkeit, &debian; auf ARM zu testen und laufen zu lassen, falls echte
Hardware nicht zur Verfügung steht.
Plattformen
und Geräte, die
nicht mehr von Debian/armel unterstützt werden
IXP4xx
Die Unterstützung für die Intel-IXP4xx-Plattform wurde in &debian; 9
entfernt. Das Linksys-Gerät NSLU2 ist ein IXP4xx-basiertes Gerät und
wird daher nicht mehr unterstützt.
Orion5x
Die Unterstützung für die Orion5x-basierten Geräte D-Link DNS-323
und Conceptronic CH3SNAS wurde in &debian; 9 entfernt.
Der Linux-Kernel passt nicht mehr in den Flash-Speicher dieser Geräte.
Andere Orion-Geräte wie Buffalo Kurobox und HP mv2120 werden noch
weiter unterstützt.