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 でサポートされるハードウェアの様々な設定のすべてに触れることは避け、一般的な情報とさらなる情報が見つけられる場所へのポインタを紹介します。
Debian GNU/Linux 9 は 10 の主要なアーキテクチャと、「フレーバー」と呼ばれる各アーキテクチャのバリエーションをサポートしています。
アーキテクチャ | Debian での名称 | サブアーキテクチャ | フレーバー |
---|---|---|---|
Intel x86 ベース | i386 | ||
AMD64 & Intel 64 | amd64 | ||
ARM | armel | Marvell Kirkwood 及び Orion | marvell |
Versatile | versatile | ||
ハードウェア FPU がある ARM | armhf | 複数プラットフォーム対応 | armmp |
LPAE 対応システム向けの複数プラットフォーム対応 | armmp-lpae | ||
64bit ARM | arm64 | ||
MIPS (ビッグエンディアン) | mips | MIPS Malta (32 bit) | 4kc-malta |
MIPS Malta (64 bit) | 5kc-malta | ||
Cavium Octeon | octeon | ||
MIPS (リトルエンディアン) | mipsel | MIPS Malta (32 bit) | 4kc-malta |
MIPS Malta (64 bit) | 5kc-malta | ||
Cavium Octeon | octeon | ||
Loongson 3A | loongson-3 | ||
IBM/Motorola PowerPC | powerpc | ||
Power Systems | ppc64el | IBM POWER8 以降のマシン | |
64bit IBM S/390 | s390x | VM-reader や DASD からの IPL | generic |
この文書は Linux カーネルを用いた 32-bit hard-float ARMv7 アーキテクチャへのインストールを扱います。Debian がサポートしている他のアーキテクチャに関する情報を探しているなら、Debian 移植版 のページをご覧ください。
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 システムのみサポートします。
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」 と呼ばれる) 複数プラットフォーム対応カーネルによりサポートされます。
以下のシステムは複数プラットフォーム対応 (armmp) カーネルを使って Debian/armhf が動作することがわかっています:
IMX53QSB は i.MX53 SoC ベースの開発ボードです。
Versatile Express は様々なCPUドーターボードを搭載できるベースボードで構成されるARMの開発ボードシリーズです。
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 は (Tegra 124 としても知られる) Tegra K1 チップを基にした開発用ボードです。Tegra K1 は4コアの32ビット ARM Cortex-A15 CPU と 192 CUDA コアの Kepler GPU (GK20A) を搭載しています。Tegra 124 を基にした他のシステムでも使えるかもしれません。
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) をサポートしています。
Cubox-i シリーズはフリースケール i.MX6 SoC ファミリを基にした小型、立方体型のシステム群です。Cubox-i シリーズのシステムサポートは主流側の Linux カーネルで利用できるドライバやデバイスツリーの情報に限られています。Cubox-i 向けのフリースケール 3.0 シリーズのカーネルは Debian ではサポートしていません。主流側のカーネルで利用できるドライバではシリアルコンソールやイーサネット、USB、MMC/SD カード、HDMI 経由のディスプレイを (コンソールと X11) でサポートしています。以上に加え、Cubox-i4Pro の eSATA ポートもサポートしています。
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
から起動したシェルで必要となコマンドを実行し、手作業によりシステムをブート可能にする必要があるかもしれません。
EfikaMX プラットフォーム (Genesi Efika Smartbook 及び Genesi EfikaMX nettop) は Debian 7 でプラットフォーム特有のカーネルによりサポートされましたが、Debian 8 以降ではサポートされません。以前に利用されていたプラットフォーム特有のカーネルをビルドするのに必要なコードが上流の Linux カーネルソースから 2012 年に削除されたため、Debian で新しいビルドを提供することはできません。EfikaMX で armmp 複数プラットフォーム対応カーネルを利用するにはデバイスツリーでサポートしている必要がありますが、現在利用できるようにはなっていません。
このアーキテクチャでは、マルチプロセッササポート (「対称型マルチプロセッシング」 や SMP と呼ばれている) が利用できます。Debian 9 の標準カーネルイメージは SMP-alternatives をサポートするようコンパイルされています。これにより、プロセッサ数 (やプロセッサコア数) を検出し、単一プロセッサシステムの場合には、自動的に SMP を無効にします。
もともと、複数のプロセッサがあるコンピュータはハイエンドサーバシステムのみのものでしたが、近年では「マルチコア」と呼ばれるプロセッサの登場により、どこでも当たり前のものになりました。これには、1 つの物理的なチップに、「コア」と呼ばれる複数のプロセッサユニットが搭載されています。
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 を採用しています。
Linux カーネルがサポートしているネットワークインターフェースカード (NIC) なら、インストールシステムでもほとんどサポートしています。ドライバモジュールは、通常自動的に読み込まれます。
32-bit hard-float ARMv7 では、ほとんどの内蔵イーサネットデバイスをサポートしており、追加 PCI デバイスや、USB デバイスのモジュールを提供しています。