ToDo:
bluetooth を linux で使いたいということだったので
https://www.amazon.co.jp/dp/B08FD5TSNF
を買って、なんか動かなかった。キャプチャボードでもよく起きてた、新しいチップすぎてダメパターン
dmesg 見ると
[2967634.837641] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761 [2967634.838636] Bluetooth: hci0: RTL: rom_version status=0 version=1 [2967634.838638] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761a_fw.bin [2967634.849044] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761a_config.bin [2967634.849058] bluetooth hci0: Direct firmware load for rtl_bt/rtl8761a_config.bin failed with error -2 [2967634.849062] Bluetooth: hci0: RTL: cfg_sz -2, total sz 20204 [2967636.937643] Bluetooth: hci0: command 0xfc20 tx timeout [2967645.161742] Bluetooth: hci0: RTL: download fw command failed (-110)
みたいな感じ。確かに rtl_bt/rtl8761a_config.bin は存在しない。適当に拾ってきて追加しても動かない
https://forums.linuxmint.com/viewtopic.php?f=49&t=319260
を見ると rtl8761a でなくて rtl8761b を読みに行かないといけないらしい。 dmesg の最初の行に
hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761
とあって hci_rev の b なのかな……まあそれはそうと、 rtl8761b の方のファイルを適当にリネームして rtl8761b として見せても……まあだめ。さっきのフォーラムでも言われてた、 b の存在を知らない時代のカーネルのドライバで大丈夫な気がしない、みたいな話だろうなあと
というわけでカーネルモジュールを適当にビルド
$ cd linux/drivers/bluetooth $ make -C /lib/modules/`uname -r`/build M=`pwd` btrtl.ko
バージョンは適当に 5.8 とかいうブランチにした。 centos の 4.18.0 とかでもこれでビルドできて、カーネルモジュールのインターフェイスてあまり変わってないんだなあ……と思った。 Ubuntu だと linux-headers linux-source が必要で、 centos だと kernel-headers kernel-devel が必要だった。言われてみると後者見覚えがあるな……
んで rmmod して insmod して刺したらなんか動いた。動くもんだなあ……と
(10:43)
前 | 2020年 9月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。