CloudFlash を PQI AirCard にしてLinuxアクセス

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 /&

ちょっとまだいろいろやりかけですが、開発しやすい環境設定は出来上がったと思います。

コメントを残す