Debian 不会超出 Linux 内核与 GNU 工具集所支持的硬件范围之外。因此,任何被移植了 Linux 内核、libc、gcc 等,并拥有对应的 Debian 移植版的硬件体系或平台都可以运行 Debian。请参考移植页面 https://www.debian.org/ports/arm/ 以了解更多已被 Debian GNU/Linux 测试过的 32-bit hard-float ARMv7 体系。
本章仅包含一些通用的信息,以及在何处可以获得更多信息的指导,而不是试图列出支持 32-bit hard-float ARMv7 的所有不同硬件配置。
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 网页。
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 系统。
ARM 系统比基于 i386/amd64 的 PC 机更加多样,因此支持情况可能会非常复杂。
ARM 架构主要用于所谓的“片上系统”(SoC)设计。这些 SoC 由许多不同的公司设计,即使是对于系统工作所需的非常基本的功能,硬件组件变化也非常大。随着时间的推移,系统固件界面越来越标准化,但很多方面也发生了变化,尤其是对较旧的硬件固件/启动接口而言,所以在这些系统上,Linux 内核必须关注许多系统特定的低级问题,而在 PC 上这些问题则是由主板的 BIOS/UEFI 负责解决。
在 Linux 内核开始支持 ARM 时,硬件种类的不同导致了要为每个 ARM 系统分别移植内核,而不是像在 PC 系统上“到处适用”的内核。由于此方法不能扩展到大量不同的系统,因此工作方向为使单个 ARM 内核可在不同的ARM系统上进行引导。现在,对较新 ARM 系统的支持都是以这种多平台内核的方式实现的,但对于一些旧系统,仍然需要单独的定制内核。正因如此,标准 Debian 发行版对这种较旧 ARM 系统,仅支持在特定种类上安装,而新系统则由 Debian/armhf 中的 ARM 多平台内核(称为 “armmp”)提供支持。
已知以下系统可使用 multipatform(armmp)内核运行 Debian/armhf:
IMX53QSB 是基于 i.MX53 SoC 的开发板。
Versatile Express 是 ARM 系列开发板,由可以配备各种 CPU 子卡的基板组成。
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 是基于 Tegra K1 芯片(也称为 Tegra 124)的开发板。Tegra K1 具有四核 32 位 ARM Cortex-A15 CPU 和 192 个 CUDA 内核的 Kepler GPU(GK20A)。基于 Tegra 124 的其他系统也可工作。
希捷个人云和希捷 NAS 是基于 Marvell Armada 370 平台的 NAS 设备。Debian 支持个人云(SRN21C),2 盘位个人云(SRN22C),2 盘位希捷 NAS(SRPD20)和 4 盘位希捷 NAS(SRPD40)。
Cubox-i 系列是一套基于飞思卡尔 i.MX6 SoC 系列的小型立方体系统。Cubox-i 系列的系统支持仅限于主线 Linux 内核中提供的驱动程序和设备树信息;Debian 不支持 Cubox-i 的 Freescale 3.0 系列内核。主线内核中的可用驱动程序包括串行控制台、以太网、USB、MMC/SD 卡和 HDMI(控制台和 X11)上的显示器支持。除此之外,还支持 Cubox-i4Pro 上的 eSATA 端口。
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 中运行启动所必需的命令。
多处理器支持 — 又称 “symmetric multiprocessing” 或 SMP — 在本体系架构下可以使用。标准的 Debian 12 内核映像已经编译进了 SMP-alternatives 支持。这样内核就可以侦测处理器(或者核心)数量,并可以在单处理器系统上关闭 SMP 功能。
在一台计算机上安装多处理器原来只是高端的服务器才具有,但近年来随着“多核”处理器的出现已经应用到相对低端的桌面计算机和便携机上。这种处理器包含两个或多个称为“核心”的处理器单元集成在一个物理芯片上。
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 版。
几乎所有被 Linux 内核支持的网卡 (NIC) 都被安装系统支持;驱动程序通常会自动加载。
32-bit hard-float ARMv7 上,支持大多数内置的以太网设备,并提供额外的 PCI 和 USB 设备模块。