2.1. 支持的硬件

Debian 不会超出 Linux 内核与 GNU 工具集所支持的硬件范围之外。因此,任何被移植了 Linux 内核、libc、gcc 等,并拥有对应的 Debian 移植版的硬件体系或平台都可以运行 Debian。请参考移植页面 https://iwawocd.cewmufwd.tk/ports/arm/ 以了解更多已被 Debian GNU/Linux 测试过的 32-bit hard-float ARMv7 体系。

本章仅包含一些通用的信息,以及在何处可以获得更多信息的指导,而不是试图列出支持 32-bit hard-float ARMv7 的所有不同硬件配置。

2.1.1. 支持的体系

Debian GNU/Linux 12 支持 9 种主要架构,和一些称为 flavors 的衍生品种。

体系 Debian 命名 子体系 Flavor
AMD64 & Intel 64 amd64    
基于 Intel x86 i386 默认的 x86 机器 default
仅 Xen PV 域 xen
ARM armel Marvell Kirkwood marvell
带 FPU 的 ARM armhf 多平台 armmp
64 位 ARM arm64    
MIPS(小尾端) mips64el MIPS Malta 5kc-malta
Cavium Octeon octeon
Loongson 3 loongson-3
MIPS(小尾端) mipsel MIPS Malta 4kc-malta
Cavium Octeon octeon
Loongson 3 loongson-3
Power 系统 ppc64el IBM POWER8 或更新的机器  
64 位 IBM S/390 s390x 来自 VM-reader 和 DASD 的 IPL generic

本文档主要讲述的是 32-bit hard-float ARMv7 体系下的安装。如果您在寻找其他 Debian 所支持的体系的信息,请访问 Debian-Ports 网页。

2.1.2. 三种不同的 ARM 移植

ARM 架构随着时间的推移而发展,现代 ARM 处理器提供了旧型号上不可用的功能。因此,Debian 提供了三种 ARM 移植,可以为各种不同的机器提供最佳支持:

  • Debian/armel 针对旧的 32 位 ARM 处理器,而不支持硬件浮点单元(FPU),

  • Debian/armhf 仅适用于较新的 32 位 ARM 处理器,其至少实现了 ARMv7 架构,且支持 ARM 矢量浮点规范(VFPv3)第 3 版。此移植可利用这些型号上可用的扩展和性能增强功能。

  • Debian/arm64 适用于 64 位 ARM 处理器,其至少实现了 ARMv8 架构。

大多数的 ARM CPU 可以运行在(大尾或小尾)任一尾端模式下。但是当前绝大多少系统的实现都是使用小尾端模式。Debian 现在也仅支持小尾端 ARM 系统。

2.1.3. ARM CPU 设计的变化性和支持的复杂性

ARM 系统比基于 i386/amd64 的 PC 机更加多样,因此支持情况可能会非常复杂。

ARM 架构主要用于所谓的片上系统(SoC)设计。这些 SoC 由许多不同的公司设计,即使是对于系统工作所需的非常基本的功能,硬件组件变化也非常大。随着时间的推移,系统固件界面越来越标准化,但很多方面也发生了变化,尤其是对较旧的硬件固件/启动接口而言,所以在这些系统上,Linux 内核必须关注许多系统特定的低级问题,而在 PC 上这些问题则是由主板的 BIOS/UEFI 负责解决。

在 Linux 内核开始支持 ARM 时,硬件种类的不同导致了要为每个 ARM 系统分别移植内核,而不是像在 PC 系统上到处适用的内核。由于此方法不能扩展到大量不同的系统,因此工作方向为使单个 ARM 内核可在不同的ARM系统上进行引导。现在,对较新 ARM 系统的支持都是以这种多平台内核的方式实现的,但对于一些旧系统,仍然需要单独的定制内核。正因如此,标准 Debian 发行版对这种较旧 ARM 系统,仅支持在特定种类上安装,而新系统则由 Debian/armhf 中的 ARM 多平台内核(称为 armmp)提供支持。

2.1.4. Debian/armhf 支持的平台

已知以下系统可使用 multipatform(armmp)内核运行 Debian/armhf:

Freescale MX53 Quick Start Board (MX53 LOCO Board)

IMX53QSB 是基于 i.MX53 SoC 的开发板。

Versatile Express

Versatile Express 是 ARM 系列开发板,由可以配备各种 CPU 子卡的基板组成。

某些基于 Allwinner sunXi 的开发板和嵌入式系统

armmp 内核支持基于 Allwinner A10(架构代号 sun4i),A10s/A13(架构代号 sun5i),A20(架构代号 sun7i),A31/A31s(架构代号 sun6i)和 A23/A33(sun8i系列的一部分)SoC 的开发板和嵌入式系统。安装程序目前提供对以下基于 sunXi 的系统的完整支持(包括提供预置安装程序的 SD 卡映像):

  • Cubietech Cubieboard 1 + 2 / Cubietruck

  • 乐美客香蕉派(Banana Pi)和香蕉派专业版(Banana Pro)

  • LinkSprite pcDuino 和 pcDuino3

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

  • 迅龙香橙派+(OrangePi Plus)

基于 Allwinner sunXi 设备的系统支持仅限于主线 Linux 内核中提供的驱动程序和设备树信息。Debian 不支持供应商特定的内核树(如 Allwinner SDK 内核)和 Android 派生的 linux-sunxi.org 3.4 系列内核。

主线 Linux 内核通常支持Allwinner A10、A10s/A13、A20、A23/A33 和 A31/A31s SoC 上的串行控制台、以太网、SATA、USB 和 MMC/SD 卡。对于本地显示(HDMI/VGA/LCD)和音频硬件的支持程度因系统而异。对于大多数系统而言,内核没有原生显示驱动程序,因此会通过 simplefb 架构,重用引导加载程序预先初始化好的的帧缓冲区。这通常工作得很好,尽管有一定的限制(显示分辨率不能即时更改,并且无法管理显示器)。

在基于 sunXi 的系统上,板载的大容量存储设备闪存通常有两种:原始 NAND 闪存和 eMMC 闪存。大多数旧的 sunXi 板使用原始 NAND 闪存作为板载闪存存储器,内核主线通常不包括对此的支持,因此也不在 Debian 中。许多较新的系统使用 eMMC 闪存而不是原始 NAND 闪存。eMMC 闪存芯片看上去就像快速的、不可拆卸的 SD 卡,支持也与一般 SD 卡相同。

对许多上面未列出的基于 sunXi 系统,安装程序提供了基本支持,但是对于这些系统基本都未经测试,因为 Debian 项目无法得到相应的硬件。对这些系统不提供预置的安装程序 SD 卡映像。有限支持的开发板包括:

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

  • Sinovoip BPI-M2(A31 型)

  • 迅龙香橙派(A20 型)/迷你香橙派(A20 型)

除了上述的 SoC 和系统之外,安装程序对 Allwinner H3 SoC 和一些基于它的板卡的支持非常有限。在 Debian 9 发布冻结时,H3 的主线内核支持只进行了小部分,所以安装程序只支持 H3 系统上的串行控制台、MMC/SD 和 USB 主机控制器。H3 的板载以太网口没有驱动程序,因此只能使用 USB 以太网适配器或 USB wifi 卡进行联网。基于 H3 提供了基本安装支持的系统有:

  • FriendlyARM NanoPi NEO

  • 迅龙香橙派 Lite / 香橙派一代 / 香橙派 PC / 香橙派 PC+ / 香橙派+ / 香橙派+ 2E / 香橙派 2

NVIDIA Jetson TK1

NVIDIA Jetson TK1 是基于 Tegra K1 芯片(也称为 Tegra 124)的开发板。Tegra K1 具有四核 32 位 ARM Cortex-A15 CPU 和 192 个 CUDA 内核的 Kepler GPU(GK20A)。基于 Tegra 124 的其他系统也可工作。

希捷个人云和希捷 NAS

希捷个人云和希捷 NAS 是基于 Marvell Armada 370 平台的 NAS 设备。Debian 支持个人云(SRN21C),2 盘位个人云(SRN22C),2 盘位希捷 NAS(SRPD20)和 4 盘位希捷 NAS(SRPD40)。

SolidRun Cubox-i2eX / Cubox-i4Pro

Cubox-i 系列是一套基于飞思卡尔 i.MX6 SoC 系列的小型立方体系统。Cubox-i 系列的系统支持仅限于主线 Linux 内核中提供的驱动程序和设备树信息;Debian 不支持 Cubox-i 的 Freescale 3.0 系列内核。主线内核中的可用驱动程序包括串行控制台、以太网、USB、MMC/SD 卡和 HDMI(控制台和 X11)上的显示器支持。除此之外,还支持 Cubox-i4Pro 上的 eSATA 端口。

Wandboard Quad

Wandboard Quad、Dual 和 Solo 是基于飞思卡尔 i.MX6 Quad SoC 的开发板。系统支持仅限于主线 Linux 内核中提供的驱动程序和设备树信息;Debian 不支持来自 wandboard.org 的 wandboard 特定 3.0 和 3.10 系列内核。主线内核包括串行控制台的驱动程序支持、HDMI 显示(控制台和 X11)、以太网、USB、MMC/SD、SATA(仅限 Quad)和模拟音频。对其他音频(S/PDIF,HDMI-Audio)和板载 WLAN/蓝牙模块的支持在 Debian 9 上未经测试或不可用。

通常,对于上面没有明确列出的 armhf 系统,Linux 内核中的 ARM 多平台支持允许 debian-installer 运行在这些系统上,只要 debian-installer 使用的内核支持目标系统的组件,并且该目标的设备树文件可用,新的目标系统就可能正常工作。在这种情况下,安装程序通常可以提供可运行的安装结果,但可能无法自动使系统可启动。在许多情况下,这样做需要特定于设备的信息。

在这样的系统上使用 debian-installer 时,您可能必须在安装结束时手动使系统启动,例如在 debian-installer 的 shell 中运行启动所必需的命令。

2.1.5. 多处理器

多处理器支持 — 又称 symmetric multiprocessing 或 SMP — 在本体系架构下可以使用。标准的 Debian 12 内核映像已经编译进了 SMP-alternatives 支持。这样内核就可以侦测处理器(或者核心)数量,并可以在单处理器系统上关闭 SMP 功能。

在一台计算机上安装多处理器原来只是高端的服务器才具有,但近年来随着多核处理器的出现已经应用到相对低端的桌面计算机和便携机上。这种处理器包含两个或多个称为核心的处理器单元集成在一个物理芯片上。

2.1.6. 图形卡支持

Debian 能支持的显卡取决于底层的 X.Org 的 X11 系统以及内核的支持。基本的 framebuffer 由内核提供,而桌面环境使用 X11。至于高级的显卡功能,比如 3D 硬件加速或硬件视频加速是否可用,由系统所使用的具体显示硬件和所要安装的额外固件(firmware)决定(参阅第 2.2 节 “需要固件的设备”)。

几乎所有 ARM 机器都内置了图形硬件,而不用额外插卡。有些机器有扩展插槽用于显卡,但这比较罕见。无头、无图像的硬件设计也很常见。虽然内核提供的基本帧缓冲显示在有图像的设备上应该都能工作,但快速 3D 绘图总是需要二进制驱动程序才能正常工作。情况正在迅速变化,但在发布 bookworm 时,nouveau(Nvidia Tegra K1 SoC)和 freedreno(Qualcomm Snapdragon SoC)有自由的驱动程序可用。其他硬件需要第三方的非自由驱动程序。

对显卡和其他定点设备的具体支持情况,见 https://wiki.freedesktop.org/xorg/。Debian 12 包含 X.Org 7.7 版。

2.1.7. 网络连接硬件

几乎所有被 Linux 内核支持的网卡 (NIC) 都被安装系统支持;驱动程序通常会自动加载。

32-bit hard-float ARMv7 上,支持大多数内置的以太网设备,并提供额外的 PCI 和 USB 设备模块。

2.1.8. 外围设备与其他硬件

Linux 支持众多的硬件设备,比如:鼠标、打印机、扫描仪、PCMCIA 和 USB 设备。然而,在安装系统的时候,并不需要其中的大部分设备。