ZBOX nano VD01でBluetoothを使う
ZBOX nano VD01にはBluetoothが装備されているらしく、せっかくだから使ってみましょうと思い立ちました。
The NetBSD Guide Chapter 21 Bluetooth on NetBSDという文書を発見。
ほー、これは助かる。と思いつつ読みはじめて、まずデバイスを認識してなきゃ話になりませんなー、ということでubtがあるのか確認です。
...
ubtはありませんでした。なんだかな。うーんと思いつつbtで検索すると次のようなメッセージが。
しかし、Atherosといえば無線LANとばかり思っていましたが、いわれてみればBluetoothも同じ無線ですからAtherosの製品があったとしても不思議ではないですね。
さて、どうやらaubtfwlはath3k-1.fwをファームウェアとして必要としているらしく、そのopenに失敗しているようです。
fail 2の2って何かといえばENOENTですからNo such file or directoryということのようです。確かにath3k-1.fwなんてファイルはシステムのどこにも存在しません。
じゃぁ、ath3k-1.fwはどこにあるのさ、と思って探してみるとhttp://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.gitにあるようです。ここにあるLICENCE.atheros_firmwareを見て、今回の用途においては問題がないと判断したので、ここのath3k-1.fwを使わせてもらうことにしました。
では、どこにファームウェアを置けば良いのでしょう。
ファームウェアを開いている firmware_open -> firmware_path_first -> firmware_paths -> FIRMWARE_PATHS と追っかけていくと、
じゃぁ、/libdata/firmwareに置くことにしましょう。といって、どう置けば良いのでしょう。先のfirmware_path_firstからfirmware_path_nextに読み進めると、drvnameつまりドライバ名をディレクトリとしてファームウェアファイルを読み込むわけです。
今回だとdrvnameはaubtfwlですから/libdata/firmware/aubtfwl/ath3k-1.fwというファイルの置き方をすれば良いということになります。
あれ?
あいかわらず、
おっかしーな、と思ってもう一度aubtfwl.cを見てみると、
あらためて、/libdata/firmware/ubt/ath3k-1.fwで起動してみると、
やっとスタートラインに立てたようです。まずは、ここまで。
The NetBSD Guide Chapter 21 Bluetooth on NetBSDという文書を発見。
ほー、これは助かる。と思いつつ読みはじめて、まずデバイスを認識してなきゃ話になりませんなー、ということでubtがあるのか確認です。
...
ubtはありませんでした。なんだかな。うーんと思いつつbtで検索すると次のようなメッセージが。
aubtfwl0 at uhub3 port 1 aubtfwl0: ath3k-1.fw open fail 2man aubtfwlしても何も出てきません。とはいえ、これまで見たこともないデバイス名ですし、なんだか気になるので調べてみるとどうやらAtherosのBluetoothのためのドライバのようです。おぉ、なんとかとっかかりを見つけることができたようです。
しかし、Atherosといえば無線LANとばかり思っていましたが、いわれてみればBluetoothも同じ無線ですからAtherosの製品があったとしても不思議ではないですね。
さて、どうやらaubtfwlはath3k-1.fwをファームウェアとして必要としているらしく、そのopenに失敗しているようです。
fail 2の2って何かといえばENOENTですからNo such file or directoryということのようです。確かにath3k-1.fwなんてファイルはシステムのどこにも存在しません。
じゃぁ、ath3k-1.fwはどこにあるのさ、と思って探してみるとhttp://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.gitにあるようです。ここにあるLICENCE.atheros_firmwareを見て、今回の用途においては問題がないと判断したので、ここのath3k-1.fwを使わせてもらうことにしました。
では、どこにファームウェアを置けば良いのでしょう。
ファームウェアを開いている firmware_open -> firmware_path_first -> firmware_paths -> FIRMWARE_PATHS と追っかけていくと、
75 #define FIRMWARE_PATHS \ 76 "/libdata/firmware:/usr/libdata/firmware:/usr/pkg/libdata/firmware:/usr/pkg/libdata" 77 #endifという記述にたどり着きました。どうやらsysctlのhw.firmware.pathで見ればわかったようですね。しらんがな。
じゃぁ、/libdata/firmwareに置くことにしましょう。といって、どう置けば良いのでしょう。先のfirmware_path_firstからfirmware_path_nextに読み進めると、drvnameつまりドライバ名をディレクトリとしてファームウェアファイルを読み込むわけです。
今回だとdrvnameはaubtfwlですから/libdata/firmware/aubtfwl/ath3k-1.fwというファイルの置き方をすれば良いということになります。
あれ?
あいかわらず、
aubtfwl0: ath3k-1.fw open fail 2のようです。
おっかしーな、と思ってもう一度aubtfwl.cを見てみると、
104 error = firmware_open("ubt", "ath3k-1.fw", &fwh); /* XXX revisit name */なんと、ubtって書いてあるじゃないですか!!! 直接書くなよ。
あらためて、/libdata/firmware/ubt/ath3k-1.fwで起動してみると、
aubtfwl0 at uhub3 port 1 aubtfwl0: beginning firmware load aubtfwl0: firmware load complete aubtfwl0: detached aubtfwl0: at uhub3 port 1 (addr 2) disconnected aubtfwl0 at uhub3 port 1 aubtfwl0: beginning firmware load aubtfwl0: firmware load complete aubtfwl0: detached aubtfwl0: at uhub3 port 1 (addr 2) disconnected ubt0 at uhub3 port 1 ubt0: vendor 0x0cf3 product 0x3005, rev 1.10/0.01, addr 2何度かaubtfwlがattachとdetachを繰り返して、見事ubt0が生えてきたのでありました。
やっとスタートラインに立てたようです。まずは、ここまで。
コメント(0件)
- TB-URL http://www.tokuda.net/diary/adiary.cgi/0782/tb/