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

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

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

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

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

アーキテクチャ Debian での名称 サブアーキテクチャ フレーバー
Intel x86 ベース i386 デフォルトの x86 マシン デフォルト
Xen PV ドメインのみ xen
AMD64 & Intel 64 amd64    
ARM armel Marvell Kirkwood 及び Orion marvell
ハードウェア FPU がある ARM armhf 複数プラットフォーム対応 armmp
64bit ARM arm64    
32bit MIPS (ビッグエンディアン) mips MIPS Malta 4kc-malta
Cavium Octeon octeon
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 カーネルを用いた 64-bit ARM アーキテクチャへのインストールを扱います。Debian がサポートしている他のアーキテクチャに関する情報を探しているなら、Debian 移植版 のページをご覧ください。

これは 64-bit ARM アーキテクチャ用 Debian GNU/Linux の初公式リリースです。すでにリリースとするに充分安定していると私たちは考えています。しかし、まだ他のアーキテクチャ版ほど広く使われていない (つまりユーザによるテストも多くない) ことから、いくつかのバグにでくわす可能性もあります。何か問題が起きたら、バグ追跡システム を使って報告してください。その際、そのバグが、Linux カーネルを用いた 64-bit ARM プラットフォーム上のものであることを必ず書き添えてください。また debian-arm メーリングリスト の購読も必要かもしれません。

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は多くの様々な企業により設計され、そのハードウェアの構成要素はシステムの起動に必要となるような非常に基本的な機能までが非常に様々です。古いARMアーキテクチャでは、あるSoCからその後継機の間でも大規模に変更されることがありました。しかし ARMv8 (arm64) では標準化が大きく進み、Linux カーネルやその他のソフトウェアのサポートが容易になっています。

サーバ版の ARMv8 ハードウェアは通常、Unified Extensible Firmware Interface (UEFI) 及び Advanced Configuration and Power Interface (ACPI) 標準を使って設定されます。この2つにより、一般的で機器に依存しない方法でコンピュータハードウェアをブート、設定できるようになります。これは x86 PC の世界でも共通しています。

2.1.4. Debian/arm64 によりサポートされているプラットフォーム

Arm64/AArch64/ARMv8 ハードウェアは Debian Buster リリースサイクルのかなり終盤になって利用できるようになったため、このリリース時点までの主流側カーネルのバージョンでサポートがマージされているプラットフォームはあまり多くありません。これは debian-installer を使えるようにするための大きな要件なのです。以下のプラットフォームはこのリリースの Debian/arm64 でサポートされていることがわかっています。挙げられているプラットフォームは全て、ただ一つのカーネルイメージでサポートします。

Applied Micro (APM) Mustang/X-Gene

APM Mustang は Linux が動作する最初に利用可能となった ARMv8 システムでした。X-gene SoC を採用で、これはその後他のマシンでも採用されました。8コア CPU、イーサネット、USB、シリアルポートを搭載します。共通フォームファクターはデスクトップPC用と酷似していますが、別バージョンが今後多数出てくることが期待されます。ハードウェアはほとんどが主流側カーネルでサポートされていますが、Buster のカーネルでは現時点でUSBのサポートが欠けています。

ARM Juno Development Platform

Juno は 6コア (2xA57, 4xA53) ARMv8-A 800Mhz CPU、Mali (T624) グラフィック、8GB DDR3 RAM、イーサネット、USB、シリアルポートを搭載する高性能開発用ボードです。システムの提示や電力テスト向けに設計されたため、小型でもなく安価でもありませんが、最初に利用できるようになったボードの一つです。オンボードのハードウェアは全て主流側カーネル及び Buster でサポートされています。

非 UEFI システムで debian-installer を利用している場合は、例えば debian-installer から起動したシェルで必要なコマンドを実行する等、インストールの最後に手作業でシステムをブート可能にしないといけないかもしれません。flash-kernel は U-Boot でブートする X-Gene システムの段取りを知っています。

2.1.4.1. 他のプラットフォーム:

arm64 Linux カーネルの複数プラットフォームサポートにより、上記に明記されていない arm64 システムでも debian-installer を実行できるかもしれません。debian-installer により利用されるカーネルで対象システムの構成要素をサポートしていて、対象システムのデバイスツリーファイルが利用可能であれば、新しい対象システムでも普通に動作するかもしれません。その場合は通常、インストーラによってインストールした後も機能するため、UEFI を利用している場合は同様にシステムをブート可能にできるはずです。UEFI を利用していない場合は、システムをブート可能にするために何らかのマニュアル設定を行う必要があるかもしれません。

2.1.5. マルチプロセッサ

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

標準の Debian 10 カーネルイメージは、SMP をサポートしてコンパイルされています。非 SMP システムでも、問題なく動作します。

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

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

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

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

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

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

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

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

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