ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

RATOC Systems REX-WIFIUSB1の著しく間違った活用方法

      2016/05/24

USBストレージをWi-Fi経由でアクセスしたい

Wi-Fiストレージ系のガジェットが好きで、いろいろ試しています。それもこれも、メインで使っているiPhoneが外部ストレージに対応しないから。

SDIM1134

SDカードをWi-Fi経由でアクセスできるようにするものしか持っていませんでしたが、USBストレージをWi-Fi経由でアクセスする用事が出来たので、RATOC Systems REX-WIFIUSB1という製品を買ってみました。

結論から言うと、この製品もメチャ遊べました!

ラトックシステム Wi-Fi USBリーダー(USB給電モデル) REX-WIFIUSB1
by カエレバ

REX-WIFIUSB1は、USB-Aのメスコネクタ付きのドングルから、短い給電用USBケーブルが生えた形状をしています。あくまでも給電用USBケーブルなので、これをPCなどに接続してもUSBストレージをマウントすることはできません。

SDIM1136

USB-AのメスコネクタにUSBストレージを接続すると、それにWi-Fi経由でアクセスできるようになります。

Skitched 20141006 024748

対応 USB ストレージ
  • USB フラッシュメモリ
  • microSD カード(128GB まで動作確認)
  • USB ハードディスク(2TB まで)
対応フォーマット
  • exFAT
  • FAT32
  • FAT16
  • NTFS
対応機種
  • iOS4.0 以降の iPhone、iPad、iPad mini、iPad Air、iPod touch
  • Android 2.3 以降のスマートフォン、タブレット
  • Kindle Fire タブレット
  • Windows PC(Windows 8.1/8/7/Vista/XP)、Mac(Mac OS X 10.6 以降)

詳しい機能や、操作方法はマニュアルに書いてあります。

(続きは[Read More]から)

SDIM1140

選べる電源

電源は、ドングルから生えたUSB-Aオスコネクタ付きの給電用USBケーブルから供給。つまり、REX-WIFIUSB1の動作のためには、USB ACアダプタ、ないしはモバイルバッテリなどからの電源供給が必要。

SDIM1139

長時間の稼働が必要なら、10,000mAhクラスの大容量モバイルバッテリを接続。

SDIM1138

短時間の使用しかしななければ、3,000mAhの軽量なモバイルバッテリを接続。

SDIM1137

電源が外部供給であることで利用形態によって使い分けることができますし、バッテリを内蔵しておらず、そこの劣化を気にする必要がないので扱いが気楽です。


USBストレージに供給できる電流について

USBストレージに供給できる最大の電流は1A。1Aの電流を供給するためには、1.5Aの電流を入力する必要があります。

2TBまでのHDDがサポートされていますが、1Aの電流で動くものに限られることになります。

手元にあったHDDは、cheeroのモバイルバッテリから2.1Aの電流を供給してみましたが、電流不足でスピンアップが失敗したような動作状況でした。二股ケーブルでもダメでした。

SDIM1150

接続できるもの

試した範囲では、USBハブを間に挟むとマウントがうまくいきませんでした。

メモリカードリーダにおいては、複数のスロットを持つものに使えないものがありました。

アクセス方法

REX-WIFIUSB1へのアクセス方法は、何種類か提供されます。

まずはWi-Fiアクセスポイントにつなぐ

REX-WIFIUSB1に通電すると立ち上がるWi-Fiアクセスポイントに接続するのが最初のステップ。通電すると、LEDが緑に点滅。これが点灯に変わるとWi-Fi接続受け入れ準備完了です。

SSIDは「WIFIUSB1-xxxx」になるようです。初期パスワードは1が8つの「11111111」。

IMG 0779

純正アプリを使う

iOS、Android用のアプリがそれぞれ用意されており、接続後に起動すれば、REX-WIFIUSB1に挿入したUSBストレージの中身が見えます。

iOS版のアプリは、ファイルをほかのアプリに渡したり、ほかのアプリからファイルを受け取ったりすることが一切考慮されていなくて残念。説明書には以下のように書いてありますが、もうちょっと頑張りましょうよ……。

iOS の制限により本製品にアップロード可能な画像・動画データは、カメラロールに保存されているもののみです。

IMG 0780

Web管理マネージャー経由で使う

REX-WIFIUSB1にWi-Fiで接続後に、Webブラウザで「http://10.10.10.254/」へアクセス。Web管理マネージャーが利用可能です。

デフォルトのログインIDは「admin」、パスワードは空白。

Skitched 20141006 034050

Web管理マネージャーのエクスプローラーからも、USBストレージ内のファイルにアクセス可能。ここからダウンロードしたファイルは、MobileSafariならOpen In…で別のアプリに渡すことができます。

Skitched 20141006 034443

REX-WIFIUSB1の内部で起動しているサーバには、Webサーバのほか、WebDAVサーバ、Sambaサーバがあります。

OS Xなら、FinderでCommand+Kの「サーバへ接続」から、それらを利用できます。

Webから利用

Webブラウザから「http://10.10.10.254/data/」を見ると、ファイルのインデックスが見られます。自動処理に使えそうですね。使われているWebサーバは lighttpd/1.4.28-devel だとあります。

Skitched 20141006 042011

WebDAVで接続

「サーバアドレス」に「http://10.10.10.254/data/」と入れると、WebDAVで接続できます。

Skitched 20141006 041517

smbで接続

Web管理マネージャーの「設定>サービス」で「Samba共有有効化」をOnに。

Skitched 20141015 043750

「サーバアドレス」に「smb://10.10.10.254/」と入れると、smbで接続できます。

Skitched 20141006 041622

smb対応のiOS用のメディアプレイヤーGoodPlayerでも、REX-WIFIUSB1上で起動するsmbサーバを自動的に見付け、接続できました。

IMG 0022

GoodReaderの利用

iOSでは、用途に応じてGoodReaderを純正のWiDrawerの代わりに使うと利便性が非常に高くなります。

smb、WebDAVのほか、後述のftpのどれでも接続可能。また、おおよそどんな種類のファイルであっても、他アプリから受け取ったり、他アプリに受け渡すことが可能だからです。

IMG 0825

ちょっと変わったUSBストレージを接続してみる

今回僕がREX-WIFIUSB1を買ったのは、ちょっと変わったUSBストレージを接続してみたかったから。

それはSHARPの電子ノート。感圧式のタッチパネルが付いたモノクロ反射液晶デバイス。

SHARP 電子ノート WG-S20
SHARP 電子ノート WG-S20
posted with amazlet at 14.10.13
シャープ
売り上げランキング: 396
SHARP 電子ノート ホワイト系 WG-N20-W
シャープ (2013-08-08)
売り上げランキング: 14,669

Wi-Fiは内蔵されておらず、データの取り出しはUSBストレージとして機能させ、USBケーブル経由で行なう作り。Wi-Fiストレージ化したらiPhoneとの直接的な連携ができると思って買ってみたのでした。

SDIM1147

試したところ、思惑通りで問題なく利用可能でした!

IMG 0821

画像をその場でメール送信できるので、Evernoteへの取り込みが楽。

IMG 0824

Kindle Paperwhiteでも。iPhoneからKindle Paperwhiteに、テキストファイルやPDFを送って電子ペーパーで読めて便利です。iPhoneを使ってテザリングすれば、Kindle PaperwhiteでWebブラウザが自由に使えるので、意義は必ずしも大きくありませんが。

SDIM1148

GarminのGPS、Foretrex 401を接続してみましたが、この組み合わせでは残念ながら中身は見られませんでした。

SDIM1151

GARMIN(ガーミン)ForeTrex 401 並行輸入品
GARMIN(ガーミン)
売り上げランキング: 27,374

ポメラDM100との組み合わせも、本体バッテリを浪費せずに済んでいいかもしれないですね。

キングジム デジタルメモ ポメラ  DM100 ブラック
キングジム (2011-11-25)
売り上げランキング: 563

まだ見ぬガジェットとの組み合わせが楽しみです。

リセットと初期値

REX-WIFIUSB1にはピンで押せるリセットボタンが存在。

SDIM1136

設定を、これでリセットできます。通電状態でないと有効でありません。

Wi-Fiパスワード 11111111(1が8つ)
REX-WIFIUSB1のIPアドレス 10.10.10.254
Web管理マネージャーのアカウント
  • ユーザ名: admin
  • パスワード: なし

ファームウェアのアップデート

REX-WIFIUSB1のファームウェアは、RATOC Systemsのページからダウンロードできるようになっています。

REX-WIFIUSB1ファームウェア

ダウンロードには本体裏側記載のシリアル番号が必要。

SDIM1143

印刷は摩擦で非常に消えやすいので、消えないうちにメモを取っておくべきです。

ファームウェアのバージョン
購入時のファームウェア 2.000.016
2014年10月現在の最新版 2.000.036

最新版でも後述のLinux遊びは可能でした。

ポートスキャンで起動サーバを確認

ほかに利用可能なサーバはないかとポートスキャンをかけてみました。

$ nmap 10.10.10.254

Starting Nmap 6.40 ( http://nmap.org ) at 2014-10-06 04:07 JST
Nmap scan report for 10.10.10.254
Host is up (0.023s latency).
Not shown: 994 closed ports
PORT    STATE SERVICE
23/tcp  open  telnet
80/tcp  open  http
81/tcp  open  hosts2-ns
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

やはりあったtelnet!

telnetでログイン

早速telnetでログインしてみます。PQI Air Cardなどのように、ルートユーザでいきなりログインできるわけではなかったので、Web管理マネージャーで使った「ユーザ: admin パスワード: なし」でログイン。できました!

当然のことながら、OSはLinuxでした。カーネルは2.6.21。

$ telnet  10.10.10.254
Trying 10.10.10.254...
Connected to 10.10.10.254.
Escape character is '^]'.

WIFIUSB1 login: admin
Password:

BusyBox v1.12.1 (2012-04-26 15:28:18 PHT) built-in shell (ash)
Enter 'help' for a list of built-in commands.

$ uname -a
Linux WIFIUSB1 2.6.21 #5 Fri Nov 1 13:36:46 CST 2013 mips unknown
$

しかし、ユーザadminは一般権限しか持っていませんでした。

/etc/password を見るとユーザrootが存在しますが、こちらはパスワードが分かりません。

$ cat /etc/passwd
root:$1$yikWMdhq$cIUPc1dKQYHkkKkiVpM/v/:0:0:root:/root:/bin/sh
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
admin:$1$QlrmwRgO$c0iSI2euV.U1Wx6yBkDBI.:15:0:user:/data:/bin/sh
mail:*:8:8:mail:/var/mail:/bin/sh
nobody:x:65534:65534:Nobody:/data/UsbDisk1/Volume1:/bin/sh
$

そこでクラックしてみました。ユーザrootのパスワードの20080826は、何かの日付のようですね。開発者のお子さんの誕生日?

ユーザ パスワード
admin なし(デフォルト)
root 20080826

クラックしたパスワードで、ユーザrootとしてログインできました。

$ telnet 10.10.10.254
Trying 10.10.10.254...
Connected to 10.10.10.254.
Escape character is '^]'.

WIFIUSB1 login: root
Password:
login: can't chdir to home directory '/root'

BusyBox v1.12.1 (2012-04-26 15:28:18 PHT) built-in shell (ash)
Enter 'help' for a list of built-in commands.

#

システムの調査

どんなシステムなのか調べてみました。

dmesg

cpuinfo

CPUはMIPSでした。

# cat /proc/cpuinfo
system type             : Ralink SoC
processor               : 0
cpu model               : MIPS 24K V4.12
BogoMIPS                : 239.61
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes
ASEs implemented        : mips16 dsp
VCED exceptions         : not available
VCEI exceptions         : not available

meminfo

搭載している物理メモリは28MB。

# cat /proc/meminfo
MemTotal:        28000 kB
MemFree:          3736 kB
Buffers:          1380 kB
Cached:           9208 kB
SwapCached:          0 kB
Active:          11552 kB
Inactive:         4008 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:               0 kB
Writeback:           0 kB
AnonPages:        5004 kB
Mapped:           2800 kB
Slab:             6468 kB
SReclaimable:     2124 kB
SUnreclaim:       4344 kB
PageTables:        284 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:     14000 kB
Committed_AS:     8692 kB
VmallocTotal:  1048404 kB
VmallocUsed:      1780 kB
VmallocChunk:  1046340 kB

mounts

ディスクは大体ramfsかroなので、書き込めても電源オフで加えた変更が消えてしまうか、書き込みができない領域です。

# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / squashfs ro 0 0
ramfs /var ramfs rw 0 0
ramfs /www/firmware ramfs rw 0 0
ramfs /boot/tmp ramfs rw 0 0
ramfs /usr/local/samba/var ramfs rw 0 0
ramfs /data ramfs rw 0 0
ramfs /opt ramfs rw 0 0
ramfs /dev ramfs rw 0 0
ramfs /tmp ramfs rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
none /proc/bus/usb usbfs rw 0 0
ramfs /dev ramfs rw 0 0
devpts /dev/pts devpts rw 0 0
ramfs /dev/shm ramfs rw 0 0
ramfs /dev/mapper ramfs rw 0 0
ramfs /etc ramfs rw 0 0

cmdlines

中を開けると、シリアルコンソールが出てそうですね。

cat /proc/cmdlines
console=ttyS1,57600n8 root=/dev/mtdblock8 rootfstype=squashfs quiet

busyboxのアプレット

ftpサーバがあれば起動してみようと、/bin/busyboxに内蔵されたアプレットを調べてみました。

BusyBox v1.12.1 (2012-04-26 15:28:18 PHT) multi-call binary
Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: function [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as!

Currently defined functions:
        [, [[, ash, awk, basename, brctl, cat, chgrp, chmod, chown, chroot,
        cksum, clear, cmp, comm, cp, cut, date, dd, df, dhcprelay, dirname,
        dmesg, du, dumpleases, echo, ed, egrep, env, expr, fgrep, find,
        free, getty, grep, gunzip, gzip, halt, head, hostid, hostname,
        hwclock, id, ifconfig, insmod, ip, kill, killall, klogd, ln, logger,
        login, logread, ls, lsmod, md5sum, mkdir, mkfifo, mknod, mkswap,
        more, mount, mv, netstat, nice, passwd, pgrep, pidof, ping, ping6,
        poweroff, printenv, printf, ps, pwd, readlink, realpath, reboot,
        renice, reset, rm, rmdir, rmmod, route, sed, sh, sleep, stat, stty,
        sum, swapoff, swapon, sync, sysctl, syslogd, tail, tar, telnetd,
        test, time, top, touch, udhcpc, udhcpd, umount, uname, uniq, uptime,
        usleep, vconfig, vi, wc, wget, who, xargs, zcat

残念ながら、ftpサーバは入っていませんでした。

よりアプレットが多いbusyboxの導入

REX-WIFIUSB1には、以下のbusyboxが使えました。mipselのバイナリですね。こちらのbusyboxにはftpサーバが入っています。

こちらのbusyboxに内蔵されているアプレット一覧。

REX-WIFIUSB1用にコンパイルする場合

別のコマンドを追加する場合は、同じMIPSのPQI Air Pen同様、Sourcery CodeBench Lite Editionを使ってコンパイルする手が使えるかと思います。

ポケット無線LANルータの新顔PQI Air Penの著しく間違った使い方

ftpサーバの起動

REX-WIFIUSB1にUSBストレージを接続すると、 /data/UsbDisk1/Volume1/ にマウントされます。

USBストレージにコピーした busybox-mipsel を使って、ftpサーバを起動してみました。実行にはルート権限が必要なので、ユーザrootでログインしないと権限が足りずに失敗します。

cd /data/UsbDisk1/Volume1/
# ./busybox-mipsel tcpsvd 0 21 ./busybox-mipsel ftpd -w / &

OS XのFinderから、例によってCommand+Kで出てくるダイアログに、「ftp://10.10.10.254/」と入力して接続。

Skitched 20141006 041745

ルートディレクトリが見えました。成功です。

Skitched 20141014 035647

ftpのスピード計測

ftpのスピード計測をしてみました。テスト環境はMacBook Pro (Retina, 15-inch, Mid 2012) / OS X 10.9.5。転送したのは1GBのダミーファイル。

まずはOS X側からREX-WIFIUSB1へのアップロード。アップロードは8分51秒で終わりました。

$ time ncftpput -u admin 10.10.10.254 /data/UsbDisk1/Volume1/ ~/Desktop/DUMMY001.mp4
Password:
/Users/hoge/Desktop/DUMMY001.mp4:    976.56 MB    1.85 MB/s

real	8m51.461s
user	0m0.332s
sys	0m8.182s

今度はダウンロード。アップロードより少し遅くて13分53秒かかりました。

$ time ncftpget -u admin 10.10.10.254 ~/Desktop /data/UsbDisk1/Volume1/DUMMY001.mp4
Password:
/Users/hoge/Desktop/DUMMY001.mp4:                  976.56 MB    1.17 MB/s

real	13m53.969s
user	0m4.275s
sys	0m38.828s

この手のデバイスとしては健闘している方でしょうか?

USBストレージマウント時自動実行スクリプト

ftpサーバは起動できましたが、毎回ターミナルから起動しないとならないのでは実用的ではありません。

これを自動的に起動する方法はないものでしょうか。

USBストレージのマウント時に毎回実行されるスクリプトがあります。それは、以下の二つ。

/data/UsbDisk1/Volume1/EnterRouterMode.sh
/data/UsbDisk2/Volume1/EnterRouterMode.sh

要するに、USBストレージのルートディレクトリに EnterRouterMode.sh というファイルが置いてあれば、それが自動的に実行されるのです。

Skitched 20141015 041243

電源投入時にREX-WIFIUSB1に接続されたUSBストレージ上に EnterRouterMode.sh が置いてあれば、その流れで EnterRouterMode.sh が実行されます。

さきほどftpサーバの起動に使ったコマンドを EnterRouterMode.sh に書いておけば、ftpサーバを自動的に起動できます。

#!/bin/sh

cd /data/UsbDisk1/Volume1/
./busybox-mipsel tcpsvd 0 21 ./busybox-mipsel ftpd -w / &

スクリプトはrootで実行されるため、一般ユーザではできないサーバの起動もできてしまいます。

REX-WIFIUSB1の動作のカスタマイズ、各種自動処理のトリガになる点で、 EnterRouterMode.sh の存在は非常に重要であるといえます。

確認しておきたいのは、あくまでもUSBストレージのマウント時に実行されること。REX-WIFIUSB1の動作中にはUSBストレージのアンマウント、別のUSBストレージのマウントができます。即ちREX-WIFIUSB1の起動中に複数回実行される可能性があるということです。

自明のことですが、REX-WIFIUSB1に EnterRouterMode.sh を通じて自動実行させたいことがある場合、 EnterRouterMode.sh はUSBストレージそれぞれに設置しておかないといけません。

CGIの実行

USBストレージ上に置いた拡張子cgiのファイルは、Web経由で見るとcgiとして実行されます。夢がひろがりんぐ。

#!/bin/sh

echo "Content-type:text/html"
echo ""
echo ""
echo "<html>"
echo "<head>"
echo "<title>REX-WIFIUSB1</title>"
echo "<style>h1 {color: red;}</style>"
echo "</head>"
echo "<body>"
echo "<h1>Hello, REX-WIFIUSB1 CGI!</h1>"
echo "<p>"
date
echo "</p>"
echo "</body>"
echo "</html>"

Skitched 20141015 043223

インターネットブリッジ機能

REX-WIFIUSB1にWi-Fi接続すると、インターネットにつながらなくなって困ります。

インターネットブリッジ機能を使うと、REX-WIFIUSB1がクライアントとして接続しているAP経由でインターネットに出ていくことができます。

設定は、Web管理マネージャーの「設定>ネットワーク>インターネット」などからできます。周辺のWi-Fiネットワークをスキャン、接続したいSSIDを選び、パスワードを入力して「適用」ボタンを押せばOK。

Skitched 20141015 044622

インターネットブリッジ機能とテザリング

インターネットブリッジ機能でREX-WIFIUSB1が接続するAPは、スマートフォンのテザリング機能で作ったものに設定すると便利そうです。

残念ながらiOSのインターネット共有機能で作ったAPには接続できませんでした。

AndroidのポータブルWi-Fiアクセスポイント機能で作ったAPには接続できました。

Skitched 20141015 045721

外出中でもREX-WIFIUSB1のLinuxコマンドでインターネットアクセスができるので、何かと使い出がありそうです。

REX-WIFIUSB1とAndroid端末がポータブルWi-Fiアクセスポイント機能によるテザリングでつながっているときに、Android端末側からREX-WIFIUSB1にアクセスすることもできます。この場合、REX-WIFIUSB1に割り振られるIPアドレスはもちろん「10.10.10.254」ではありません。割り振られたIPアドレスは、Web管理マネージャーの「インフォメーション>ネットワーク>インターネット」で確認できます。

Skitched 20141015 050438

インターネットブリッジ機能に頼らないREX-WIFIUSB1とインターネットの同時利用

iOSの場合、REX-WIFIUSB1をインターネット共有の子機にできません。

外出中かつREX-WIFIUSB1にWi-Fi接続中にインターネットの同時利用ができないかというと、そんなことはありません。

以前以下で書いた設定をREX-WIFIUSB1にも適用します。

FlashAirが、PQI Air Cardが使いやすくなる!WiFiストレージ接続中でも3G/LTE経由でインターネット通信ができるようにするiOSのWiFi設定

普通にREX-WIFIUSB1にWi-Fi接続。「設定>Wi-Fi」を見て、WIFIUSB1-xxxxを探す。DHCPから振り出されたIPアドレス、サブネットマスク、ルーター、DNSをメモ。

IMG 0834

IPアドレスを「静的」にし、メモしたIPアドレス、サブネットマスク、ルーター、DNSをこちらに移す。

IMG 0835

これで、iOSとの組み合わせ、外出先といった環境でも、REX-WIFIUSB1へと、インターネットへのアクセスを両立できます。

もっとも、この場合REX-WIFIUSB1のLinuxコマンドからインターネットに接続する、といったことはできませんが。

カスタマイズの余地が楽しい

これまで見てきた通り、REX-WIFIUSB1は単なるUSBストレージに限らず、SHARPの電子ノート、Kindle PaperwhiteなどをWi-Fiストレージ化できて、rootの取れないAndroid端末、iOS機との間の連携をもたらしてくれる点で素晴らしい。

また、搭載されたLinuxを操作する手段、自分でcgiを書く余地を備え、カスタマイズによって連携度を密にできる側面もあります。iOS機においては、iOS機にWeb経由でカメラロールに直接画像をアップロードできるようにするサーバ機能を持つAirLib、完全にプログラマブルに処理できるPythonistaとの組み合わせで、可能性は大きく開くでしょう。

iOS用Python2.7であるところのPythonistaは楽しく、実用的で素晴らしい!

楽しいオモチャが一つ増えました。

ラトックシステム Wi-Fi USBリーダー(USB給電モデル) REX-WIFIUSB1
by カエレバ

ポケット無線LANルータの新顔PQI Air Penの著しく間違った使い方

Linux搭載SDカードアダプタCloudFlash CLF-WF01 Rev.2のファームウェア書き換えでPQI Air Card化する

新型でもLinux遊び!2,480円でLinux搭載、無線LAN内蔵SDカードアダプタCloudFlash Rev.2

デジカメ内部でRubyを動かす狂気!無線LAN内蔵SDカードアダプタPQI Air Cardの間違った使い方

ハックで遊べる!名刺ケースサイズの無線LAN内蔵SDカードリーダーPQI Air Driveが熱い

 - Android, iOS, iPad, iPhone, ガジェット