munin向けのpcsensorプラグインを作った

上海問屋のDNSB-35137など、いくつかの販路で取り扱われているUSB接続の温度計 RDing TEMPerV1.2。

その温度をmuninで計測するためにpluginを作った。

今回考慮が必要だった点
・USB温度計を2つつなぐ
・つなぐUSB BUSが同じであるため、CentOS5上で見分けがつかない
 (TEMPerV1.2ではシリアルを含めデバイス内のパラメータが全部一緒で見分ける方法がない)
・2つの温度計の設置位置は違うので、温度差が5度ぐらいある
・pcsensorコマンド実行時、デバイスがオフラインになることが良くある
 (参考→USB温度計 TEMPerV1.2は計測ミスが多い)

あまり複雑なことをするのも嫌だったので、単純な実装としました。

・温度が2つ取得できるまで、再試行する
・温度が低い方から順にソートして「usbtemper0」「usbtemper1」としていく

また、内部で使うコマンドは、うちで作成した「pcsensor-1.0.2 for TEMPerV1.2 with multi device support」を使います。

USB温度計を1個しか繋がない人は「my $maxdevice=1;」に書き換えてください。

#!/usr/bin/perl -w

my $options="-d";
my $maxdevice=2;

my $arg=$ARGV[0];
if(!$arg){ $arg=""; }

if("$arg" eq "config"){
    print "graph_title USB Temperature Sensor\n";
    print "graph_vtitle Celsius\n";
    print "graph_category sensors\n";
    print "graph_args --base 1000 -l 0\n";
}

my @devlist;
my $count=0;
while($count<$maxdevice){
    open(FILE,"/usr/local/bin/pcsensor $options|");
    while(my $line=<FILE>){
        $line =~ s/\n//ig;

        if($line =~ /Temperature/){
            my @strs=split(/ /,$line);

            my $devnumber=$strs[3] ."-". $strs[5];
            my $value=$strs[8];
            $value=~ s/C//ig;
            #$value=int($value);

            $devlist[$count]=$value;
            $count++;
        }
    }
    close(FILE);
}

my $counttmp=0;
foreach $value (sort @devlist){
    if("$arg" eq "config"){
        print "usbtemper".$counttmp.".label USB temper".$counttmp."\n";
    }else{
        print "usbtemper".$counttmp.".value ".$value."\n";
    }
    $counttmp++;
}

これ、仕掛けて3時間ぐらいしたら、kernel panic起こしやがった・・・

レトロ風ゲーム専用携帯機 the nDは終了したのかな?

だいぶ前に紹介したthe nDという携帯ゲームハードウェア。
(2011年8月8日「the nD」および2011年11月7日「the nDのその後・・・?」)

どうやら、逃げたみたいです。

半年ぐらい前はまだ、サイトが残っていたんですが、2013年5月現在、トップページ(http://the-nd.com/)とかフォーラム(http://the-nd.com/forum/)だったURLにアクセスしても、首謀者Bobのメインサイト http://game.bobsgame.com/ に飛ばされます。

アクセスしてみると、Javaのローディングが始まります。
page

で、ライセンスとかについての確認があって・・・
page1

しばらく読み込まれた後、なにかゲームっぽいのが始まります。
page4

えぇ、↑の画面、ゲームが始まっているんですよ。
カーソルキーを動かすと、なにかキャラみたいなのが動くんですが、状況説明とかが何もないし、よく見えないので、何がなんだかさっぱりわかりません。

レトロゲーム風のアドベンチャーっぽい雰囲気だけは感じられます。

なんか、ハードウェアについては、まるでMorphy Oneみたくなっちゃいましたね。

ちなみに↓は秘蔵のモルフィーワンの写真
IMG_0623
IMG_0625
2002年6月に秋葉原であった初お披露目の時に撮影したものです。


2013/05/23追記

海外のゲーム系blog PolygonsandPixelsで、the nD関連の記事を発見しました。

2013/03/01:The strange tale of “bob’s game”
2013/05/11:A new phase of Bob’s Game

ゲームを進めていくと何かでてくるらしいが・・・


2020/01/23 追記

久しぶりにどうなったのか確認してみると、首謀者Bobのページは「Bob Corporation」に移動していた。

Steamで「Bob’s game」という名称でテトリスとぷよぷよを組み合わせたような感じでネットワーク対戦もサポートした落ちものゲームを2016年~2017年にかけてリリースしていた。

githubの「 https://github.com/bobsgame 」でゲームサーバとアプリのソースを公開している。ただし、下記のようにソースを公開しているだけで、オープンソースではない、と言っている。

bob’s game is “source available” and “free as in beer” but not “Open Source” and “free as in speech” (yet).

That means no forks except to create pull requests!

Flash Air ProがFlucard ProのTREK2000から発売?

Flash Air Proという製品が、Flucard Proを販売しているTREK2000から販売になるようです。

東芝から販売しているFlash Airと、ロゴも同じなので、販売者が変わるって感じになるんでしょうかね。

(2013/06/08: trekflashair.comにアクセスするとflu-card.comに飛ばされるようになりました。どうやら誤った公開だったようです)

flashairpro
FlashAir Pro
flashcard
FlashAir
flucard
Flucard Pro

で・・・Flash Air Proのサポートページを見てみると、早速Firmware 1.15なんてものが出てるわけですよ。
もちろん、ダウンロード

Flucard/PQI AirCardの時と同じ手法で展開。(「PQI AirCardのfirmwareが出たのでFlucard Proのfirmwareとざらっと比較」)

$ ls -l
合計 5340
-rwxrwxrwx 1 osakana user     261  4月 16 16:26 autorun.sh
-rwxr--r-- 1 osakana user 2853952  4月 16 16:26 image3cc
-rwxr--r-- 1 osakana user 2450426  4月 15 20:36 initramfs3cc.gz
-rwxrwxrwx 1 osakana user  114844  4月 15 19:01 program.bin
-rwxr--r-- 1 osakana user     124  4月 15 19:03 version3.txt
$ expr 2450426 - 8
2450418
$ cat initramfs3cc.gz |tail -c 2450418 > initramfs3cc-tmp.gz
$ file initramfs3cc-tmp.gz
initramfs3cc-tmp.gz: gzip compressed data, from Unix, last modified: Mon Apr 15 20:18:37 2013
$ gzip -dc initramfs3cc-tmp.gz > initramfs3cc-tmp
$ file initramfs3cc-tmp
initramfs3cc-tmp: ASCII cpio archive (SVR4 with no CRC)
$ ls -l initramfs3cc-tmp
-rw-rw-r-- 1 osakana user 4611584  5月 18 09:46 initramfs3cc-tmp
$

で、initramfsを展開していくと、いろいろ出てくる、という手法は変わらずでした。

「/etc/init.d/rcS」にはちょっと興味深い記述が・・・

get_toshiba -p "APPMODE"

なんてのがありまして、東芝版FlashAirとの関連性をうかがわせるものとか

firmwareアップデートが終わった後の初回起動時に、SDカード内部を掃除するための記述が以下の様になっていて

if [ -f /mnt/sd/program.bin ];
then
        echo "delete program.bin so that it will not program again"
        #refresh_sd
        echo "rm program.bin"
        rm -f  /mnt/sd/program.bin
        rm -f  /mnt/sd/Image
        rm -f  /mnt/sd/image
        rm -f  /mnt/sd/initramfs.gz
        rm -f  /mnt/sd/u-boot.bin
        rm -f  /mnt/sd/mtd_jffs2.bin
        rm -f  /mnt/sd/ka_bootldr.bin
        rm -f  /mnt/sd/Image3
        rm -f  /mnt/sd/image3
        rm -f  /mnt/sd/initramfs3.gz
        rm -f  /mnt/sd/Image3cc
        rm -f  /mnt/sd/Initramfs3cc.gz
        rm -f  /mnt/sd/image3cc
        rm -f  /mnt/sd/initramfs3cc.gz
        <略>

Flucard ProとPQI AirCardの両方に対応できる記述になっていたり

#flu_app 8
#refresh_sd

Flucard用アプリの起動がコメントされてたり、flu_app自体はbin内にあったり、と、基本的には、Flucard Pro GEN3と同等で、+東芝アプリ、という雰囲気を感じます。

まぁ・・・実物がいつ出てくるのか楽しみですね。

バッファロー「おもいでばこ」が気になったので調査してみた

バッファローが発売している「おもいでばこ」

初代モデルのPD-100が、時々安く売ってるのでちょっと気にはなっていた。
製品ラインナップを見ると、3種類、PD-100、PD-100S、PD-100S-Lあるが、外形、消費電力などは同じで、容量の違いが大きな違いのように見受けられる。

しかし、firmwareのアップデータを見ると、「PD-100」と「PD-100S/PD-100S-L」とで異なっている。
PD-100:最新は ver 1.21
PD-100S/PD-100S-L:最新は ver 1.10

別物であるのか?

気になったのでダウンロードしてみた。

zipを展開していくと、中から現れたのはsquashfsのファイル。
PD-100もPD-100Sも、根本構造は同じで、基本Android 2.2。

そう、Android。
「連携するアプリがAndroid」ではなく、「おもいでばこ自体がAndroid BOX」なのです。

/system/build.prop なんて、どちらも同一。

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=MASTER
ro.build.display.id=berlin-eng 2.2 MASTER eng.root.20110715.130354 test-keys
ro.build.version.incremental=eng.root.20110715.130354
ro.build.version.sdk=8
ro.build.version.codename=REL
ro.build.version.release=2.2
ro.build.date=2011年  7月 15日 金曜日 13:04:16 JST
ro.build.date.utc=1310702656
ro.build.type=eng
ro.build.user=root
ro.build.host=y-maruyam-desktop
ro.build.tags=test-keys
ro.product.model=berlin
ro.product.brand=marvell
ro.product.name=berlin
ro.product.device=berlin
ro.product.board=
ro.product.cpu.abi=armeabi
ro.product.manufacturer=unknown
ro.product.locale.language=mdpi
ro.product.locale.region=
ro.wifi.channels=
ro.board.platform=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=berlin
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=berlin-eng 2.2 MASTER eng.root.20110715.130354 test-keys
ro.build.fingerprint=marvell/berlin/berlin/:2.2/MASTER/eng.root.20110715.130354:eng/test-keys
# end build properties

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.config.notification_sound=OnTheHunt.ogg
ro.config.alarm_alert=Alarm_Classic.ogg
ro.kernel.android.checkjni=1
ro.setupwizard.mode=OPTIONAL
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
#changed by maru
dalvik.vm.heapsize=64m

/init あたりは微妙に差があるが、おそらくは、PD-100Sでは無線LAN USBアダプタが添付されている、という事情で、読み込むようにしたのだと思われる変更点である。

-#insmod /system/lib/modules/rtutil5370sta.ko
-#insmod /system/lib/modules/rt5370sta.ko
-#insmod /system/lib/modules/rtnet5370sta.ko
+insmod /system/lib/modules/rtutil5572sta.ko
+insmod /system/lib/modules/rt5572sta.ko
+insmod /system/lib/modules/rtnet5572sta.ko
+#insmod /system/lib/modules/log/rtutil5572sta.ko
+#insmod /system/lib/modules/log/rt5572sta.ko
+#insmod /system/lib/modules/log/rtnet5572sta.ko
+
+insmod /lib/ufsd.ko

PD-100にも/system/lib/modulesに上記ファイルはある。
(/system/lib/modules/log/ は無い)

Androidなら搭載アプリに差があるのか、とsystem/app以下を見てみたが、たいした差はない。

# ls -l pd100-firmware/system/app/
合計 67760
-rw-rw-rw- 1 1000 root   143193  7月 13  2012 AccountAndSyncSettings.apk
-rw-rw-rw- 1 1000 root    18781  7月 13  2012 ApplicationsProvider.apk
-rw-rw-rw- 1 1000 root    65570  7月 13  2012 CertInstaller.apk
-rw-rw-rw- 1 1000 root    11747  7月 13  2012 DefaultContainerService.apk
-rw-rw-rw- 1 1000 root   106641  7月 13  2012 Development.apk
-rw-rw-rw- 1 1000 root    74477  7月 13  2012 DownloadProvider.apk
-rw-rw-rw- 1 1000 root    97041  7月 13  2012 FileManager.apk
-rwxrw-rw- 1 1000 root    16243  7月 13  2012 GetIpAddress.apk
-rw-rw-rw- 1 1000 root    12295  7月 13  2012 HTMLViewer.apk
-rw-rw-rw- 1 1000 root   393634  7月 13  2012 MarvellScreenController.apk
-rw-rw-rw- 1 1000 root    49797  7月 13  2012 MediaProvider.apk
-rw-r--r-- 1 root root 58160522  9月 21  2012 Omoject.apk
-rwxr--r-- 1 root root  6929700  9月 21  2012 OpenWnnControlPanelJAJP.apk
-rw-rw-rw- 1 1000 root    74211  7月 13  2012 PackageInstaller.apk
-rw-rw-rw- 1 1000 root     3637  7月 13  2012 Provision.apk
-rw-rw-rw- 1 1000 root  2531112  7月 13  2012 Settings.apk
-rw-rw-rw- 1 1000 root    38162  7月 13  2012 SettingsProvider.apk
-rw-rw-rw- 1 1000 root    10149  7月 13  2012 UserDictionaryProvider.apk
-rw-rw-rw- 1 1000 root    19650  7月 13  2012 VideoPlayer.apk
-rwxr--r-- 1 1000 1000   474474  9月 19  2012 VideoTester.apk
# ls -l pd100s-firmware/system/app/
合計 121388
-rw-rw-rw- 1 1000 root    143193 12月  3 11:39 AccountAndSyncSettings.apk
-rw-rw-rw- 1 1000 root     18781 12月  3 11:39 ApplicationsProvider.apk
-rwxrw-rw- 1 1000 root   2325019 12月  3 11:39 CanonEPP220.apk
-rw-rw-rw- 1 1000 root     65570 12月  3 11:39 CertInstaller.apk
-rw-rw-rw- 1 1000 root     11747 12月  3 11:39 DefaultContainerService.apk
-rw-rw-rw- 1 1000 root    106641 12月  3 11:39 Development.apk
-rw-rw-rw- 1 1000 root     74477 12月  3 11:39 DownloadProvider.apk
-rw-rw-rw- 1 1000 root     97041 12月  3 11:39 FileManager.apk
-rwxrw-rw- 1 1000 root     16243 12月  3 11:39 GetIpAddress.apk
-rw-rw-rw- 1 1000 root     12295 12月  3 11:39 HTMLViewer.apk
-rw-rw-rw- 1 1000 root    393634 12月  3 11:39 MarvellScreenController.apk
-rw-rw-rw- 1 1000 root     49797 12月  3 11:39 MediaProvider.apk
-rw-r--r-- 1 root root 110694637  3月 14 15:11 Omoject-release.apk
-rw-r--r-- 1 root root   6923585  3月 14 15:11 OpenWnnControlPanelJAJP-release.apk
-rw-rw-rw- 1 1000 root     74211 12月  3 11:39 PackageInstaller.apk
-rw-rw-rw- 1 1000 root      3637 12月  3 11:39 Provision.apk
-rw-rw-rw- 1 1000 root   2531112 12月  3 11:39 Settings.apk
-rw-rw-rw- 1 1000 root     38162 12月  3 11:39 SettingsProvider.apk
-rw-rw-rw- 1 1000 root     10149 12月  3 11:39 UserDictionaryProvider.apk
-rw-rw-rw- 1 1000 root     19650 12月  3 11:39 VideoPlayer.apk
-rwxrw-rw- 1 1000 root    474474 12月  3 11:39 VideoTester.apk
#

どんなフォントを収録してるのかな・・・

# ls -l pd100s-firmware/system/fonts/
合計 20052
-rw-rw-rw- 1 1000 root    6880 12月  3 11:39 Clockopia.ttf
-rw-rw-rw- 1 1000 root  191032 12月  3 11:39 DroidSans-Bold.ttf
-rw-rw-rw- 1 1000 root  190044 12月  3 11:39 DroidSans.ttf
-rw-rw-rw- 1 1000 root   35908 12月  3 11:39 DroidSansArabic.ttf
-rw-rw-rw- 1 1000 root 3640264 12月  3 11:39 DroidSansFallback.ttf
-rw-rw-rw- 1 1000 root   23076 12月  3 11:39 DroidSansHebrew.ttf
-rwxrw-rw- 1 1000 root 6234084 12月  3 11:39 DroidSansJapanese.ttf
-rw-rw-rw- 1 1000 root  117072 12月  3 11:39 DroidSansMono.ttf
-rw-rw-rw- 1 1000 root   36028 12月  3 11:39 DroidSansThai.ttf
-rw-rw-rw- 1 1000 root  184836 12月  3 11:39 DroidSerif-Bold.ttf
-rw-rw-rw- 1 1000 root  189916 12月  3 11:39 DroidSerif-BoldItalic.ttf
-rw-rw-rw- 1 1000 root  177176 12月  3 11:39 DroidSerif-Italic.ttf
-rw-rw-rw- 1 1000 root  172532 12月  3 11:39 DroidSerif-Regular.ttf
-rwxrw-rw- 1 1000 root 9247356 12月  3 11:39 uzura.ttf
#

うずらフォント ver1.00が入ってますね。
(うずらフォント使いますと、ちゃんと連絡入れたのかな?)

で・・・デバイス固有っぽいファイルを探すと、「init.mv88de3010.rc」と「/system/etc/init.mv88de3010.sh」というのを発見。
PD-100とPD-100Sの差異は、ほぼ無し(init.mv88de3010.rcがPD-100Sだと「stop dhcpcd_ra0」のところがPD-100だと「stop dhcpcd」というところだけ)

cat pd100s-firmware/init.mv88de3010.rc
on early-init
    device /dev/pftimer 0666 root root
    device /dev/MV_CC_ICC 0666 root root
    device /dev/MV_CC_SHM0 0666 root root
    device /dev/MV_CC_SHM1 0666 root root
    device /dev/MV_CC_SHM2 0666 root root

on early-boot
    mkdir /mnt/DMS 0777 root root
#    mkdir /mnt/samba 0777 root root
#    mkdir /data/dms 0777 root root
#    mount tmpfs tmpfs /data/dms
#    symlink /dev/block/sr0 /dev/scd0

    setprop ro.radio.noril no
    setprop battery.fake_ac true
    setprop power.fake_power true
    setprop wifi.interface ra0

on boot
    symlink /dev/block/mtdblock0 /dev/mtdblock0
    symlink /dev/block/mtdblock1 /dev/mtdblock1
    symlink /dev/block/mtdblock2 /dev/mtdblock2
    symlink /dev/block/mtdblock3 /dev/mtdblock3
    symlink /dev/block/mtdblock4 /dev/mtdblock4
    symlink /dev/block/mtdblock5 /dev/mtdblock5
    symlink /dev/block/mtdblock6 /dev/mtdblock6
    symlink /dev/block/mtdblock7 /dev/mtdblock7
    symlink /dev/block/mtdblock8 /dev/mtdblock8
    symlink /dev/block/mtdblock9 /dev/mtdblock9

    symlink /dev/mtd/mtd0 /dev/mtd0
    symlink /dev/mtd/mtd1 /dev/mtd1
    symlink /dev/mtd/mtd2 /dev/mtd2
    symlink /dev/mtd/mtd3 /dev/mtd3
    symlink /dev/mtd/mtd4 /dev/mtd4
    symlink /dev/mtd/mtd5 /dev/mtd5
    symlink /dev/mtd/mtd6 /dev/mtd6
    symlink /dev/mtd/mtd7 /dev/mtd7
    symlink /dev/mtd/mtd8 /dev/mtd8
    symlink /dev/mtd/mtd9 /dev/mtd9

    symlink /dev/mtd/mtd_mv /dev/mtd_mv


service mv88de3010_init /system/etc/init.mv88de3010.sh
    oneshot

#service mv88de3010_bdp /system/etc/init.bdp.sh
#    oneshot

service wpa_supplicant /system/bin/wpa_supplicant \
    -Dwext -ira0 -c/data/misc/wifi/wpa_supplicant.conf
    user root
    group root system inet keystore
    disabled
    oneshot

service dhcpcd_ra0 /system/bin/dhcpcd -d ra0
    group system wifi dhcp
    disabled
    oneshot

on property:init.svc.wpa_supplicant=stopped
    stop dhcpcd_ra0

#service flash /system/etc/init.flash.sh
#    oneshot

service sm_daemon /sbin/sm_tool -d
    oneshot

service buffalo_init /system/etc/init.buffalo.sh
    oneshot

service wdt_process /sbin/process_wdt
    oneshot

#service samba /sbin/cifs.sh
#    oneshot

#service symlinker /sbin/dbread.sh
#    oneshot

service autoscript /sbin/autoscript
    oneshot

service automount /sbin/automount
    oneshot

# cat pd100s-firmware/system/etc/init.mv88de3010.sh
#!/system/bin/sh

mount -t tmpfs nodev /data/system/wpa_supplicant
busybox cp -R /etc/dms/* /data/dms/

mkdir /data/factory_setting
mount -t yaffs2 -o inband-tags,no-hack,ro /dev/mtdblock9 /data/factory_setting
busybox ethconfig -n -d /dev/mtd4 /data/factory_setting/MAC_ADDR

netcfg eth0 dhcp
setprop net.dns1 `getprop net.eth0.dns1`
setprop net.dns2 `getprop net.eth0.dns2`

#djmount -o default_permissions -o allow_other  /mnt/DMS
#

いまのところ、収集できた範囲で考えると・・・

・MARVELL社のARMADA 1000/88DE3010 HD Media Processor SoC採用のAndroid 2.2ボックス。
 CPUはARMv7-A採用のSheevaコア 1GHz * 2

・PD-100とPD-100Sは基本は同じで、ハードウェア的な違いとしては
 PD-100Sでは無線LAN USBアダプタが標準添付されている、というぐらい?

 ただ、そうだとすると、PD-100のアウトレット品がたくさんでてる理由とか
 PD-100とPD-100Sとでfirmware versionが違う、というあたりの説明がつけにくい。
 オンボードメモリサイズとか、SDカードリーダ部分のチップが置き換わっている可能性あり?

・Omoject.apk、Omoject-release.apkがメインとなるアプリの模様。
 だいぶサイズが変わってるので、機能差がそりゃあるだろうな、という感じ。
 アプリ構成からすると、このアプリがホームアプリも兼用しており、基本的にはこの世界脱出はできないような雰囲気がある。

・他のAndroid TV-BOXからfirmwareを流用できないか、というあたりでは
 initrcなどに含まれていたキーワードを元に探したところ、Meteorit MMB-322.HDTVってのが近いような雰囲気。
 ただ、MMB-322のfirmware updaterは形式が全然違うので、流用は難しそう。

↓は、バッファローダイレクトのリユース品です。

PQI AirCardのfirmwareが出たのでFlucard Proのfirmwareとざらっと比較

PQI Air Cardにfirmwareアップデータが出たらしい。

Air Cardファームウェア V147ということで、ダウンロードしてばらしてみた。

手法は「Flucard ProはARM Linux搭載でtelnetdを有効にできるなんておもしろそう!」の時と同じ。

$ ls -l
合計 6296
-rwxrwxrwx 1 osakana  user 2664833 12月 14 15:40 Image3
drwxrwxr-x 2 osakana  user    4096  1月  8 17:23 __MACOSX
-rwxrwxrwx 1 osakana  user    1024 12月 17 14:32 autoload.tbl
-rwxrwxrwx 1 osakana  user 2564665 12月 20 14:26 initramfs3.gz
-rwxrwxrwx 1 osakana  user 1048576 12月 17 14:57 mtd_jffs2.bin
-rwxrwxrwx 1 osakana  user  113920 12月 17 14:32 program.bin
$

まずは、initramfs3.gzの分解。
ヘッダはFlucardと同じ「KAGZ」

$ expr 2564665 - 8
2564657
$ cat initramfs3.gz |tail -c 2564657 > initramfs3-tmp.gz
$ file initramfs3-tmp.gz
initramfs3-tmp.gz: gzip compressed data, from Unix, last modified: Thu Dec 20 14:26:43 2012
$ gzip -dc initramfs3-tmp.gz > initramfs3-tmp
$ file initramfs3-tmp
initramfs3-tmp: ASCII cpio archive (SVR4 with no CRC)
$

mtd_jffs2.binの中身をstringsで見る限りでは、Flucardの時の「/dev/mtdblock0(/mnt/mtd)」にあった設定ファイルの元が含まれてるだけっぽいです。

program.binは、「U-Boot 2010.06-rc1」という文字列があったりするので、ブート部分っぽいですね。

・・・で・・・久々に、Flucardのサポートページに行ったわけなんですよ。
したら、12月にver 3.70なんてfirmwareが出てたんですね^^;;;;
で、こっちも展開してみると、program.binがいたりするわけで・・・

# ls -l
-rw-rw-r-- 1 root root     199 Nov 27 15:51 autorun.sh
-rw-rw-r-- 1 root root 2794656 Dec 13 11:30 Image
-rw-rw-r-- 1 root root 2853952 Dec 13 10:53 image3
-rw-rw-r-- 1 root root 2619629 Dec 13 11:28 initramfs3.gz
-rw-rw-r-- 1 root root 2609006 Dec 13 11:33 initramfs.gz
-rw-rw-r-- 1 root root  109400 Nov 27 15:51 program.bin
-rw-rw-r-- 1 root root     115 Dec 13 11:28 version3.txt
-rw-rw-r-- 1 root root     120 Dec 13 11:33 version.txt
#

というか、Flucard Pro GEN3と、PQI Air Cardは同じものっぽいですよね。
initramfs3.gzだし、program.binあるしで。

program.binをstringsレベルで簡単に比較すると、U-Bootのバージョンが変わったので変更になったのかな?という雰囲気と
読み込むファイルが違っていることによる違い(-がFlucard、+がAir Card)とか、アドレスとかが違う感じです。

 fatload mmc 1 100000 preprog_chk.bin; sf erase 100000 1000; sf write 100000 100000 400;
 sf read 30000 100000 400; sf erase 100000 1000
-sf read e00000 3000 20000; fatload mmc 1 e00200 u-boot.bin;  sf erase 3000 20000; sf wr
ite e00000 3000 20000
+sf read 1000 0 1000; md 1000 10; fatload mmc 1 1000 autoload.tbl; sf erase 0 1000; sf w
rite 1000 0 1000; sf read 3000 0 1000; md 3000 10
+sf read 1000 0 1000; md 1000 10; mw 1004 00000000; sf erase 0 1000; sf write 1000 0 100
0; sf read 3000 0 1000; md 3000 10
+sf read 1000 0 1000; md 1000 10; mw 1004 00000300; sf erase 0 1000; sf write 1000 0 100
0; sf read 3000 0 1000; md 3000 10
 fatload mmc 1 208000 image3; sf erase 200000 300000; sf write 1ffc00 200000 300000
 fatload mmc 1 208000 image; sf erase 200000 300000; sf write 1ffc00 200000 300000
 fatload mmc 1 500000 initramfs3.gz; sf erase 500000 300000; sf write 4ffc00 500000 3000
00
 fatload mmc 1 500000 initramfs.gz; sf erase 500000 300000; sf write 4ffc00 500000 30000
0
 fatload mmc 1 d00000 mtd_jffs2.bin; sf erase 80000 100000; sf write d00000 80000 100000

<略>
 program.bin
 go e00000
 preprog_chk.bin
 pre-program check passed.
 ******          Program Mode (GEN%d)              ******
 sf probe 0; mmc init
-u-boot.bin
-found u-boot.bin, start program.
+autoload.tbl
+found autoload.tbl, start program.
+sf read 1000 0 400
+delchain.dis
+disable delay chain
+enable delay chain
 image3
 found image3, start program.
 image3 oversize, size 0x%x > 0x300000

<略>
  initrd=0x800000,4M
 misc_args=mem=30M
 set_bootargs=setenv bootargs ${console_args} ${root_args} ${misc_args}
-boot_sd=run set_bootargs; mmc init; fatload mmc 1 208000 image2632; fatload mmc 1 60000
0 initramfs.gz; go 208000
+boot_sd=run set_bootargs; mmc init; fatload mmc 1 208000 image3; fatload mmc 1 500000 i
nitramfs3.gz; go 208000
 bootf=mmc init; go 0x208000
 bootcmd=run set_bootargs; run bootf

・・・・あのさぁ・・・PQI Air Cardのfirmware 作った人さぁ・・・
「etc/init.d/rcS~」ってファイルとか残したまま配布とかやめようよ・・・
emacsで編集してんの、そのまんまかよ!

あと・・・

 $ cat ./initramfs3/usr/bin/copy_control_images_to_nor.sh
cp /mnt/sd/DCIM/123_TREK/config.JPG /mnt/mtd/config
cp /mnt/sd/DCIM/123_TREK/receiver_control.JPG /mnt/mtd/config
cp /mnt/sd/DCIM/123_TREK/sender_control.JPG /mnt/mtd/config
cp /mnt/sd/DCIM/123_TREK/upload.JPG /mnt/mtd/config
$

なんて形で、「TREK」なんて書かれるんですが、大丈夫なんでしょうか?