2.1. サポートするハードウェア

Debian は、Linux・kFreeBSD カーネルや GNU ツールセットが必要とする以上のハードウェアを要求しません。それゆえ、Linux・kFreeBSD カーネル、libc、gcc などが移植されていて、Debian の移植版が存在すれば、どんなアーキテクチャや プラットフォームでも Debian を動作させることができます。すでに Debian GNU/Linux でテストされている 32-bit hard-float ARMv7 アーキテクチャシステムの詳細は、 https://www.debian.org/ports/arm/ にある移植版のページを参照してください。

この節では、32-bit hard-float ARMv7 でサポートされるハードウェアの様々な設定のすべてに触れることは避け、一般的な情報とさらなる情報が見つけられる場所へのポインタを紹介します。

2.1.1. サポートするアーキテクチャ

Debian GNU/Linux 11 は 9 の主要なアーキテクチャと、フレーバーと呼ばれる各アーキテクチャのバリエーションをサポートしています。

アーキテクチャ Debian での名称 サブアーキテクチャ フレーバー
AMD64 & Intel 64 amd64    
Intel x86 ベース i386 デフォルトの x86 マシン デフォルト
Xen PV ドメインのみ xen
ARM armel Marvell Kirkwood 及び Orion marvell
ハードウェア FPU がある ARM armhf 複数プラットフォーム対応 armmp
64bit ARM arm64    
64bit MIPS (リトルエンディアン) mips64el MIPS Malta 5kc-malta
Cavium Octeon octeon
Loongson 3 loongson-3
32bit MIPS (リトルエンディアン) mipsel MIPS Malta 4kc-malta
Cavium Octeon octeon
Loongson 3 loongson-3
Power Systems ppc64el IBM POWER8 以降のマシン  
64bit IBM S/390 s390x VM-reader や DASD からの IPL generic

この文書は Linux カーネルを用いた 32-bit hard-float ARMv7 アーキテクチャへのインストールを扱います。Debian がサポートしている他のアーキテクチャに関する情報を探しているなら、Debian 移植版 のページをご覧ください。

2.1.2. 3つの異なるARM移植版

ARMアーキテクチャは時間とともに進化し、今のARMプロセッサでは旧型では利用できなかった機能を提供しています。Debian ではそのため、幅広い種類のマシンを可能な限りサポートできるように3つのARM移植版を提供しています:

  • Debian/armel はハードウェア浮動小数点演算ユニット (FPU) をサポートしない、古い32ビットのARMプロセッサを対象としています。

  • Debian/armhf は最低でも ARMv7 アーキテクチャにARMベクトル浮動小数点演算仕様のバージョン3 (VFPv3) を実装した新しい32ビットのARMプロセッサでのみ動作します。Debian/armhf ではそういったモデルで拡張された機能や性能拡張を利用するようになっています。

  • Debian/arm64 は ARMv8 以降のアーキテクチャを実装する64ビットのARMプロセッサで動作します。

現在利用できる CPU は全て、技術的に (ビッグ、リトルの) どちらのエンディアンモードでも動作します。しかし、大多数のシステム実装では、リトルエンディアンモードを使用します。Debian/arm64 や Debian/armhf、Debian/armel はどれもリトルエンディアン ARM システムのみサポートします。

2.1.3. ARM CPU の設計のばらつきとそのサポートの複雑さ

ARMシステムは i386/amd64 ベースのPCアーキテクチャと比べてかなり異質なので、サポート状況ははるかに複雑になります。

ARM アーキテクチャはいわゆる systems-on-chip (SoC) で主に利用されています。こういった SoC は多くの様々な企業により設計され、そのハードウェアの構成要素はシステムの起動に必要となるような非常に基本的な機能までが非常に様々です。システムファームウェアのインターフェイスは時とともに標準化が進みましたが、特に古いハードウェアではファームウェアやブート用インターフェイスは非常に様々であるため、PC の世界ではマザーボードの BIOS/UEFI が扱うようなシステム固有の低レベルの問題についても、そういったシステムでは Linux カーネルが担当しないといけない、ということになります。

Linux カーネルでのARMサポート初期に、ハードウェアの種類が多いことからPCシステムでの1つで万能のカーネルとは対照的に、ARMシステムごとに別個のカーネルが必要となりました。この方法は大量の異なるシステムに対応させるには向かないため、異なるARMシステムでも動作する単一のARMカーネルをブートできるようにする作業が行われました。より新しいARMシステムのサポートはこういった複数プラットフォーム対応カーネルを利用できるようにする方法で実装されるようになりましたが、古い複数のシステムでは専用のカーネルが必要なままです。そのため、標準の Debian ディストリビューションではそういった古いARMシステムについては特定のものへのインストールだけをサポートします。新しいシステムは Debian/armhf で、(armmp と呼ばれる) 複数プラットフォーム対応カーネルによりサポートされます。

2.1.4. Debian/armhf でサポートされるプラットフォーム

以下のシステムは複数プラットフォーム対応 (armmp) カーネルを使って Debian/armhf が動作することがわかっています:

フリースケール MX53 クイック・スタート・ボード (MX53 LOCO Board)

IMX53QSB は i.MX53 SoC ベースの開発ボードです。

Versatile Express

Versatile Express は様々なCPUドーターボードを搭載できるベースボードで構成されるARMの開発ボードシリーズです。

Allwinner sunXi ベースの一部の開発ボード及び組み込みシステム

armmp カーネルは Allwinner A10 (アーキテクチャコード名 sun4i) や A10s/A13 (アーキテクチャコード名 sun5i)、A20 (アーキテクチャコード名 sun7i)、A31/A31s (アーキテクチャコード名 sun6i)、A23/A33 (sun8i ファミリの一部) SoC を基にした複数の開発用ボードや組み込みシステムをサポートします。現在、(既存のSDカード用インストーライメージでの提供も含めて) 以下の sunXi ベースのシステムでインストーラの完全サポートが利用できます:

  • Cubietech Cubieboard 1 + 2 / Cubietruck

  • LeMaker Banana Pi 及び Banana Pro

  • LinkSprite pcDuino 及び pcDuino3

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

  • Xunlong OrangePi Plus

Allwinner sunXi ベースの機器のシステムサポートは 主流側 Linux カーネルで利用できるドライバやデバイスツリーの情報に限られています。(Allwinner SDK カーネル等) ベンダー固有のカーネルツリーや android 派生の linux-sunxi.org カーネルの 3.4 系列は Debian ではサポートしていません。

主流側 Linux カーネルは全般に Allwinner A10、A10s/A13、A20、A23/A33、A31/A31s SoC のシリアルコンソール、イーサネット、SATA、USB、MMC/SDカードをサポートします。ローカルディスプレイ (HDMI/VGA/LCD) とオーディオハードウェアのサポートレベルは個々のシステムで差があります。ほとんどのシステムでカーネルはグラフィックドライバをネイティブには持たず、ブートローダがディスプレイを初期化する simplefb プラットフォームを使ってカーネルはただその初期化済みフレームバッファを再利用するだけです。これは通常うまく動作しますが特定の制限があります (ディスプレイ解像度をすぐその場で変更することとディスプレイの電源管理ができません)。

sunXi ベースのシステムの大容量ストレージデバイスに利用されているオンボードのフラッシュメモリは大きく分けてそのままの NAND フラッシュと eMMC フラッシュの2種類が存在します。オンボードフラッシュストレージを搭載する古い sunXi ベースのボードでは多くが、主流側カーネルでは通常サポートされないそのままの NAND フラッシュを使っているため Debian でも使えません。新しいシステムではそのままの NAND フラッシュではなく eMMC フラッシュを使っているものが出てきています。eMMC フラッシュチップは基本的に高速な取り替えの出来ないSDカードであり、通常のSDカードと同様にサポートされています。

上記の一覧になくても基礎的なサポートをインストーラに収録している sunXi ベースのシステムはいくらかありますが、対応するハードウェアに Debian プロジェクトでアクセスする方法がないため当該システムの大部分はテストされていません。こういったシステム向けに提供されているインストーラ搭載のビルド済みSDカードイメージはありません。サポートがそのように限定されている開発用ボードには

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

  • Sinovoip BPI-M2 (A31s ベース)

  • Xunlong Orange Pi (A20 ベース) / Orange Pi Mini (A20 ベース)

があります。上記のシステム一覧にある SoC に加え、インストーラでは Allwinner H3 SoC 及びそれを基にしたボードをかなり限定的にサポートしています。主流側カーネルでの H3 サポートは Debian 9 リリースのフリーズ時点では相当の作業が残っているため、インストーラでは H3 ベースのシステムではシリアルコンソール、MMC/SD、USBホストコントローラだけをサポートしています。H3 のオンボードイーサネットポート向けドライバはまだ無いため、ネットワーク接続はUSB接続のイーサネットアダプターかUSB接続の WiFi 経由でのみ可能です。こういったかなり基礎的なインストーラサポートを利用できる H3 ベースのシステムには以下があります。

  • 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

NVIDIA Jetson TK1 は (Tegra 124 としても知られる) Tegra K1 チップを基にした開発用ボードです。Tegra K1 は4コアの32ビット ARM Cortex-A15 CPU と 192 CUDA コアの Kepler GPU (GK20A) を搭載しています。Tegra 124 を基にした他のシステムでも使えるかもしれません。

Seagate Personal Cloud 及び Seagate NAS

Seagate Personal Cloud 及び Seagate NAS は Marvell Armada 370 プラットフォームを基にしたNAS機器です。Debian では Personal Cloud (SRN21C)、Personal Cloud 2-Bay (SRN22C)、Seagate NAS 2-Bay (SRPD20)、Seagate NAS 4-Bay (SRPD40) をサポートしています。

SolidRun Cubox-i2eX / Cubox-i4Pro

Cubox-i シリーズはフリースケール i.MX6 SoC ファミリを基にした小型、立方体型のシステム群です。Cubox-i シリーズのシステムサポートは主流側の Linux カーネルで利用できるドライバやデバイスツリーの情報に限られています。Cubox-i 向けのフリースケール 3.0 シリーズのカーネルは Debian ではサポートしていません。主流側のカーネルで利用できるドライバではシリアルコンソールやイーサネット、USB、MMC/SD カード、HDMI 経由のディスプレイを (コンソールと X11) でサポートしています。以上に加え、Cubox-i4Pro の eSATA ポートもサポートしています。

Wandboard

Wandboard Quad、Dual、Solo は Freescale i.MX6 Quad SoC ベースの開発用ボードです。システムサポートは主流側カーネルで利用できるドライバ及びデバイスツリーの情報に限定されています。wandboard.org で配布している wandboard 特有の 3.0 及び 3.10 カーネル系列は Debian ではサポートしていません。主流側カーネルにはシリアルコンソール、HDMI経由のディスプレイ (コンソールと X11)、イーサネット、USB、MMC/SD、SATA (Quad のみ)、アナログオーディオのドライバサポートが収録されています。他のオーディオオプション (S/PDIF、HDMIオーディオ) やオンボードの WLAN/Bluetooth モジュールのサポートは Debian 9 ではテストされていないか利用できるものがありません。

Linux カーネルのARMの複数プラットフォーム対応では通常 debian-installer で利用されるカーネルで対象システムの構成要素をサポートしていて対象システム向けのデバイスツリーファイルが利用可能である限りは、上に明示的に列挙されていない armhf システムで debian-installer を実行できます。その場合、インストーラは機能するようには通常できますが、システムを自動でブート可能にすることはできないかもしれません。それには多くの場合デバイス特有の情報が必要となります。

そういったシステムで debian-installer を利用する場合、インストールの最後に例えば debian-installer から起動したシェルで必要となコマンドを実行し、手作業によりシステムをブート可能にする必要があるかもしれません。

2.1.5. マルチプロセッサ

このアーキテクチャでは、マルチプロセッササポート (対称型マルチプロセッシング や SMP と呼ばれている) が利用できます。Debian 11 の標準カーネルイメージは SMP-alternatives をサポートするようコンパイルされています。これにより、プロセッサ数 (やプロセッサコア数) を検出し、単一プロセッサシステムの場合には、自動的に SMP を無効にします。

もともと、複数のプロセッサがあるコンピュータはハイエンドサーバシステムのみのものでしたが、近年ではマルチコアと呼ばれるプロセッサの登場により、どこでも当たり前のものになりました。これには、1 つの物理的なチップに、コアと呼ばれる複数のプロセッサユニットが搭載されています。

2.1.6. グラフィックハードウェアのサポート

Debian のグラフィカルインターフェースのサポートは、X.Org による X11 システムやカーネルでサポートされているかどうかで決まります。デスクトップ環境は X11 を利用するのに対し、基本的なフレームバッファのグラフィックはカーネルにより提供されます。3D ハードウェアアクセラレーションやハードウェアアクセラーションビデオといった、高性能なグラフィックカードの機能が有効かどうかは、システムで使用する実際のグラフィックハードウェアと、ある状況下では、追加 ファームウェア ファイルのインストール (「ファームウェアが必要なデバイス」 参照) に依存します。

ほぼ全てのARMマシンがグラフィックハードウェアを、プラグインカードに依らず組み込みで持っています。グラフィックカードを増設できる拡張スロットを備えるマシンはありますが、それは希少です。グラフィックを一切持たないヘッドレス設計のハードウェアがかなり一般的です。カーネルにより提供される基本的なフレームバッファのビデオはグラフィックを備えた機器であればどれでも使えるはずですが、高速 3D グラフィックを使うためにはバイナリドライバが必ず必要です。状況は刻々と変わりますが、bullseye のリリース時点では nouveau (Nvidia Tegra K1 の SoC) 及び freedreno (Qualcomm Snapdragon の SoC) 用のフリードライバがこのリリースで利用できるようになっています。他のハードウェアではサードパーティの non-free ドライバが必要です。

サポートされているグラフィックハードウェアやポインティングデバイスに関する、より詳細な情報は https://wiki.freedesktop.org/xorg/ にあります。Debian 11 は X.Org バージョン 7.7 を採用しています。

2.1.7. ネットワーク接続機器

Linux カーネルがサポートしているネットワークインターフェースカード (NIC) なら、インストールシステムでもほとんどサポートしています。ドライバモジュールは、通常自動的に読み込まれます。

32-bit hard-float ARMv7 では、ほとんどの内蔵イーサネットデバイスをサポートしており、追加 PCI デバイスや、USB デバイスのモジュールを提供しています。

2.1.8. 周辺機器やその他のハードウェア

Linux は、マウス、プリンタ、スキャナ、PCMCIA/CardBus/ExpressCard、USB デバイスなどの様々なハードウェアに幅広く対応しています。しかし、システムのインストールに、これらのデバイスが必要なわけではありません。