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 でサポートされるハードウェアの様々な設定のすべてに触れることは避け、一般的な情報とさらなる情報が見つけられる場所へのポインタを紹介します。
Debian GNU/Linux 12 は 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 移植版 のページをご覧ください。
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/UEFI が扱うようなシステム固有の低レベルの問題についても、そういったシステムでは 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」)、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 は (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、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
から起動したシェルで必要となコマンドを実行し、手作業によりシステムをブート可能にする必要があるかもしれません。
このアーキテクチャでは、マルチプロセッササポート (「対称型マルチプロセッシング」 や SMP と呼ばれている) が利用できます。Debian 12 の標準カーネルイメージは SMP-alternatives をサポートするようコンパイルされています。これにより、プロセッサ数 (やプロセッサコア数) を検出し、単一プロセッサシステムの場合には、自動的に SMP を無効にします。
もともと、複数のプロセッサがあるコンピュータはハイエンドサーバシステムのみのものでしたが、近年では「マルチコア」と呼ばれるプロセッサの登場により、どこでも当たり前のものになりました。これには、1 つの物理的なチップに、「コア」と呼ばれる複数のプロセッサユニットが搭載されています。
Debian のグラフィカルインターフェースのサポートは、X.Org による X11 システムやカーネルでサポートされているかどうかで決まります。デスクトップ環境は X11 を利用するのに対し、基本的なフレームバッファのグラフィックはカーネルにより提供されます。3D ハードウェアアクセラレーションやハードウェアアクセラーションビデオといった、高性能なグラフィックカードの機能が有効かどうかは、システムで使用する実際のグラフィックハードウェアと、ある状況下では、追加 「ファームウェア」 ファイルのインストール (「ファームウェアが必要なデバイス」 参照) に依存します。
ほぼ全てのARMマシンがグラフィックハードウェアを、プラグインカードに依らず組み込みで持っています。グラフィックカードを増設できる拡張スロットを備えるマシンはありますが、それは希少です。グラフィックを一切持たないヘッドレス設計のハードウェアがかなり一般的です。カーネルにより提供される基本的なフレームバッファのビデオはグラフィックを備えた機器であればどれでも使えるはずですが、高速 3D グラフィックを使うためにはバイナリドライバが必ず必要です。状況は刻々と変わりますが、bookworm のリリース時点では nouveau (Nvidia Tegra K1 の SoC) 及び freedreno (Qualcomm Snapdragon の SoC) 用のフリードライバがこのリリースで利用できるようになっています。他のハードウェアではサードパーティの non-free ドライバが必要です。
サポートされているグラフィックハードウェアやポインティングデバイスに関する、より詳細な情報は https://wiki.freedesktop.org/xorg/ にあります。Debian 12 は X.Org バージョン 7.7 を採用しています。
Linux カーネルがサポートしているネットワークインターフェースカード (NIC) なら、インストールシステムでもほとんどサポートしています。ドライバモジュールは、通常自動的に読み込まれます。
32-bit hard-float ARMv7 では、ほとんどの内蔵イーサネットデバイスをサポートしており、追加 PCI デバイスや、USB デバイスのモジュールを提供しています。