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

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

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

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

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

アーキテクチャ Debian での名称 サブアーキテクチャ フレーバー
Intel x86 ベース i386    
AMD64 & Intel 64 amd64    
ARM armel Marvell Kirkwood kirkwood
Marvell Orion orion5x
Versatile versatile
ハードウェア FPU がある ARM armhf 複数プラットフォーム対応 armmp
LPAE 対応システム向けの複数プラットフォーム対応 armmp-lpae
64bit ARM arm64    
MIPS (ビッグエンディアン) mips SGI IP22 (Indy/Indigo 2) r4k-ip22
SGI IP32 (O2) r5k-ip32
MIPS Malta (32 bit) 4kc-malta
MIPS Malta (64 bit) 5kc-malta
MIPS (リトルエンディアン) mipsel MIPS Malta (32 bit) 4kc-malta
MIPS Malta (64 bit) 5kc-malta
IBM/Motorola PowerPC powerpc PowerMac pmac
PReP prep
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 が扱うようなシステム固有の低レベルの問題についても、そういったシステムでは 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) SoC を基にした複数の開発用ボードや組み込みシステムをサポートします。現在、以下の sunXi ベースのシステムでインストーラの完全サポートが利用できます:

  • Cubietech Cubieboard 1 + 2 / Cubietruck

  • LeMaker Banana Pi 及び Banana Pro

  • LinkSprite pcDuino 及び 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

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

主流側の Linux カーネルでは通常、Allwinner A10 や A10s/A13、A20 SoC に搭載されたシリアルコンソールやイーサネット、SATA、USB、MMC/SD カードをサポートしますが、ディスプレイ (HDMI/VGA/LCD) のネイティブドライバや SoC に組み込まれているオーディオハードウェアはサポートしません。sunXi を基にした一部のシステムに搭載されている NAND フラッシュメモリはサポートされません。

ローカルディスプレイの利用は技術的にはネイティブのディスプレイドライバがなくても主流側カーネルのsimplefb経由で可能です。これはディスプレイハードウェアの初期化をU-Bootブートローダに依存しています。

NVIDIA Jetson TK1

The NVIDIA Jetson TK1 is a developer board based on the Tegra K1 chip (also known as Tegra 124). The Tegra K1 features a quad-core 32-bit ARM Cortex-A15 CPU and Kepler GPU (GK20A) with 192 CUDA cores. Other systems based on the Tegra 124 may work, too.

Seagate Personal Cloud and Seagate NAS

The Seagate Personal Cloud and Seagate NAS are NAS devices based on Marvell's Armada 370 platform. Debian supports the Personal Cloud (SRN21C), Personal Cloud 2-Bay (SRN22C), Seagate NAS 2-Bay (SRPD20) and 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 Quad

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

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

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

2.1.5. Debian/armhf によりサポートされなくなったプラットフォーム

EfikaMX

EfikaMX プラットフォーム (Genesi Efika Smartbook 及び Genesi EfikaMX nettop) は Debian 7 でプラットフォーム特有のカーネルによりサポートされましたが、Debian 8 以降ではサポートされません。以前に利用されていたプラットフォーム特有のカーネルをビルドするのに必要なコードが上流の Linux カーネルソースから 2012 年に削除されたため、Debian で新しいビルドを提供することはできません。EfikaMX で armmp 複数プラットフォーム対応カーネルを利用するにはデバイスツリーでサポートしている必要がありますが、現在利用できるようにはなっていません。

2.1.6. マルチプロセッサ

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

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

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

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

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

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

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

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

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

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

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