Wi-Fi内蔵 micro SDカードアダプタ CloudFlash の FWを PQI AirCard に上書きして、Linuxアクセスしました。
以前から気に入って使っていた PQI AirCard が壊れてしまったので、新しく買い換えようとした所、販売終了していたようで、同様商品の DIGINAVI Cloud Flash という同じような商品を見つけて購入しました。
※と思ったら、復活していたようです。
AirCard とは
この製品の 一番の特徴は、32GBまでですが、 micro SDHC カード が交換可能で、容量いっぱいになっても、micro SDHCカードを交換することが出来ます。
また、PCに取り込む時は直接 micro SDHC カードをPCに挿入することで、Wi-Fiアダプタを介さないで高速にデータ転送が出来る所です。
さらに内部の Linux にアクセス出来るため、スクリプトや実行ファイルを入れて より便利に使うことが出来ます。
Cloud Flash を Air Card に
簡単に調べたところ、 Cloud Flash と Air Card のHW はほぼ一緒で、FWの変更で問題なく使用できるようです。 しかも、FWの変更方法もとても簡単で、 Air Card の公式ページからFWをダウンロードして、あらかじめフォーマットした micro SDカードに展開するだけで良いようです。
http://jp.pqigroup.com/prod_driver.aspx?mnuid=1296&modid=145&prodid=500
私は Air Cardファームウェア V147 を入れました。
新しいFW を micro SDに保存して Cloud Flash に挿入したら、10秒ほど待ってからPCやデジカメに挿入し、2~3分待つと、 “PQI Air Card” というSSIDが立ち上がります。
これでFWの更新は完了。 micro SDカードは再度フォーマットしておきましょう。
Air Card の設定
“PQI Air Card” のSSIDに接続して、 http://192.168.1.1 にアクセスすると、設定画面が表示されます。
そこで、無線親機やiPhone のテザリング用SSIDと共有キーを入れておくと、Air Card が無線子機として親機に接続しに行きます。
Air Card では、ホットスポットモード と言っていますが、無線子機(インフラストラクチャーモード )です。
一度設定しておけば、カメラなどから”\DCIM\199_WIFI\WSD00002.JPG” を削除することで、無線親機やiPhoneに接続しにいきます。
高度な使い方
Air Card を無線親機に接続させたら、 telnet 接続して、カード内の Linux にアクセスすることが出来ます。 パスワード等は特にありませんが、IPアドレスが判らないと接続出来ないのと、いつ親機に接続完了したか分かりにくいのが難点です。
また、SDカード側からのアクセスとLinux側からのアクセスは衝突しないように設計されているようで、Linux側からアクセスする前や後に sync コマンドを実行する必要があるようです。
ちなみに色々いじっていると、sync コマンドを使っても双方で反映されなくなって SDカード抜き差しが必要になったりすることもあります。
高度な設定
Air Card に内蔵されている Linux は容量を抑えるために、コマンドがかなり限られています。 vi もコマンドは用意されていますが、busybox から消されていて使うことが出来ません。
Air Card の先達となる Flucard という一体型カード向けに 全部入りの busybox をコンパイルして公開してくださっている @tonsuke85 さんのブログから一式を拝借して使わせて頂きます。
とんすけ さんのブログ
http://ameblo.jp/tonsuke-usagi/entry-11212317428.html
ページ中程にある deploy_20120420.zip をダウンロードして展開します。
ただし、Flucard と 今回導入した Air Card のLinux では構成が異なる部分があるため、一部を変更して適用します。
まず、Air Card の Linux では perl は導入済みなので、以下を削除します。
- 122_TREK/usr/bin/perl
- 122_TREK/usr/local/lib ディレクトリ
- 122_TREK/www/ 以下
次に、 autorun.sh を書き換えます。
#!/bin/sh ln -s /mnt/sd/DCIM/122_TREK/bin/* /bin/ ln -s /mnt/sd/DCIM/122_TREK/usr/bin/* /usr/bin/ ln -s /mnt/sd/DCIM/122_TREK/usr/local /usr/local ln -s /mnt/sd/DCIM/122_TREK/usr/lib /usr/lib ln -s /mnt/sd/DCIM/122_TREK/usr/include /usr/include ln -s /mnt/sd/DCIM/122_TREK/usr/libexec /usr/libexec ln -s /mnt/sd/DCIM/122_TREK/sbin/* /sbin/ rm /lib/libpthread.so.0 ln -s /mnt/sd/DCIM/122_TREK/lib/* /lib/ ln -s /mnt/sd/DCIM/122_TREK/etc/* /etc/ #ln -s /mnt/sd/DCIM/122_TREK/www/cgi-bin/connect2hotspot.cgi /www/cgi-bin/ ln -s /mnt/sd/DCIM/122_TREK/www/* /www/ ln -s /mnt/sd/DCIM/122_TREK/www/cgi-bin/* /www/cgi-bin/ #rm /bin/dd rm /bin/vi rm /usr/bin/hexdump rm /usr/bin/telnet ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/vi ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/hexdump ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/telnetd</pre> ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/find ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/grep ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/dd ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/killall ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/less ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/passwd ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/sed ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/tar ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/watch ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/whoami ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/top ln -s /mnt/sd/DCIM/122_TREK/busybox /bin/awk rm /usr/sbin/ftpd rm /usr/bin/tcpsvd ln -s /mnt/sd/DCIM/122_TREK/busybox /usr/sbin/ftpd ln -s /mnt/sd/DCIM/122_TREK/busybox /usr/bin/tcpsvd # boa -> httpd (if you want to use php ) rm /usr/sbin/httpd ln -s /mnt/sd/DCIM/122_TREK/busybox /usr/sbin/httpd killall boa sleep 1 httpd -h /www -c /etc/httpd.conf& tcpsvd 0.0.0.0 21 ftpd -w /&
ちょっとまだいろいろやりかけですが、開発しやすい環境設定は出来上がったと思います。