気まぐれSE日記

地方でエンジニアしてます

VX580WPで bluetooth


最初に調べてみて、USBのbluetoothドングルを動作させることはダメそうだと結論が出てますがいろいろやってみたので少し経過報告をしてみます。

まとめると

  1. ondaのICSファームではLinuxカーネルレベルではbluetoothが動いている(dmesgでの結果から)
  2. しかし、bluetoothdなどの関連するコマンドが無い
  3. しかし、USBのbluetoothを認識させるカーネルドライバ(btusb.ko)が無い

2番目は適当なサイトからbluetoothdやhciconfigなど持ってきたので何とかなった。


で、問題なのが3番目でカーネルドライバをどうするか

ondaのICSファームのLinuxカーネルバージョンは、「3.0.8+」
なのでubuntuVMとLinux3.0.8のカーネルソースを入手してarmのクロスコンパイル環境を準備してみたもののondaのカーネルビルド設定「config.gz」が無いのでよくわからないままbtusb.koを作成。→本体にアップしてみてinsmod btusb.koとやってみたら


# insmod btusb.ko
insmod: init_module 'btusb.ko' failed (Exec format error)

#dmesg
~snip~
btusb: no symbol version for module_layout

という案の定バージョンが合わないエラーで終了してしまい、結局ドライバを動作させることはできず



詰まりました。


→modinfo btusb.ko で出てくるバージョン情報とondaオリジナルの他のドライバでバージョン情報比較すると内容は合っているのですがどうも何かが違う模様。

こんな感じ


ondaオリジナルのusbnet.koドライバ
# busybox modinfo usbnet.ko
filename: usbnet.ko
description: USB network driver framework
author: David Brownell
license: GPL
vermagic: 3.0.8+ preempt mod_unload modversions ARMv7
parm: msg_level:Override default message level


自前で作ってみたbtusb.koドライバ
# busybox modinfo btusb.ko
filename: btusb.ko
description: Generic Bluetooth USB driver ver 0.6
author: Marcel Holtmann
license: GPL
vermagic: 3.0.8+ preempt mod_unload modversions ARMv7
parm: reset:Send HCI reset command on initialization
parm: force_scofix:Force fixup of wrong SCO buffers size
parm: disable_scofix:Disable fixup of wrong SCO buffer size
parm: ignore_sniffer:Ignore devices with id 0a12:0002
parm: ignore_csr:Ignore devices with id 0a12:0001
parm: ignore_dga:Ignore devices with id 08fd:0001



というわけでここから先はかなり難しい感じなのでギブアップです。


「config.gz」もしくは、ondaファーム用のカーネルのソースでもどこかに落ちてればできそうなものなんだけどなぁ。onda以外でもallwinner 系のコンフィグ落ちてないかな。