ResearchGate Raspberry Pi シングルボードコンピュータ

製品情報
仕様
- メーカー: Raspberry Pi Ltd
- ビルド日: 01年10月2025日
- ビルドバージョン: 99a8b0292e31
- サポートされているRaspberry Pi製品: Pi Zero、Pi Zero 2 W、Pi 1 AB、Pi 2、Pi 3、Pi 4、Pi 5、コンピューティングモジュールCM1、CM3、CM4、CM5
奥付
© 2022-2025 ラズベリーパイ株式会社
このドキュメントは、 クリエイティブ・コモンズ 表示 - 改変禁止 4.0 国際 (CC BY-ND)。
| リリース | 1 |
|---|---|
| 建設日 | 01年10月2025日 |
| ビルドバージョン | 99a8b0292e31 |
法的免責事項
RASPBERRY PI 製品 (データシートを含む) の技術データおよび信頼性データ (以下「リソース」) は、随時変更され、RASPBERRY PI LTD (以下「RPL」) によって「現状のまま」提供され、明示または黙示を問わず、商品性および特定目的への適合性に対する保証 (ただしこれらに限定されない) を含む一切の保証を放棄します。適用法で認められる最大限の範囲において、RPL は、いかなる場合も、契約、厳格責任、または不法行為 (過失その他を含む) の如何を問わず、リソースの使用によって生じた直接的、間接的、偶発的、特別、懲罰的、または結果的な損害 (代替の物品またはサービスの調達、使用、データ、または利益の喪失、または事業の中断を含むがこれらに限定されない) に対して、たとえそのような損害の可能性について通知されていたとしても、一切の責任を負わないものとします。
RPL は、リソースまたはリソースに記載されている製品に対して、いつでも予告なしに機能強化、改善、修正、その他の変更を行う権利を留保します。
リソースは、適切なレベルの設計知識を持つ熟練したユーザーを対象としています。リソースの選択と使用、およびリソースに記載されている製品の適用については、ユーザーが単独で責任を負います。ユーザーは、リソースの使用から生じるすべての責任、費用、損害、またはその他の損失に対して RPL を補償し、免責することに同意します。
RPL は、ユーザーにリソースを Raspberry Pi 製品と組み合わせてのみ使用する許可を与えます。リソースのその他の使用は禁止されています。その他の RPL または他の第三者の知的財産権に対するライセンスは付与されません。
高リスク活動。Raspberry Pi 製品は、核施設、航空機のナビゲーションまたは通信システム、航空管制、兵器システム、または安全性が極めて重要なアプリケーション (生命維持システムおよびその他の医療機器を含む) の運用など、製品の故障が直接死亡、人身傷害、または重大な物理的損害または環境的損害につながる可能性がある、フェイルセーフ性能を必要とする危険な環境での使用 (「高リスク活動」) を目的として設計、製造されていません。RPL は、高リスク活動への適合性に関する明示的または黙示的な保証を明確に否認し、Raspberry Pi 製品を高リスク活動に使用または組み込むことに対する責任を負いません。
Raspberry Pi 製品は、RPL の標準規約に従って提供されます。RPL のリソースの提供は、RPL の標準規約(そこに記載されている免責事項や保証を含みますが、これらに限定されません)を拡張または変更するものではありません。
ドキュメントのバージョン履歴
| リリース | 日付 | 説明 |
|---|---|---|
| 1 | 1年2025月XNUMX日 | 初回リリース |
文書の範囲
このドキュメントは、次の Raspberry Pi 製品に適用されます。
シングルボードコンピュータ / SBC
| パイゼロ | パイゼロ2 | パイ1 | パイ2 | パイ3 | パイ4 | パイ5 |
|---|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | – |
コンピューティングモジュール
| CM1 | CM3 | CM4 | CM5 |
|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ |
導入
USB On-The-Go (OTG) は、デバイスをUSBホスト(PCなど)またはUSBデバイス/周辺機器(キーボード、イーサネットアダプタ、大容量ストレージデバイスなど)として機能させることを可能にする仕様です。Wikipediaの「USB On-The-Go」ページには、OTG仕様に関する詳細な情報が掲載されています。 https://en.wikipedia.org/wiki/USB_On-The-Go.
通常、USB接続は固定のホスト(例:コンピュータ)と周辺機器(例:マウス)で構成されます。USB OTGを使用すると、デバイスがこれら2つのデバイスを切り替えることができます。例えば、amp例えば、Raspberry Piはホストとして動作し、 fileフラッシュ ドライブから読み込んだり、コンピューターに接続するとフラッシュ ドライブ自体として機能します。
Raspberry Piファミリーには、OTG/ペリフェラルモードで動作できるボードが複数含まれていますが、サポート内容はモデルやシステムオンチップ(SoC)によって異なります。このペリフェラルモードで動作しているデバイスは、「ガジェット」と呼ばれることがよくあります。
このホワイトペーパーでは、Raspberry Pi SBCのラインナップを概説し、OTG機能について説明し、構成/コード例を示します。ampこの章では、2つの異なるOTGメカニズムについて説明します。1つは依然として非常に普及しており、最初に説明する従来の方法であり、次に現在推奨されているスキームであるConfigFSについて説明します。
レガシーOTG
ラズベリーパイ ゼロ / ゼロ W / ゼロ 2 W
これらのボードは、Raspberry Piファミリーの中で最もOTG対応性に優れています。SoCのUSBコントローラがUSBデータポート(PWR INではなくUSBと表示されているポート)に直接接続されており、オンボードソフトウェアを設定することで、Raspberry PiをOTGデバイスとして動作させることができます。
OTGモードを有効にする
ヒント: Raspberry Pi Zeroの唯一のUSBポートをOTG用に使用しているため、キーボードやマウスを接続できません。代わりに、Wi-Fi接続とSSHを使用してRaspberry Pi Zeroと通信できます。
dtoverlay=dwc2
ここで、要求された OTG ドライバーを USB システムに接続するためにソフトウェアを構成する必要があります...
console=serial0,115200 console=tty1 root=PARTUUID=xxxxxxxx-02 rootfstype=ext4 fsck.repair=yes rootwait modules-load=dwc2,g_ether
その他のガジェットモジュール
の代わりに g_ether、次の方法を試すことができます:
g_serial: USBシリアルデバイスとして表示されますg_mass_storage: 画像を公開する file フラッシュドライブとしてg_composite: 複合デバイスをエミュレートします
ヒント
USB複合デバイスとは、コンピュータ上で複数の独立したデバイスとして機能する単一の物理デバイスであり、複数の独立したインターフェースまたはデバイスクラスとして表示されます。キーボードとマウス、ストレージドライブとUSBメモリなど、異なる機能を組み合わせています。 webカメラを単一のUSBデバイスとコネクタに統合します。接続すると、オペレーティングシステムはデバイスの各機能を認識し、個別のドライバーを使用して、各機能を独立して動作させます。
USB シリアル ガジェットを作成するには、コマンド ラインから適切なモジュールをロードします。
- コード
- sudo modprobe g_serial
Windows PC に接続すると、Raspberry Pi はデバイス マネージャーに COM ポートとして表示されます。Linux デバイス (Raspberry Pi SBC など) に接続すると、/dev/ttyACM0 のようなシリアル デバイスとして表示されます。
Raspberry Pi 4 および 5 (USB-C 電源ポートの OTG)
Raspberry Pi 4 の USB-C 電源/OTG ポートは、ボードへの電源供給に使用されていないときに周辺機器モードをサポートします。
Raspberry Pi 5では、PCIe接続のUSBコントローラが導入されましたが、これはOTGをサポートしていません。ただし、Raspberry Pi 4と同様に、SoCのネイティブOTGペリフェラル機能は電源コネクタを通じて利用できます。
手順
GPIO ヘッダー (5V および GND) を介して Raspberry Pi に電力を供給し、USB-C を空けておきます。
USB-C ポートをホスト コンピューターに接続します。
/boot/firmware/config.txtでOTGを有効にする
コード
dtoverlay=dwc2、dr_mode=周辺機器
注記
通常選択を行う OTG_ID 行は Raspberry Pi 4 または 5 には存在しないため、コントローラーを強制的に OTG ペリフェラル (ホストではなく) モードにするには、オーバーレイで dr_mode=peripheral オプションを指定する必要があります。
ガジェット モジュール (イーサネット) をロードします。
コード
sudo modprobe g_ether
これで、Raspberry Pi はホストに対して USB デバイスとして列挙されるようになります。
ヒント
すべてのホストシステムがRaspberry Pi 4のOTGモードを確実に処理できるわけではありません。イーサネットとシリアルが最適です。
Raspberry Pi コンピュートモジュールシリーズ
Raspberry Pi Compute Module 1、3、3+、4 は、SoC の USB OTG コントローラーをキャリア ボードに直接公開し、柔軟性を高めています。
CM1/CM3/CM3+ USB OTGインターフェースは専用ピンで利用可能です。キャリアボードでは、多くの場合、マイクロUSBポート経由で提供されます。CM4はOTG対応のUSB 2.0インターフェース(USB_OTG)を提供します。これは、コンピュートモジュール4 IOボードのマイクロUSBコネクタに接続されます。
CM4 OTG example(イーサネットガジェット)
マイクロ USB ケーブルを IO ボードの USB ポートに差し込みます。
/boot/firmware/config.txt に以下を追加します。
コード
dtoverlay=dwc2、dr_mode=周辺機器
/boot/cmdline.txt に以下を追加します。
- コード
- モジュールロード=dwc2、g_ether
再起動します。Compute Module 4 が USB イーサネット アダプターとして表示されます。
ラズベリーパイ A、B、B+、2B、3B、3B+
これらのモデルのUSBポートはハブチップ(LAN9512/LAN9514またはVIA Labs製)を介して接続されており、OTG機能は利用できません。USBホストとしてのみ動作するため、OTGサポートは利用できません。
さまざまなデバイスタイプを使用する
このセクションでは、最も一般的なガジェット モードを設定する方法について説明します。
大容量記憶装置
Raspberry Piを大容量ストレージデバイス(USBスティックなど)として使用するには、バックアップを作成する必要があります。 file 保存されたデータを保持するには:
- コード
- # 元ample: 256 MBを作成する file 「USBスティック」として機能する
- sudo dd if=/dev/zero of=drive.bin bs=1M count=256
- # VFATを作成する file バックアップストア上のシステム
- sudo mkfs.vfat ドライブ.bin
- /etc/modprobe.d/g_mass_storage.conf を編集して、システムにバッキング ストアを使用するように指示します。
- コード
- オプション g_mass_storage file=/drive.bin ストール=0 取り外し可能=1
- バックアップストアの内容を確認するには、Raspberry Piにマウントします。ここでは、 mountpoint というフォルダにマウントします。
- コード
- sudo mkdir マウントポイント
- sudo mount -o loop drive.bin マウントポイント
必要に応じてパスを調整する必要があります。
イーサネットデバイス
g_ether デバイスを Linux ホストに接続すると、通常は usb0 という名前のネットワーク インターフェイスとして表示されます ( ifconfig を使用する場合)。
通常、次のように SSH を使用してデバイスに接続できます。
- コード
- ssh pi@raspberrypi.local
シリアルデバイス
Raspberry Piをg_serialデバイスとして設定すると、新しいシリアルデバイスが表示されます(Raspberry Pi OS Bookwormを6.12.34カーネルで使用している場合、これは/dev/ttyGS0でした)。このRaspberry Piデバイスを(例えばample、Linuxホストの場合、デバイスはCDC ACM準拠デバイスとして認識され、別のシリアルポートとして表示されます。例:ampたとえば、Bookworm を実行している Raspberry Pi 500 では、 /dev/ttyACM0 として表示されます。
Linuxでは、各デバイスでscreenコマンドを使ってシリアルリンクをテストできます。ホストでWindowsを使用している場合は、Puttyなどのツールがうまく動作するはずです。
Raspberry Pi の場合:
- コード
- 画面 /dev/ttyGS0
Linux ホストの場合:
- コード
- 画面 /dev/ttyACM0
次に、各ウィンドウに何かを入力します。出力は代わりに別の画面に表示されます。
注記
screen がインストールされていない場合は、ターミナル ウィンドウで sudo apt install screen を使用します。
この機能を使用すると、Raspberry Pi デバイスにシリアル インターフェイスを提供して、多数のセンサー (I2C または SPI 経由など) を監視し、照合された情報をシリアル ポート経由でホスト コンピューターに返すことができることは容易に理解できます。
ConfigFS/usb_gadget: 素晴らしい新世界
これらは Raspberry Pi デバイスで OTG を設定する最も一般的な方法ですが、上記のメカニズムは実際には ConfigFS の一部である usb_gadget と呼ばれるものに置き換えられています。
ConfigFSはLinuxカーネルインターフェース(仮想 file /sys/kernel/config にマウントされたシステムファイルシステム(システムファイルシステム)は、USBガジェットドライバを含むカーネルオブジェクトをモジュール方式で設定するために使用します。ConfigFS / usb_gadget を使用すると、従来の g_mass_storage /g_ether 方式よりも柔軟性が高く、複数のUSB機能(例:イーサネット + シリアル + 大容量ストレージ)を一度に構成できます。
ただし、この追加機能にはより高いセットアップ コストがかかります。
基本的な考え方は、仮想フォルダのセットと files は /sys/kernel/config フォルダの下に作成され、必要なガジェットを定義します。
usb_gadgets に関するカーネルドキュメントはここで入手できます: https://docs.kernel.org/driver-api/usb/gadget.html そして https://www.kernel.org/doc/Documentation/ABI/testing/configfs-usb-gadget.
設定
DWC USB周辺機器の設定はレガシーモードと同じです。config.txtをsudoとして編集し、以下のコマンドを追加します。

/sys/kernel/config の内容を確認することで、正しくロードされたかどうかを確認できます。この中には、 usb_gadget というフォルダーが含まれているはずです。
次に、USBガジェットそのものを作成します。ガジェット名のフォルダを作成し、そのフォルダ内にガジェットのプロパティを定義するエントリ群を作成します。以下のbashスクリプトの抜粋で、必要な設定の大部分が完了します。

基本的なデバイスデータの設定が完了したら、デバイスにそのデバイスが何であるかを正確に伝える必要があります。各デバイスの作成は、ConfigFSガジェットのfunctionsフォルダ内にフォルダを作成し、そのフォルダを同じガジェット内の設定エントリにリンクするだけです。
シリアル(CDC ACM):

イーサネット(RNDIS および ECM):
マスストレージ:
従来のセットアップと同様に、大容量ストレージ ガジェット用のバッキング ストアが必要です。

それを使用するには:

ヒント
/sys/class/udcはsysfs内のディレクトリです file 利用可能なUSBデバイスコントローラ(UDC)を表すシステム。これにより、カーネルのUSBガジェットサブシステムはデバイス上のハードウェアUDCを識別して対話することができ、システムをUSB周辺機器として機能させることができます。 ls /sys/class/udc/ でUDCの内容を一覧表示し、UDCの名前(例: 3f980000.usb )を見つけ、その名前をガジェットの設定に書き込むことで、ガジェットをUDCにバインドできます。
セットアップが完了すると、フォルダ構造と内容は次のように表示されます。amp以下のファイルは、同じデバイスにシリアル ガジェットとイーサネット ガジェットの両方を設定します。

再起動後、Raspberry Piデバイスをホストデバイス(別のRaspberry Pi、Windows PC、Linux PCなど)に接続します。ホストにはUSB Ethernetデバイスとシリアルデバイスが接続されている必要があります。
すべてをうまく機能させる
上記のコマンドはすべて、Raspberry Piデバイスの起動時に毎回実行する必要があります。Raspberry Pi OSはsystemdを使用しているため、すべての設定を行う起動スクリプトを実行するにはsystemdが適切な方法です。以下に例を示します。amp上記のすべての指示をまとめるスクリプト:

ここで、起動時にスクリプトを実行するように systemd に指示する必要があります。
作成する file /lib/systemd/system にあります — 名前は自由に決められます(サフィックスが .service である限り)が、この例ではampleでは、 mass-storage-device.service を使用します。以下のコマンドを入力します。 file (これらのサービスにはさまざまなオプションがあります。 files; 必要なものだけを使用しました):

ExecStart 行を、セットアップスクリプトを保存した場所を指すように変更する必要があります。次に、systemd に起動時にサービスを実行するように指示します。

Raspberry Piをホストに接続すると、大容量ストレージデバイスとして表示されるはずです。systemdサービスは以下のように無効化できます。

ログインコンソールをシリアルポートに接続する
Raspberry Piをシリアルガジェットとして設定している場合、ポイントツーポイントのシリアル通信だけでなく、デバイスへのログインにもそのシリアルガジェットを使用したい場合があります。systemdを実行している最新バージョンのRaspberry Pi OSでは、これは簡単です。システムにシリアルポートにgettyを作成するように指示し、systemdにそれを起動するように指示するだけです。以下のコマンドは、ttyGS0(ConfigFSを使用してシリアルデバイスをセットアップする際に作成されるtty)にgettyを設定します。シリアルデバイスに割り当てられているttyに合わせて、この値を調整する必要があるかもしれません。

これにより、シリアル ポートで getty が起動し、再起動のたびに自動的に起動するようになります。
ヒント
getty とは何ですか? Linux では、getty は端末(物理シリアルポートと仮想コンソールの両方)を管理して複数のユーザーがシステムにログインできるようにするプログラムです。端末の初期化、ログインプロンプトの表示、ログインプログラムの呼び出しによるユーザー認証などのタスクを処理します。
この機能は、Raspberry Pi Zero や Raspberry Pi Zero 2 W などで特に便利です。 1 つの USB 接続で電源とシリアル通信の両方が提供されるため、デバイスを接続してターミナル経由でログインできます。
結論
真の USB ガジェット プロジェクト (例: イーサネット、シリアル、大容量ストレージ) の場合、Raspberry Pi Zero ファミリと Raspberry Pi Compute Modules が最適です。
Raspberry Pi 4 と Raspberry Pi 5 は OTG サポートを提供しますが、電力要件が問題になる可能性があります。
Raspberry Pi A、B、2B、3B、3B+ ボードは OTG をサポートしていません。
プロジェクトが OTG に大きく依存している場合、最適な選択肢は Raspberry Pi Zero 2 W または Raspberry Pi Compute Module 4 と Compute Module 4 IO ボードです。
ソフトウェア側には 2 つのオプションがあります。レガシー システムはまだ一般的に使用されており、セットアップも簡単です。ConfigFS システムはセットアップに多くの作業が必要ですが、より優れた機能を提供します。
クイックリファレンステーブル
| モデル | OTG サポート | 注記 |
| ラズベリーパイ ゼロ / ゼロ W / ゼロ 2 W | はい | USBデータポートで完全にサポートされています |
| ラズベリーパイ4 | はい¹ | デバイスモードのUSB-Cポート |
| ラズベリーパイ5 | はい¹ | デバイスモードのUSB-Cポート |
| ラズベリーパイ A/B/2B/3B/3B+ | いいえ | ホストモードのみ |
| Raspberry Pi コンピュートモジュール 1~3 | はい | OTGピンに露出 |
| Raspberry Pi コンピュートモジュール 4 | はい | CM4 IOボード上のマイクロUSB |
¹ Raspberry Pi 4 および 5 は通常、USB ケーブルを介してホストから電力を供給するため、これらのデバイスの電力要件が高いため、利用可能な電流に制限が生じる可能性があります。
詳細についてはお問い合わせください
お問い合わせください application@raspberrypi.com このホワイトペーパーについてご質問がある場合は、 Web: www.raspberrypi.com
よくある質問
OTG モードを有効にするとどのようなリスクがありますか?
OTGモードを有効にするには編集システムが必要です file誤って実行するとリスクが生じる可能性があります。変更を行う前に、指示に注意深く従い、重要なデータをバックアップすることをお勧めします。
Zero、Zero W、Zero 2 W以外のRaspberry PiモデルでOTGモードを使用できますか?
提供される手順は前述のモデルに固有のものですが、適切な調整を行うことで他の Raspberry Pi SBC でも同様の構成を試すことができます。
ドキュメント / リソース
![]() |
ResearchGate Raspberry Pi シングルボードコンピュータ [pdf] 取扱説明書 Raspberry Piシングルボードコンピュータ、Raspberry Pi、シングルボードコンピュータ、ボードコンピュータ、コンピュータ |
