RATOC Systems REX-WIFIUSB1の著しく間違った活用方法
2016/05/24
価値ある情報をユーザー視点で発信するブログ
2016/05/24
もくじ
Wi-Fiストレージ系のガジェットが好きで、いろいろ試しています。それもこれも、メインで使っているiPhoneが外部ストレージに対応しないから。
SDカードをWi-Fi経由でアクセスできるようにするものしか持っていませんでしたが、USBストレージをWi-Fi経由でアクセスする用事が出来たので、RATOC Systems REX-WIFIUSB1という製品を買ってみました。
結論から言うと、この製品もメチャ遊べました!
ラトックシステム Wi-Fi USBリーダー(USB給電モデル) REX-WIFIUSB1 | ||||
|
REX-WIFIUSB1は、USB-Aのメスコネクタ付きのドングルから、短い給電用USBケーブルが生えた形状をしています。あくまでも給電用USBケーブルなので、これをPCなどに接続してもUSBストレージをマウントすることはできません。
USB-AのメスコネクタにUSBストレージを接続すると、それにWi-Fi経由でアクセスできるようになります。
対応 USB ストレージ |
|
対応フォーマット |
|
対応機種 |
|
詳しい機能や、操作方法はマニュアルに書いてあります。
(続きは[Read More]から)
電源は、ドングルから生えたUSB-Aオスコネクタ付きの給電用USBケーブルから供給。つまり、REX-WIFIUSB1の動作のためには、USB ACアダプタ、ないしはモバイルバッテリなどからの電源供給が必要。
長時間の稼働が必要なら、10,000mAhクラスの大容量モバイルバッテリを接続。
短時間の使用しかしななければ、3,000mAhの軽量なモバイルバッテリを接続。
電源が外部供給であることで利用形態によって使い分けることができますし、バッテリを内蔵しておらず、そこの劣化を気にする必要がないので扱いが気楽です。
USBストレージに供給できる最大の電流は1A。1Aの電流を供給するためには、1.5Aの電流を入力する必要があります。
2TBまでのHDDがサポートされていますが、1Aの電流で動くものに限られることになります。
手元にあったHDDは、cheeroのモバイルバッテリから2.1Aの電流を供給してみましたが、電流不足でスピンアップが失敗したような動作状況でした。二股ケーブルでもダメでした。
試した範囲では、USBハブを間に挟むとマウントがうまくいきませんでした。
メモリカードリーダにおいては、複数のスロットを持つものに使えないものがありました。
REX-WIFIUSB1へのアクセス方法は、何種類か提供されます。
REX-WIFIUSB1に通電すると立ち上がるWi-Fiアクセスポイントに接続するのが最初のステップ。通電すると、LEDが緑に点滅。これが点灯に変わるとWi-Fi接続受け入れ準備完了です。
SSIDは「WIFIUSB1-xxxx」になるようです。初期パスワードは1が8つの「11111111」。
iOS、Android用のアプリがそれぞれ用意されており、接続後に起動すれば、REX-WIFIUSB1に挿入したUSBストレージの中身が見えます。
iOS版のアプリは、ファイルをほかのアプリに渡したり、ほかのアプリからファイルを受け取ったりすることが一切考慮されていなくて残念。説明書には以下のように書いてありますが、もうちょっと頑張りましょうよ……。
iOS の制限により本製品にアップロード可能な画像・動画データは、カメラロールに保存されているもののみです。
REX-WIFIUSB1にWi-Fiで接続後に、Webブラウザで「http://10.10.10.254/」へアクセス。Web管理マネージャーが利用可能です。
デフォルトのログインIDは「admin」、パスワードは空白。
Web管理マネージャーのエクスプローラーからも、USBストレージ内のファイルにアクセス可能。ここからダウンロードしたファイルは、MobileSafariならOpen In…で別のアプリに渡すことができます。
REX-WIFIUSB1の内部で起動しているサーバには、Webサーバのほか、WebDAVサーバ、Sambaサーバがあります。
OS Xなら、FinderでCommand+Kの「サーバへ接続」から、それらを利用できます。
Webブラウザから「http://10.10.10.254/data/」を見ると、ファイルのインデックスが見られます。自動処理に使えそうですね。使われているWebサーバは lighttpd/1.4.28-devel だとあります。
「サーバアドレス」に「http://10.10.10.254/data/」と入れると、WebDAVで接続できます。
Web管理マネージャーの「設定>サービス」で「Samba共有有効化」をOnに。
「サーバアドレス」に「smb://10.10.10.254/」と入れると、smbで接続できます。
smb対応のiOS用のメディアプレイヤーGoodPlayerでも、REX-WIFIUSB1上で起動するsmbサーバを自動的に見付け、接続できました。
iOSでは、用途に応じてGoodReaderを純正のWiDrawerの代わりに使うと利便性が非常に高くなります。
smb、WebDAVのほか、後述のftpのどれでも接続可能。また、おおよそどんな種類のファイルであっても、他アプリから受け取ったり、他アプリに受け渡すことが可能だからです。
今回僕がREX-WIFIUSB1を買ったのは、ちょっと変わったUSBストレージを接続してみたかったから。
それはSHARPの電子ノート。感圧式のタッチパネルが付いたモノクロ反射液晶デバイス。
Wi-Fiは内蔵されておらず、データの取り出しはUSBストレージとして機能させ、USBケーブル経由で行なう作り。Wi-Fiストレージ化したらiPhoneとの直接的な連携ができると思って買ってみたのでした。
試したところ、思惑通りで問題なく利用可能でした!
画像をその場でメール送信できるので、Evernoteへの取り込みが楽。
Kindle Paperwhiteでも。iPhoneからKindle Paperwhiteに、テキストファイルやPDFを送って電子ペーパーで読めて便利です。iPhoneを使ってテザリングすれば、Kindle PaperwhiteでWebブラウザが自由に使えるので、意義は必ずしも大きくありませんが。
GarminのGPS、Foretrex 401を接続してみましたが、この組み合わせでは残念ながら中身は見られませんでした。
ポメラDM100との組み合わせも、本体バッテリを浪費せずに済んでいいかもしれないですね。
まだ見ぬガジェットとの組み合わせが楽しみです。
REX-WIFIUSB1にはピンで押せるリセットボタンが存在。
設定を、これでリセットできます。通電状態でないと有効でありません。
Wi-Fiパスワード | 11111111(1が8つ) |
REX-WIFIUSB1のIPアドレス | 10.10.10.254 |
Web管理マネージャーのアカウント |
|
REX-WIFIUSB1のファームウェアは、RATOC Systemsのページからダウンロードできるようになっています。
ダウンロードには本体裏側記載のシリアル番号が必要。
印刷は摩擦で非常に消えやすいので、消えないうちにメモを取っておくべきです。
– | ファームウェアのバージョン |
---|---|
購入時のファームウェア | 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でログインしてみます。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. #
どんなシステムなのか調べてみました。
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
搭載している物理メモリは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
ディスクは大体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
中を開けると、シリアルコンソールが出てそうですね。
cat /proc/cmdlines console=ttyS1,57600n8 root=/dev/mtdblock8 rootfstype=squashfs quiet
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サーバは入っていませんでした。
REX-WIFIUSB1には、以下のbusyboxが使えました。mipselのバイナリですね。こちらのbusyboxにはftpサーバが入っています。
こちらのbusyboxに内蔵されているアプレット一覧。
別のコマンドを追加する場合は、同じMIPSのPQI Air Pen同様、Sourcery CodeBench Lite Editionを使ってコンパイルする手が使えるかと思います。
ポケット無線LANルータの新顔PQI Air Penの著しく間違った使い方
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/」と入力して接続。
ルートディレクトリが見えました。成功です。
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
この手のデバイスとしては健闘している方でしょうか?
ftpサーバは起動できましたが、毎回ターミナルから起動しないとならないのでは実用的ではありません。
これを自動的に起動する方法はないものでしょうか。
USBストレージのマウント時に毎回実行されるスクリプトがあります。それは、以下の二つ。
/data/UsbDisk1/Volume1/EnterRouterMode.sh /data/UsbDisk2/Volume1/EnterRouterMode.sh
要するに、USBストレージのルートディレクトリに EnterRouterMode.sh というファイルが置いてあれば、それが自動的に実行されるのです。
電源投入時に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ストレージそれぞれに設置しておかないといけません。
USBストレージ上に置いた拡張子cgiのファイルは、Web経由で見るとcgiとして実行されます。夢がひろがりんぐ。
#!/bin/sh echo "Content-type:text/html" echo "" echo "" echo "" echo "" echo "REX-WIFIUSB1 " echo "" echo "" echo "" echo "Hello, REX-WIFIUSB1 CGI!
" echo "" date echo "
" echo "" echo ""
REX-WIFIUSB1にWi-Fi接続すると、インターネットにつながらなくなって困ります。
インターネットブリッジ機能を使うと、REX-WIFIUSB1がクライアントとして接続しているAP経由でインターネットに出ていくことができます。
設定は、Web管理マネージャーの「設定>ネットワーク>インターネット」などからできます。周辺のWi-Fiネットワークをスキャン、接続したいSSIDを選び、パスワードを入力して「適用」ボタンを押せばOK。
インターネットブリッジ機能でREX-WIFIUSB1が接続するAPは、スマートフォンのテザリング機能で作ったものに設定すると便利そうです。
残念ながらiOSのインターネット共有機能で作ったAPには接続できませんでした。
AndroidのポータブルWi-Fiアクセスポイント機能で作ったAPには接続できました。
外出中でもREX-WIFIUSB1のLinuxコマンドでインターネットアクセスができるので、何かと使い出がありそうです。
REX-WIFIUSB1とAndroid端末がポータブルWi-Fiアクセスポイント機能によるテザリングでつながっているときに、Android端末側からREX-WIFIUSB1にアクセスすることもできます。この場合、REX-WIFIUSB1に割り振られるIPアドレスはもちろん「10.10.10.254」ではありません。割り振られたIPアドレスは、Web管理マネージャーの「インフォメーション>ネットワーク>インターネット」で確認できます。
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をメモ。
IPアドレスを「静的」にし、メモしたIPアドレス、サブネットマスク、ルーター、DNSをこちらに移す。
これで、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 | ||||
|
ポケット無線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が熱い