1週間に10時間の予定はいったいどこへやら・・・。 別件で仕事が入った上に最近疲れが溜ってきたので、今月はお休みにします。
とりあえず2週間程前にキャラクタ型USBドライバの形だけ作ってみたので、それだけアップします。 openとcloseだけを実装したドライバです。writeとreadは中身空っぽ。 説明も9割がた出来てたんですけど、完成は今日になってしまいました。
>> 続く
ここ1週間体調を崩していたので、全く進んでいません。 体調回復してきたので再開します。
前回作成したドライバはハードウェアの装着・削除を検出するだけの物でした。 ハードウェア側との通信だけしかしていなかったわけです。 ドライバはハードウェアとユーザーソフトウェアとの橋渡しの役目を果たしますから、ユーザー側とのI/Fを考えないといけません。
「Linuxデバイスドライバ 第3版」の第2版が手元あったのですが、本日第3版を入手しました。 Kernel2.6でかなりドライバ仕様が変わったのと、第2版ではUSBドライバに関する記述がほとんどなかったためです。
LinuxにはBlueZの用意するhci_usbドライバが存在します。 なぜ車輪の再発明をしようとするのか? これから開発するドライバの目的をはっきりさせておきます。
最大の目的は「HCI-USBの仕様を理解するため」です。 そのためLinuxドライバに関係する記述は最低限にして、HCI-USBの仕組みがわかりやすいコードにしたいのです。
作成したドライバは上位レイヤー開発に利用します。 I/Fはできるだけシンプルなものにします。 あくまで開発用ですから、自分の環境で利用できれば十分です。
それらの目的に合わせて、次の仮定で作成します。
今後、もしこの仮定だと開発に不都合が生じるようなら、改良することにします。
購入したBluetooth USBアダプター "PLANEX BT-Mini2EDR" を制御するUSBドライバをこれから作成していきます。
まずはLinux USBドライバの仕組みを知る必要があるわけですが、作成にあたって下記を参考にします。
(例) KERNEL_SRC = /usr/src/linux
それでは、とりあえず何もしない独自スケルトンコードを書いてみます。
開発用にVer2.0+EDR対応のBluetooth USBアダプターを買ってしまいました。 というわけで、このプロジェクトのターゲットはVer2.0+EDR対応に!
購入したのは「PLANEX BT-Mini2EDR」という製品です。 姉妹品で「PLANEX BT-MiniEDR」というClass 1対応の物もあるのですが、開発に利用するのに電波が100mも飛ぶ必要はないのでClass 2の物にしました。
下の画像の左がClass 2、右がClass 1対応です。Class 1の方がちょっと長いです。
ダウンロードできない仕様書がある件で、SIGから回答がありました。 Bluetooth.com | Specification Documents でダウンロードできるとのことです。
つまり、SIGに加入していなくても仕様書はダウンロードできるってことですね。 そして、個人でAdopterにはなれるかどうかについては、一切コメント無しです。 個人でAdopterになれないとすると、個人でBluetooth認証を取ることはできないことになります。 まぁ、個人でSIGに100万円払って認証登録する人はいないという想定は、そうなのかもしれませんが・・・。 個人でSIGに加入するメリットは、SIGからの連絡メールが受け取れるだけってことですか。
人気blogランキングへ