tl;dr
adb shell
# 以下からはandroid内のshell
su
insmod /system/lib/modules/8188eu.ko
# ID 0bda:8179 が認識されていることを確認
lsusb
svc wifi enable
環境
問題発生
ROCK64にはwifi機能は付属していないため、有線接続またはwifiアダプタでネットに繋ぐことになる。
早速、家にあったbuffalo WLI-UC-GNM2Sを挿してみるがwifiがオンにできない。
「wifi設定からwifiのトグルスイッチをオンにする→勝手にオフになる」という症状だった。
ふむ...?ドライバがナイノカナー??(適当)
公式サイトやいくつかの記事から8188euのchipsetを使ったwifiアダプタが使えるらしいことがわかったので以下を購入。
tp-link TL-WN725N
しかし、使用したイメージではただアダプタを挿しただけでは使えなかった。
全く同じ症状が出ている。どうしたものか。
やったこと
色々試しつつやったので正確な順番は不明
- ROCK64を有線で繋いである状態
-
$ADDR
はROCK64のIPアドレス
adb connect $ADDR:5555
adb devices -l
# 繋がっていることを確認
adb shell dmesg
# dmesgコマンドが使えるらしいのでみてみる。
adb logcat
# いろんなlogが吐かれるので、wifiの操作をしてみる。
# ここらへんのログ保存するの忘れた。
ログをみている感じだと、やっぱりドライバがないっぽい?ことが分かり、andoridの中身をみてみることにした。
-
$TID
はROCK64のtransport id
adb devices -l
した時に表示される
adb -t $TID shell
# 以下からandroid内のshell
# 8188euがないことを確認。まず何も表示されなかった
lsmod
# 8188eu.koがあることを確認
# .koファイルがandroidのカーネルモジュールらしい
ls /system/lib/modules/
# rootにログイン
su
cd /system/lib/modules/
# ドライバをインストール
insmod 8188eu.ko
# 8188euがリストにあることを確認
lsmod
# しかしwifiがオンにならない
ここでそもそもusbデバイスとして認識されていないのではないかと思いつく
# アダプタを抜き挿ししてlsusbコマンドで ID 0bda:8179 を認識することを確認
# 2回目で認識した(最初は認識されてなかった。ナゼなの...)
svc wifi enable
# 途中でsvcコマンドというのを知ったので使ってみた。
# wifiがonになった!
8188eu.koと一緒に置いてあったドライバ
ここにあるドライバを使うアダプタなら、同様な作業を行えばいけるのでは...?(保証はできない)
8188eu.ko
8188fu.ko
8189es.ko
8192cu.ko
8192du.ko
8723au.ko
8723bs.ko
8723bu.ko
8812au.ko
8822bs.ko
8822bu.ko
bcmdhd.ko
rk29-ipp.ko
vcodec_service.ko
8812au.ko
は公式で売ってるアダプタがあるので使えるのではないだろうか。
備考
今回使用したアダプタ「tp-link TL-WN725N」は、購入時期によっては技適マークがシールでアダプタ本体に貼ってあるらしい。そのシールを剥がして使った場合、日本の電波法に違反するようなので注意。
買ったやつは外箱裏面にシールが貼ってありました。
詳細は以下のページを参照。
TL-WN725Nをご購入のお客様へ