ポケット無線LANルータの新顔PQI Air Penの著しく間違った使い方
2016/05/24
価値ある情報をユーザー視点で発信するブログ
2016/05/24
もくじ
ひとりぶろぐのmoyashi (@hitoriblog) です。
最近、ホテルなどの有線LANしか無い環境で無線LAN環境を構築するための超小型の無線LANルータが流行してますね。
PLANEXのちびファイ/ちびファイ2が代表的な存在でしょう。
ちびファイをカバンに一つ入れていれば、有線LANしか無い環境であっても、タブレット、スマートフォンなどのような無線LANにしか接続できないデバイスのネットワーク接続を確保できるというわけです。
とりあえず用を足すだけなら普通にちびファイを買っておけばいいのですが、僕はヒネクレ者なので、PQI Air Penというポケット無線LANルータを買ってみました。
インターフェース | USB2.0、 IEEE 802.11b/g/n、Ethernet 10/100M |
容量 | microSD/SDHC メモリカード対応 (最大 32GB) |
対応OS | iOS / Android ( iOS 4.0 以上 / Android 2.1 以上推奨) |
電源 | リチウムポリマーバッテリ |
サイズ | 16.5×91.5×25 mm |
重さ | 40 g |
動作環境 | 0℃ ~ 40℃ |
その他情報 | 1年保証 |
添付ソフトウェア | 専用アプリ”PQI Air Pen+” |
ちびファイ同様にポケット無線LANルータとして使えるほか、付加機能がいくつか付いています。そして結構こいつは遊べるのです。(続きは[Read More]から)
PQI Air Penの特徴としてまず挙げておくべきは、リチウムポリマーバッテリが内蔵であるということでしょう。
ちびファイ/ちびファイ2は動作のためにUSBからの給電が必要ですが、PQI Air Penにはリチウムポリマーバッテリが内蔵されているため、周囲に電源が無い場合でも2時間(カタログ値)単独動作可能です。
PQI Air Penには、ちびファイには無いmicroSDカードスロットが存在します。
PQI Air Penは、ポケット無線LANルータになると同時に、スマートフォンから専用アプリを通じてmicroSD上のファイルのダウンロード、microSDへのファイルのアップロードができます。
Webブラウザを通じて、PQI Air Penに挿入されたmicroSD上のファイルをダウンロードすることもできます。
いわゆる無線ストレージ、パーソナルクラウドとしての機能も持っているわけです。
microSDカードスロットに大容量のカードを入れ、例えば動画などを置いておけば、スマートフォンなどから、そうした大容量のファイルを利用することができます。
デジカメで撮影した画像を、PQI Air Penを通じて取り込むことも可能です。
写真タブではサムネイルが表示され、複数の写真にチェックマークを入れてから「Save to Album」でまとめてカメラロールに保存できます。
51MBの転送に24秒かかりました。2MB/sec出てますから、この手のデバイスにしては結構速い方ではないでしょうか。
わりと普通に使え、PQI Air Card用のアプリより、安定性は増している気がします。
無線LANを使った機能を紹介してきましたが、PQI Air Penは折り畳み式のUSB端子を備えています。
このUSB端子をPCやモバイルバッテリに接続して本体に内蔵されているリチウムポリマーバッテリに充電することができるほか、同時にUSB接続のmicroSDカードリーダとしても機能します。
これがPQI Air Penの第三の機能です。
アクセスのスピードは結構落ちてしまいますね。microSDHC版のSanDisk Extreme Proを挿入してXbenchで計測したベンチマーク結果が以下です。
最大20MB/secといったところでしょうか。
Results 24.63 System Info Xbench Version 1.3 System Version 10.8.3 (12D78) Physical RAM 16384 MB Model MacBookPro10,1 Drive Type Generic Storage Device Disk Test 24.63 Sequential 30.51 Uncached Write 31.45 19.31 MB/sec [4K blocks] Uncached Write 29.78 16.85 MB/sec [256K blocks] Uncached Read 24.34 7.12 MB/sec [4K blocks] Uncached Read 40.57 20.39 MB/sec [256K blocks] Random 20.65 Uncached Write 22.28 2.36 MB/sec [4K blocks] Uncached Write 7.30 2.34 MB/sec [256K blocks] Uncached Read 484.48 3.43 MB/sec [4K blocks] Uncached Read 103.29 19.17 MB/sec [256K blocks]
ここまでで紹介してきた以下の三つの機能を持ち、内蔵バッテリで駆動可能なPQI Air Pen。
なかなかに面白い製品であるといえます。
しかし、これだけなら恐らくTAXANのTAXAN MeoBankSDの方がいろいろなメディアを受容できる分、いい製品かもしれません。
実のところ、これらのフィーチャーは表層をとらえたにすぎません。僕がPQI Air Penを選んだ理由はほかにあります。
PQIの製品はスキだらけです。
ユーザーが割って入る余地、使いこなす工夫を施す余地を残してくれているのがPQI製品のよいところ。
PQI Air Card、PQI Air Driveはスキだらけで、OSとして採用されたLinuxの部分をいじくり倒す楽しみを与えてくれました。
ひとりぶろぐ » デジカメ内部でRubyを動かす狂気!無線LAN内蔵SDカードアダプタPQI Air Cardの間違った使い方
ひとりぶろぐ » ハックで遊べる!名刺ケースサイズの無線LAN内蔵SDカードリーダーPQI Air Driveが熱い
これに相応する楽しみをPQI Air Penからも見出すことができるのではないか。
そう感じてPQI Air Penを買ったのです。
結論から言うと、PQI Air Penもまた遊べるデバイスでした。
はやる心を抑えて普通の使い方を紹介します。
PQI Air Penをポケット無線LANルータとして使う場合は、Ethernet端子にEthernetケーブルを接続。本体の電源ボタンを押すだけです。
もちろん、Ethernetケーブルのもう片側は壁のネットワークコンセントなどに挿しておく必要があります。
最大5台の端末と同時に無線LAN接続が可能です。
スマートフォンからPQI Air Penが無線LANルータとして見えるようになるので、接続するとPQI Air Penを通じて有線ネットワークに出ていけます。
「http://pqi.air/」をWebブラウザで開くと、PQI Air Penの設定画面が出てきます。
デフォルトではオープンネットワークとなっていて、だれでも接続できてしまうので、設定を変更し、セキュリティをかけるべきです。
バッテリ動作させた場合の持続時間は、1時間〜2時間といったところでしょうか。
PQI Air Penの折り畳み式USB端子から充電/給電することができますから、ガッツリ使う場合は、外部バッテリないしはACアダプタを用意しておくべきでしょう。
ネットワークの転送量に応じてバッテリの減り具合が変わるようです。
USBから電源供給しながらPQI Air Penの電源を入れると、内蔵バッテリ充電中はUSB端子に750mA近辺の電流が流れます。充電が落ち着くと200mA〜300mA程度まで電流は減ります。
無線ストレージ、パーソナルクラウドとして使う場合は、microSDカードをPQI Air Penのスロットに入れ、電源を入れるだけです。
「ポケット無線LANルータとして使う」のと同様、PQI Air Penの無線LANルータに接続した上で、スマートフォン、タブレット専用のアプリからアクセスすると、PQI Air Pen上のファイルをアップロード、ダウンロードできます。
PQI Air Pen+ 1.1.5(無料)
カテゴリ: ユーティリティ, 写真/ビデオ
販売元: Power Quotient International – Power Quotient International Co., Ltd.(サイズ: 4.1 MB)
全てのバージョンの評価: 無し(0件の評価)
iPhone/iPadの両方に対応
PQI Air Pen+ 1.0.7
カテゴリ: メディア&動画
販売元: Power Quotient International Co., Ltd.
サイズ: 903k
インストール数: 1,000 – 5,000
更新日: 2013/01/24
対応OS: Android2.1 以上
平均評価: 4.1 (9件の評価)
Google Playで詳細を見る
iOSの場合は、OSの制約から、PQI Air Penにアップロードできるファイルの種類は限られています。
「http://pqi.air/」をWebブラウザで開き、左のカラムにある「File List」を選ぶと、非常に素っ気ない表示ではありますが、PQI Air Penに挿入したmicroSDカード上のファイルの一覧が表示されます。
PQI Air Penにファイルを無線LAN経由でアップロードする手段としては、PQIが用意した公式なもの(非公式な手段は後述)は、スマートフォン/タブレット専用アプリを使うものしかありません。
PQI Air Penの電源を落とした状態でPCにUSB端子で接続。
すると、あたかもメモリカードリーダを接続したかのように機能し、PCからmicroSDカードにアクセスすることができます。
この状態でPQI Air Penの電源を入れると、PCからはmicroSDカードが強制的に切断されてしまいます。
PQI Air Penにはバックアップボタンなるものが付いています。
これを押すと、PQI Air Penに挿入されたmicroSDカードの内容を、姉妹品であるPQI Air Bankにワンタッチでバックアップできます。
デジカメ画像をPC無しでHDDに吸い出すのによさそうですね。
PQI Air Penは、自身がアクセスポイントとして機能するほか、既存の無線LANにクライアントとしてぶら下げることもできます。
公式の手順(非公式な手段は後述)としては一度アクセスポイントとして起動し、このWeb設定画面を操作してクライアントモードに切り替える必要があるため、クライアントモード専用で使うつもりの場合は、やや面倒です。
PQI Air Penについての全貌が知りたければ、取扱説明書がダウンロードできるので、これを参照するといいでしょう。
一通りを紹介したので、脇道にそれていきますよ。
PQI Air Penをいじくり倒して使えるかどうか。
それは、各種サーバのポートが開いているかどうか。PQI Air Penにログインするための情報を得られる可能性の高いftpサーバが起動しているかどうかにかかっています。
事前情報を @akuzo2k 氏から得ていました。
@hitoriblog 21も開いてるけど接続出来ないorz
— akuzo (@akuzo2p) April 3, 2013
間をはしょりますが、調べたPQI Air Penへのログインアカウントが以下です。rootユーザですね。
アカウント | パスワード |
---|---|
root | pqiap |
このアカウントで、PQI Air Penで起動しているftpサーバ、telnetサーバにログインできます。
ちなみに、PQI Air Bankへのログインアカウントは多分以下のものです。
アカウント | パスワード |
---|---|
root | pqiab |
恐らく、PQI Air Bankでもftpサーバやtelnetサーバが起動しているものと思われます。
PQI Air Penの中身を調べていたら、先述のバックアップ機能の部分で発見しました。
PQI Air Penにポートスキャンをかけた結果が以下です。
PORT STATE SERVICE 21/tcp open ftp 23/tcp open telnet 53/tcp open domain 80/tcp open http 8080/tcp open http-proxy
Webサーバが二つ起動していて、80番と8080番と別のポートを使っています。
80番が設定ページ。
8080番は、microSDカード上のファイルを公開しています。
domainサーバは、pqi.airというホスト名の名前解決に使われているようです。
さて、お楽しみtelnet接続です。
PQI Air Penの電源を入れ、PQI Air Penのアクセスポイントに接続。
telnet 192.168.2.1もしくはtelnet pqi.airで接続。
ユーザ名とパスワードは前述。telnet接続し、uname -aをしてみました。
CPUはMIPSでした。
/ # cat /proc/cpuinfo system type : Atheros AR9330 (Hornet) processor : 0 cpu model : MIPS 24Kc V7.4 BogoMIPS : 232.96 wait instruction : yes microsecond timers : yes tlb_entries : 16 extra interrupt vector : yes hardware watchpoint : yes, count: 4, address/irw mask: [0x0000, 0x0ff8, 0x0ff8, 0x0ffb] ASEs implemented : mips16 shadow register sets : 1 core : 0 VCED exceptions : not available VCEI exceptions : not available
搭載RAMは64MBでしょうか。
/ # cat /proc/meminfo MemTotal: 61696 kB MemFree: 51764 kB Buffers: 132 kB Cached: 2556 kB SwapCached: 0 kB Active: 2352 kB Inactive: 1460 kB Active(anon): 1124 kB Inactive(anon): 0 kB Active(file): 1228 kB Inactive(file): 1460 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 1148 kB Mapped: 1416 kB Slab: 4232 kB SReclaimable: 352 kB SUnreclaim: 3880 kB PageTables: 152 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 30848 kB Committed_AS: 3108 kB VmallocTotal: 1048404 kB VmallocUsed: 1404 kB VmallocChunk: 1044952 kB
console=ttyS0,115200 root=31:05 rootfstype=squashfs init=/sbin/init mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),64k(ART),64k(NVRAM),1280k(uImage),2560k(rootfs),1280k(uImage2),2560k(rootfs2),64k(CONF) mem=64M
dmesgは長いのでテキストファイルとして置いておきます。
microSDは/tmp/www/ftp/sda1としてマウントされています。
ルートファイルシステムはsquashfsでリードオンリー。
httpサーバで公開されている/tmpはramfsで読み書き可能。ramfsなので、加えた変更は再起動で消えてしまいます。
/dev/mtdblock5 on / type squashfs (ro,relatime) /proc on /proc type proc (rw,relatime) devpts on /dev/pts type devpts (rw,relatime,mode=600) none on /tmp type ramfs (rw,relatime) /sys on /sys type sysfs (rw,relatime) udev on /dev type ramfs (rw,relatime) /dev/pts on /dev/pts type devpts (rw,relatime,mode=600) /dev/sda1 on /tmp/www/ftp/sda1 type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,errors=remount-ro)
設定されている環境変数。
USER=root OLDPWD=/root HOME=/root LOGNAME=root TERM=vt102 PATH=/usr/sbin:/bin:/usr/bin:/sbin:/usr/local/sbin:/tmp/tools:/etc/ath SHELL=/bin/sh PWD=/tmp/www/ftp/sda1
プロセス一覧。/proc/cmdlineにもありましたが、/dev/ttyS0、115200bpsでシリアルコンソールが動いているようですね。中を開けたら基板上にTX/RXが出ていそうです。
PID Uid VmSize Stat Command 1 root 192 S init 2 root SW< [kthreadd] 3 root SW< [ksoftirqd/0] 4 root SW< [events/0] 5 root SW< [khelper] 8 root SW< [async/mgr] 83 root SW< [kblockd/0] 92 root SW< [khubd] 111 root SW [pdflush] 112 root SW [pdflush] 113 root SW< [kswapd0] 142 root SW< [mtdblockd] 182 root SW< [unlzma/0] 199 root 412 S rc init 200 root 216 S wdog 202 root 196 S /sbin/getty ttyS0 115200 205 root SW< [scsi_eh_0] 206 root SW< [usb-storage] 253 root 376 S < /sbin/udevd -d 382 root 432 S hostapd -B /tmp/secbr0 386 root 168 S udhcpd /etc/udhcpd_br0.conf 410 root 584 S shttpd -root /tmp/www/ftp -ports 8080 412 root 356 S /sbin/vsftpd 416 root 132 S /usr/sbin/telnetd 422 nobody 432 S /sbin/dnsmasq 434 root 128 S /usr/sbin/httpd -h /tmp/www/ 687 root 500 S /sbin/wpa_supplicant -i ath1 -c /tmp/wpa.conf -B 1381 root 372 S -sh 2351 root 192 R ps aux Mem: 10256K used, 51440K free, 0K shrd, 124K buff, 2800K cached
母艦にPQI Air Pen上のバイナリをコピーしてfileコマンドで調べるとこのような感じ。
MacBook-Pro:bin $ file busybox busybox: EL 32-bit MSB executable, MIPS, MIPS32 rel2 version 1 (SYSV), statically linked, corrupted section header size
PQI Air Penが起動するとき、microSD上のルートディレクトリに置いたthisisautorunというシェルスクリプトが自動実行されます。
microSDカードは、PQI Air PenのOSから見ると、前述の通り /tmp/www/ftp/sda1 というパスにマウントされていますので、 thisisautorun へのフルパスは即ち /tmp/www/ftp/sda1/thisisautorun となります。
前述の通り、PQI Air Penが起動するとき、microSD上のルートディレクトリに置いたthisisautorunというファイルが、シェルスクリプトとして自動的に実行されます。
root権限を持った状態で実行されるので、シェルスクリプトからできないことはありません。
この働きを利用して、PQI Air Penの動作をカスタマイズしたいと思います。この辺は、PQI Air Cardとほぼいっしょですが、PQI Air Cardはルートファイルシステムがramfs、読み書き可能で、自由に書き換えられたのに対し、PQI Air Penはルートファイルシステムがsquashfsで読み出し専用となっている点が異なります。
ひとりぶろぐ » デジカメ内部でRubyを動かす狂気!無線LAN内蔵SDカードアダプタPQI Air Cardの間違った使い方
この点でPQI Air Cardより制約はあるのですが、ルートファイルシステムがsquashfsで読み出し専用かつ、起動時の自動実行シェルスクリプトが無いPQI Air Driveよりは随分と面白味があります。しかも、PQI Air Penには有線、無線とネットワークインターフェースが二つ付いていますから、いろいろと使い方は模索できるでしょう。
ひとりぶろぐ » ハックで遊べる!名刺ケースサイズの無線LAN内蔵SDカードリーダーPQI Air Driveが熱い
まずはftpサーバの公開ディレクトリを変更してみましょう。
ただ、これをやると専用アプリの使用に支障が出るのでご注意を。
デフォルトでは/tmp/www/ftp/が見えるようになっているので、ルートディレクトリを公開するようにします。
/etc/vsftpd.confを/tmp/www/ftp/sda1、すなわちmicroSDのルートディレクトリにコピーします。そして、vsftpd.confの末尾3カ所にある「/tmp/www/ftp」を、全部「/」に書き換え。
anon_root=/tmp/www/ftp ftp_username=nobody secure_chroot_dir=/tmp/www/ftp local_root=/tmp/www/ftp
thisisautorunの内容は以下のようにします。
#!/bin/sh killall vsftpd /sbin/vsftpd /tmp/www/ftp/sda1/vsftpd.conf &
そして、一度PQI Air Penの電源を切って入れ直すか、telnetでログインした状態でrebootコマンドを実行。しかる後に、PQI Air Penに再度ftpクライアントで接続します。
こんなことをしなくともディレクトリを上がっていけるのですが、接続直後からルートディレクトリが見えるようになりました。
PQI Air Penは無線LANのアクセスポイントとして機能します。既存の無線LANにクライアントとして参加するためには、アクセスポイントとして機能するPQI Air Penに接続し、Webの設定画面から操作して動作モードを切り替えないとなりません。
専らスマートフォンのテザリング子機として機能させようという場合などは、いちいち操作しないとならず面倒です。
起動直後から既存の無線LANにクライアントとして参加させてみましょう。
microSDのルートディレクトリに、thisisautorunとconnectという二つのシェルスクリプトを作成します。
thisisautorunからは、もう一つのシェルスクリプト、connectをバックグラウンド(末尾の&がバックグラウンド実行指定)で実行開始します。
▼シェルスクリプト thisisautorun
#!/bin/sh /tmp/www/ftp/sda1/connect &
もう一つのシェルスクリプトconnectでは、Web設定画面を操作して既存の無線LANに接続開始します。
スクリプトの中で使っているwgetアプレットは、標準のbusyboxには入っていないのでwget入りのbusyboxを以下から調達します。「busybox-mips」というファイル名のものがPQI Air Penで動きます。
http://busybox.net/downloads/binaries/latest/
このbusyboxに入っているアプレットのリストは以下。
これを /tmp/www/ftp/sda1/bin/ 、即ちmicroSDのルートディレクトリに作ったbinというディレクトリの下にコピーしました。
シェルスクリプトconnectには8秒のウエイトを入れたので、分かりやすくconnect実行中は同期用の緑色のLEDを点灯するようにしています。
「ssid=YourSSID」「pass=YourPassword」の部分を自分の環境に合わせて書き換えてください。それぞれ、SSID、パスワードはURLエンコードしたものを書く必要があります。
▼シェルスクリプト connect
#!/bin/sh echo 1 > /proc/gpio/gpio23_out sleep 8 ssid=YourSSID pass=YourPassword wget="/tmp/www/ftp/sda1/bin/busybox-mips wget -O -" prefix="http://127.0.0.1/cgi-bin/cmd" $wget "${prefix}%3fset%3dSTASSID%26STASSID_VALUE%3d${ssid}" $wget "${prefix}%3fset%3dSTAWPA%26STAWPA_VALUE%3dWPA%2dPSK" $wget "${prefix}%3fset%3dSTAPASS%26STAPASS_VALUE%3d${pass}" $wget "${prefix}%3fcmd%3dCONNECT" echo 0 > /proc/gpio/gpio23_out
無線LANのセキュリティがWEPの場合は、次のように変わります。
$wget "${prefix}%3fset%3dSTAWPA%26STAWPA_VALUE%3dWPA%2dPSK" ↓ $wget "${prefix}%3fset%3dSTAWPA%26STAWPA_VALUE%3dWEP"
無線LANがオープンネットワークの場合は次のようになります。
$wget "${prefix}%3fset%3dSTAWPA%26STAWPA_VALUE%3dWPA%2dPSK" ↓ $wget "${prefix}%3fset%3dSTAWPA%26STAWPA_VALUE%3dNONE"
無線LANがオープンネットワークの場合は次の行が必要ありません。
$wget "${prefix}%3fset%3dSTAPASS%26STAPASS_VALUE%3d${pass}"
なぜシェルスクリプトが二つに分かれているかというと、thisisautorunの実行が終わってからネットワークの設定を始めるようで、thisisautorunの中から動作を切り替えることができないからです。
PQI Air Pen上で動いているWebサーバで動かすcgiは、自前で用意することができます。
Webサーバで公開されているのは/tmp/www/以下。
/tmp/以下はramfsで書き換え可能。なので、Webサーバで公開されているページは自由にいじることができます。
/tmp/www/cgi-bin/というディレクトリもありますが、別にどこにあってもcgiという拡張子であればcgiとして実行されます。
ただし、既存のcgiは、スピードの関係か、ほとんどがバイナリです。
自前で用意するcgiは、別にシェルスクリプトでもOKです。前述のbusybox-mipsをインストールしておけば、cgiの記述にsedやawkを利用可能です。
microSDのルートディレクトリは、ブラウザから見た場合「http://pqi.air:8080/sda1/」となります。microSDのルートディレクトリに置いたtest.cgiというcgiは「http://pqi.air:8080/sda1/test.cgi」でアクセスできます。
例えば、次のようなファイル、test.cgiをmicroSDのルートに置いて「http://pqi.air:8080/sda1/test.cgi」にブラウザからアクセスしてみます。
#!/bin/sh echo "Content-Type: text/html" echo "" echo "<h1>Hoge</h1>" echo "<p>Hello, World!<p>"
すると、上記の内容がcgiとして実行され表示されるはずです。
元からあるコマンドと追加のbusybox-mipsだけでは物足りないということで、追加のソフトウェアを用意しましょう。
Open-WRT、DD-WRTのパッケージが流用できるかと思いきや、PQI Air Penの/libにあるライブラリでは動きませんでした。
busybox-mipsがすんなり動いたのは、必要なライブラリがスタティックリンクされたバイナリだからです。
ここで注意すべきは、ルートファイルシステムが読み取り専用であるということです。
新しく用意するソフトウェアは、/libにあるライブラリにリンクする形でコンパイルするか、busybox-mips同様ライブラリをスタティックリンクするか、/tmp/www/ftp/sda1以下、即ちmicroSD上に置いたライブラリにダイナミックリンクする必要があります。
今のところ、僕のところではスタティックリンクする方法しかうまくいっていませんが、PQI Air Penの問題でなく、僕が無知であることに起因した問題でしょう。
何でもかんでもスタティックリンクすればいいかというと、そういうわけではありません。スタティックリンクしようとするとコンパイルできないもの、うまく動かないものもあります。
コンパイルに使ったtoolchainは、Sourcery CodeBench Lite Editionです。
Sourcery CodeBench Lite Edition – Mentor Graphics
「Sourcery CodeBench Lite Edition>MIPS processors>Download the GNU/Linux release>Sourcery CodeBench Lite 2012.09-99>IA32 GNU/Linux Installer」と辿り、 mips-2012.09-99-mips-linux-gnu.bin をダウンロードします。
ターミナルから実行するとインストールが開始されます。
ホームディレクトリにインストールしたので、以下を~/.bashrcに追記し、パスを通しました。
export PATH=$HOME/CodeSourcery/Sourcery_CodeBench_Lite_for_MIPS_GNU_Linux/bin:$PATH
toolchainのプレフィックスは mips-linux-gnu。gccであるならば、mips-linux-gnu-gcc になります。
試しにnkfをコンパイルしてみました。
nkf Network Kanji Filter プロジェクト日本語トップページ – SourceForge.JP
CC = mips-linux-gnu-gcc CFLAGS = -g -O2 -Wall -pedantic -static -march=24kc
Makefileの冒頭を上記のように書き換え、make。PQI Air Penで動くnkfが出来ました。
ubuntu@ubuntu:~/Downloads/nkf-2.1.2$ file nkf nkf: ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1, statically linked, for GNU/Linux 2.6.12, with unknown capability 0x41000000 = 0xf676e75, with unknown capability 0x10000 = 0x70401, not stripped
バイナリを一応置いておきます。
ダウンロード: nkf-2.1.2-mips.zip
PQI Air Pen用に何かコンパイル出来たら、ぜひ教えてください。
意外と興味を持つ人が多いみたいなので、socket.soがどうにも出来なくてネットにつながらない中途半端なものですが、一応ruby 1.8.7を置いておきます。
/tmp/www/ftp/sda1/bin # ./ruby -v ruby 1.8.7 (2012-10-12 patchlevel 371) [mips-linux]
ダウンロード: ruby-1.8.7-mips.zip
手練れの方、完璧なやつをよろしくお願いします。
ただ、専用アプリがmicroSDカード内にある全ファイルを再帰的にたどる作りになっているため、rubyを置いておくと専用アプリが大分もっさりするようになってしまうという不都合があります。
ポケット無線LANルータ、無線ストレージ/パーソナルクラウド、USB接続microSDカードリーダの三役をこなし、なおかつシステムをカスタマイズして楽しむこともできるPQI Air Pen。
僕はこういう製品に目が無く、とても気に入りました。