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 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) und A20 (Architektur-Codename sun7i) basieren. Volle Installer-Funktionalität 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 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 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. Die 3.4-Kernel-Serie des Android-Derivates linux-sunxi.org wird von &debian; nicht unterstützt. Der Mainline-Linux-Kernel unterstützt auf Allwinner A10-, A10s/A13- und A20-SoCs grundsätzlich die serielle Konsole, Ethernet, SATA, USB und MMC-/SD-Karten, enthält aber keine nativen Treiber für Grafik- (HDMI/VGA/LCD) und Audio-Hardware auf diesen SoCs. Der NAND-Flash-Speicher, der in einige sunXi-basierte Systeme eingebaut ist, wird nicht unterstützt. Die Verwendung eines lokalen Displays ist durch die simplefb-Infrastruktur im Mainline-Kernel technisch gesehen auch ohne native Display-Treiber möglich. simplefb ist dabei für die Initialisierung der Display-Hardware auf den U-Boot-Bootloader angewiesen, allerdings wird dies durch die U-Boot-Version in &debian; 8 nicht unterstützt. 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. IXP4xx Die Intel-IXP4xx-Prozessor-Serie wird in NAS-Geräten (Network-Attached-Storage-Systeme – Geräte, die Speicherplatz im Netzwerk zur Verfügung stellen) wie dem Linksys NSLU2 eingesetzt. Während für diese Plattform Kernel-Unterstützung in &debian; 8 vorhanden ist, wird sie nicht durch den &d-i; unterstützt. Es ist allerdings möglich, bei vorhandenen Installationen ein dist-upgrade (System-Upgrade) von &debian; 7 auf &debian; 8 durchzuführen. Aufgrund des kleinen RAM-Speichers, den die IXP4xx-Systeme haben, ist es aber erforderlich, dass vor dem Upgrade der Swap-Speicher aktiviert wird. Die Unterstützung für die IXP4xx-Plattform wird in &debian; 9 komplett entfallen. 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: OpenRD (OpenRD-Base, OpenRD-Client und OpenRD-Ultimate), Plug-Computer (SheevaPlug, GuruPlug und DreamPlug), QNAP Turbo Station (alle TS-11x-, TS-21x- und TS-41x-Modelle) sowie LaCie NAS-Geräte (Network Space v2, Network Space Max v2, Internet Space v2, d2 Network v2, 2Big Network v2 und 5Big Network v2). 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, D-Link DNS-323 und HP mv2120. 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, die nicht mehr von Debian/armel unterstützt werden IOP32x Intels I/O-Prozessor-Serie (IOP) ist in einer Reihe von Produkten für Datenspeicherung und -verarbeitung zu finden, wie z.B. in dem GLAN Tank von IO-Data und dem Thecus N2100. Die IOP32x-Plattform wurde in &debian; 7 unterstützt, aber ab &debian; 8 wird sie aufgrund von Hardware-Einschränkungen der Plattform, die sie für die Installation neuerer &debian;-Veröffentlichungen ungeeignet machen, nicht mehr unterstützt. MV78xx0 Die MV78xx0-Plattform wurde auf dem Marvell DB-78xx0-BP Development-Board eingesetzt. Sie wurde in &debian; 7 mit einem plattform-spezifischen Kernel (basierend auf dem Linux-Kernel Version 3.2) unterstützt, wird jedoch ab &debian; 8 nicht mehr unterstützt.