Linuxコーナ Linux 的 USB 活用法 組み込みだとほしくなる! ほかの OS にはないしくみ標準装備 後編:LinuxボードをUSBアダプタに! ガジェット・ドライバ 永尾 裕樹,三木 昭一郎 Linuxカーネル USBガジェット・ フレームワーク ● USB デバイス用ドライバが簡単に作成できる! Linux カーネル標準装備「ガジェット・フレー ムワーク」 ユーザ・アプリ マス・ストレージ・ クラス・ドライバ CDC-ACM クラス・ドライバ ガジェット・ドライバ B社ペリフェラル・ コントローラ・ ドライバ A社ペリフェラル・ コントローラ・ ドライバ 各種用意されている USB ホスト・ドライバ プロセッサ/SoCなど A社USB ペリフェラル・ コントローラIC/IP パソコン ● Windows や他の組み込み OS だとこう簡単に はいかない 他 の 組 み 込 み OS で は,Windows Embedded Compact 系が USB ペリフェラル機能注 1 を限定的にサ Linux ボード USB 初期の USB ガジェット・フレームワークでは,ペ リフェラル・コントローラは NetChip2280(USB ペリ フェラル・コントローラ)のみ,クラス機能も CDC ク ラスなど一部機能のみにしか対応できていませんでし た.現在では,数十種類のペリフェラル・コントロー ラ,クラス・ドライバが標準カーネルに含まれてお り,コンフィグレーションで自由に選択して,使用す ることができます. コントローラ・ドライバとクラス・ドライバは,基 本的に自由に組み合わせることができます. 図 1 Linux ボードは USB デバイスにもなれる…USB デバイス・ ドライバ作成のしくみ「ガジェット・フレームワーク」 Linux はいろいろな USB デバイス・クラスやコントローラ IC/IP に対応し た USB ドライバを簡単に作成できるようになっている.Windows だとそ んなに簡単じゃない.カーネル・バージョン 2.4.23 から対応 ● 組み込み OS では USB デバイス機能がほしく なる PC 用 OS として設計された Linux は,2000 年代前半 から急速に組み込み機器への採用が進みました.これ らの組み込み機器用 ASIC/ASSP には USB ペリフェラ ル機能が搭載されていることが多かった背景から, カーネル・バージョン 2.4.23 から USB デバイス・クラ ス 用ド ライバ を 簡 単 に 作 成 できる USB ガ ジ ェット (Gadget)フレームワークの実装が始まりました(図 1) . ポートしています.それ以外は,サードパーティの有 償 USB ミドルウェアとしてのみ提供されています. Linux 以外に USB ペリフェラル機能を広範囲に標準サ ポートする OS はなく,組み込み用途では非常に便利 です. 本稿では,この Linux の USB ガジェット・フレー ムワークのしくみを解説し,USB 3.0 ペリフェラル・ コントローラを例に,新しいペリフェラル・コント ローラに対応してみます. USB ガジェット・フレームワーク ● ソフトウェア構成 Linux に標準装備されている USB ガジェット・フ レームワークは,前回(2014 年 12 月号 pp114-123)作 成方法を紹介した USB ホスト・ドライバと同様に図 2 のような 3 階層のソフトウェア構成になっています. 注 1:本稿では USB デバイス機能のことを USB ペリフェラル機 能と記す. 2015 年 1 月号 前編 Linux の USB ホスト・ドライバ作り(2014 年 12 月号) 133
© Copyright 2024 Paperzz