Orange piでLinuxを動かそう エピソード5

さて、Wifiドングルのチップが8188euだとわかったのなら、orange pi上でlsmodしてみる。

orangepi@OrangePI:~$ lsmod
Module Size Used by
gpio_sunxi 8265 0
8189es 1069830 0
8188eu 916364 0

8188euがモジュールとして含まれているのがわかる。
modinfo 8188euで守備範囲を調べてみる。

orangepi@OrangePI:~$ modinfo 8188eu
filename: /lib/modules/3.4.112/kernel/drivers/net/wireless/rtl8188eu/8188eu.ko
version: v4.3.0.6_12167.20140828
author: Realtek Semiconductor Corp.
description: Realtek Wireless Lan Driver
license: GPL
srcversion: 6E1E9435E7EEE679F088FA2
alias: usb:v07B8p8179d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0BDAp0179d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0BDAp8179d*dc*dsc*dp*ic*isc*ip*

aliasに0x056e 0x4008が含まれていないのがわかる。
解決方法は一般的には2つあり、
1)ドライバのソースを入手してソースを書き換えてビルドし直す。
2)ダイナミックデバイスID、という手法でIDを追加する。

比較的古めのカーネルバージョンの場合が多いorange piのlinuxではビルド用のカーネルソースが入手しにくいことが多い。 これで1)のハードルがぐっと上がる。
2)は、ルートにしかパーミッションがないnew_idファイルを書き換えることが必要で、僕がやった場合にはプロセスがフリーズしてしまったので、諦めた。

ここで諦めては面白くないわけで、ちょっと乱暴な方法を試してみた。
ドライバ本体は、
filename: /lib/modules/3.4.112/kernel/drivers/net/wireless/rtl8188eu/8188eu.ko
にあることがmodinfoの結果から分かっているので、3つあったIDのうち使わなさそうなIDをバイナリエディタで直接書き換えてしまおうというもの。

ここで、バイナリエディタって何?という人は諦めたほうがよろし。
そーか!と得心する人はドライバのバックアップを取ってから試してみてくださいな。
僕の環境ではうまく行きました。
で、やっとWifiでexciteに繋がったので、そのマシンでこの記事を書いている次第である。

うまく行ったことは、lsusb -tの結果が
: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=sunxi-ehci/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=rtl8188eu, 480M
こんな感じにドライバ名を表示することで分かる。

ここまで来ても,wifiの設定にもう一苦労することにはなっているので、それはまた次の機会。


[PR]
by studio_do | 2017-06-04 01:49 | 機械室から | Comments(0)
<< Orange piでLinux... Orange piでLinux... >>