2014年4月5日土曜日

Android OS に HWD14 を直結させてみました。


AndroidでHWD14を使ってみました。


スマホのAndroidはWiFIを使えばHWD14に繋ぐことができます。

WiFiを使わずに 
USB接続でHWD14をAndroid機に直結する
とどうなるのか試してみました。

実験に使ったのはODROID U3(手のひらコンピュータ)に乗っかってるAndroid4.1.2です。

ノートPCにみえますが液晶パネルとキーボードはLapdocです。
Motorora Lapdoc + odroid u3(Android 4.1.2) + HWD14
です。

アプリを入手し易いようにGoogle playが入れてあります。
rootは特に何もしなくてもroot権限になっています。

そうです、このテストはroot権限がないとできません。

android OS内部にアクセスするためのクライアント端末はOSX10.9.2にgoogleのadbコマンドをインストールして行いました。

クライアント端末ははWindowsなどでもできると思います。
Windowsでadbを使うにはODROIDのUSBドライバの改造が必要でした。
標準のドライバのinfファイルを書き換えてDeviceのIDを合わせるだけでした。

以下はテストの手順です。

1)とりあえずUSB端子にHWD14を繋いでみます。

$ adb shell lsusb

Bus 001 Device 008: ID 12d1:1f01
Bus 001 Device 008: ID 12d1:1f01がHWD14です。

    このままだとCD-ROM状態なのでモデムモードに切り替えます。
    usb_modeswitchをインストールします。

2)usb_modeswitchのバイナリを入手します。

    usb_modeswitch-1.1.9-arm-static.bz2でググると探し出せると思います。
    usb_modeswitch-1.1.9-arm-static.bz2を解凍しusb_modeswitch-1.1.9-arm-staticを取り出します。

3)ディレクトリ/systemを書き込めるようにします。

 $ adb remount

4)usb_modeswitch-1.1.9-arm-staticをAndroid側に転送します。

 $ adb push usb_modeswitch-1.1.9-arm-static /system/xbin/usb_modeswitch

5)Macでファイルusb_modeswitch.confを作成します。

$ vi usb_modeswitch.conf

DefaultVendor= 0x12d1
DefaultProduct=0x1f01
TargetVendor=  0x12d1
TargetProduct= 0x14db
MessageContent="55534243123456780000000000000a11062000000000000100000000000000"
NeedResponse=1

6)usb_modeswitch.confをAndroid側に転送します。

 $ adb push usb_modeswitch.conf /system/xbin/usb_modeswitch.conf

7)アクセス権を指定し実行テストします。

$ adb shell chmod  777 /system/xbin/usb_modeswitch
$ adb shell chmod 777 /system/xbin/usb_modeswitch.conf
$ adb /system/xbin/usb_modeswitch -I -W -c /system/xbin/usb_modeswitch.conf

8)Androidを再起動します。

    $ adb reboot

9)モデムモードに切り替わっているかどうかを確認します。

    $ adb shell lsusb

    Bus 001 Device 008: ID 12d1:14db

    lsusb12d1:14dbがあれば成功です。

10)netcfgでネットデバイスの状態を確認します。

$ adb shell netcfg
...
 usb0     DOWN                             0.0.0.0/0

11)HWD14との接続がDOWNしていますのでUPにします。

$ adb shell netcfg usb0 dhcp

12)eth0がUPされている場合はDOWNにします。

$ adb shell netcfg eth0 down
$ adb shell netcfg
usb0     UP                             192.168.100.100/24
eth0     DOWN                                   0.0.0.0/0  
    usb0に192.168.100.xxxが割当られれば成功です。

13)Androidの設定アプリを起動します。


14)左側からEthernet configurationをタップします。

15)右側からEthernet configurationをタップします。

16)Ethernet deviceをタップします。

17)一覧からusb0を選択します。

18)ping 8.8.8.8でWANに繋がるかどうかを確認します。

$ adb shell ping 8.8.8.8

19)ping www.google.comでWANに繋がるかどうかを確認します。

$ adb shell ping www.google.com
ping: unknown host www.google.com
    というエラーがでました。 DNSが認識できていないようです。

19)DNSを設定します

$ adb shell setprop net.dns1 192.168.100.1

20)Androidの標準ブラウザでwww.google.comなどに繋いでみます。

21)Android OS + HWD14 のスピードテストの結果

DOWNが7.8Mbps UP1.9Mbps
でした。
PCで繋いだときの5分の1しか速度がでませんでした。
原因は調査中です。
 とりあえずここまでです。

andorid OSでHWD14が使えることがわかりました。
実機のrootが取れてるスマホで試してみたいです。


0 件のコメント: