先日から頑張っていたPQI Air Card II(以下、Air Card)は諦めた。いろいろ苦労して、さっきデジカメからPCに画像を取り込めるようにはなったのだが、その過程で、消費電力が大きいどころでない、致命的で解決できない問題に気付いたのだ。実使用時のように、Air Cardをデジカメに入れて、撮影・表示してPCから画像を取り込もうとして、気付いた。
Air Cardは中でLinuxが動いている。それが最大の(魅力であり、)欠陥だ。
Linuxは、Windowsと同様、起動が遅い。いくら頑張っても、一瞬では起動できない。スマフォのAndoridもLinuxベースだが、使っていない時にスリープしているだけで、基本的にはいつも動いているから、頻繁に画面をon/offしたって問題がない(そして、ご存知のように、本当に電源をon/offする時はすごく時間が掛かる)。
ところが、デジカメは全く違う。撮影時は、撮ったら電池を節約するために電源を小まめに切る。表示の時も同様だ。そのたびに、SDカードの中の可哀想なLinuxは(おそらく途中まで)起動しては、何の前触れもなくブチっと電源を切られる。Linuxは(Windows同様、)終了時にもちゃんとした手順を踏まないといけないから、そんなことを年中やっていたら、いつかはSDカードが壊れる(論理的、あるいは、物理的に)。だから、「すぐ壊れる」、「動かなくなった」というレビューが多いのかも知れない。
仮に、システムがうまくできていて、そんなことしても問題が生じないようになっていたって、僕は使う気になれない。撮影・表示のたびに中で「ブチブチ」しているのを想像するだけで、冷や汗が出そうだ。
これがもし、SDカードでなく、デジカメ本体の中で(Linuxである必要はないのだが)Linuxが動いていたら、まだマシだろう。スマフォのように、電源を切ったように見せかけてスリープとかスタンバイさせればいいのだ。あるいは、電源を切って一定のアイドル時間が経過したら本当に終了すようにし、その処理が完了するまでは電池で動かしておくなどだ。
デジカメにWi-Fiを後付けするという発想は良かったと思うが、(他のいろいろな失敗作と同様、)やり方が悪かった。安易なノリだけで進めてしまったとか、できたから売るという姿勢だったのかも知れない。元の開発キット(→ 片鱗が見える; 元にしていると思われる、KeyASICのWi-Fi SDカード Mcard)を見ると、まあ、普通に良くある物で、デジカメ用のWi-Fi SDのようなことはできるのだが、実際に製品化した時のことは余り考えていないことが想像できる。まあ、最初のコンセプトの時点ではそれでいいのだが、実際の使われ方をちゃんと考えて売り込まないと、絵に描いた餅にしかならないことの典型だ。何らかの製品はできるけど、(例によって、製品化を押し付けられた開発者が多大な苦労をしたって)使い物にならない物しかできないし、売れない。その結果がこのひどいレビューサマリーだ。
他にも以下のような問題があった。
- 消費電力が大きい。
- Air Card自体やPCにマウントするためのソフト(curlftpfs※)の動作の安定性が悪い。
- Air Cardが起動しない(Wi-Fi接続しない)ことがある。
- curlftpfsでマウント・アンマウントできないことがある。
- curlftpfsを使うと、他のプロセスがハングすることがある。
- Air Cardの起動が遅い(Wi-Fi接続できるまで30秒くらい掛かる)。
※curlftpfs(FTPサーバをPCにマウントするソフト)はAir Cardとは関係ないが、PCから画像を取り込むのに、Air Cardの改造を最小限にしようとしたために使用した。
消費電力には目をつぶっても※、2, 3番目のありさまでは、普通に気軽に使える状態(例: 先日構築したスマフォの画像の自動転送は、とてもいい感じに動くようになった。僕は、デジカメでもそれができるのを夢見ていた)には、まずならなそうだと思った。
※別の投稿のPS3に書いたが、Linuxを動かしていなくても消費電力が大きいことが分かったので、これ以上減らせる可能性はほとんどない。(3/27 12:12追記)
という訳で、諦めた。
Air Card自体はおもしろい製品ではあるのだが、何か他に使えるかというと、残念ながらない。いわゆる"IoT"用途が思い付くが、センサなどの外部入力ができないし、基本機能も性能も悪く、拡張性もなく、小さ過ぎてハードの改造もできず、OSも凄まじく古いので、全くつぶしが効かない。これを普通に使えるようにするために苦労するんだったら、普通のラズベリーパイなどの方がずっといい。値段も安い。(いずれにしても、僕は趣味でそういうのをいじる気にはならないからパスだがw)
なお、FlashAirにも同様の問題はありそうだが、あちらはフラッシュメモリが内蔵で汎用SDカードでないから、ブチブチ対策ができそうだし、OSはLinuxではないかも知れないし、中にバックアップ電源が入っているかも知れないので、少しは安定しているのかも知れない。でも、僕はやっぱり使わないだろう。
という訳で、良くある、「コンセプトは良かったんだけどねぇ・・・」の典型だった。僕も、もう少しそもそものところから考えれば良かった。「あの小さい中でLinuxが動いている」ということだけで目がくらみ、「これはすごい!」と思考停止してしまった。まだまだ甘いね。
PS. 文句を言うばかりでなく、どうすればできるかを考えたら、ハードでWi-Fiやストレージ処理のほとんどを実現すればいいような気がする。今でも低レベルのWi-FiやSDカードの処理はハードでやっているが、Linuxじゃなくても(理想はOSなしで)簡単に使えるようなチップなら良さそうだ(ただ、低レベルの通信だけじゃなくて、各種プロトコルが要るから、結構難しい気はする。それでも、そういう製品はあるようだ)。
まあ、Air Card自体が(部品化されているという意味で)「ハード」と言えばそうなのだが、そう言うのであれば、「まったく出来が悪過ぎるハード」だとしか言いようがない。
それから、Wi-Fiのon/offスイッチは必須だ。スイッチがあれば、消費電力だけでなく、かなりの「ブチブチ対策」になる。それならLinuxでもまだ可能性がある。スイッチがある製品はez Shareだけだが、現実的な技術や費用でできることと実際の使い方を良く考えたのかも知れない。そこには感心する。
PS2. 「諦めた」とは書きつつも、例によってしつこくあがいてみたのだが、やっぱり、Air Cardはどうにもならない。一番の問題に対処すべく、電源on時にLinuxを起動しなくもできるようにしたいと思って四苦八苦したが、PCとAir CardのOSのバージョンが乖離し過ぎているためにいろいろな不整合が噴出して、前段階(基本的なプログラム(busybox)のコンパイル)すらままならなかった。
そもそも、ソフト的に選択できるようにしたとして、実際に(人が)Linuxを起動するかどうかを手軽に選択する手段がない。あの小ささでは電気的スイッチを付けるのは無理だ(ライトプロテクトスイッチは、実はどこにも繋がっていない)。せいぜい、「特定の画像を削除して」とかなら可能そうだが、それを実装するのも容易ではない(でも可能かもなぁ。でも疲れたなぁ・・・)。
※(3/27 12:14追記) 本文に追記したように、Linuxを動かしていなくても消費電力が大きいことが分かったので、この検討は意味がなかった。
(3/30 10:02追記) 興味があったのでその後も試してみた。まず、program.binは(更新専用のためか)u-bootのサブセットで、hushの機能(ifや&&など)が使えない。そのため、program.binの中のu-bootコマンド文字列をパッチして「特定の画像があったらLinuxを起動させない」ようにすることはできなかった。
次に、ある方が、GPLのために公開されていたAir CardまたはTranscend Wi-Fi SD Card(実体はKeyASICのKA2000)のソースプログラムなどを公開していたので、その中のu-bootを改造して使えるか試した。Ubuntu 12なら、Sourcery G++ Lite 2011-03-42 (ARM EABI)でコンパイルでき、u-boot.binを"program.bin"としてmicro SDに置くことで起動もできた。
ただし、公開されたソースと実機の構成が異なるのか、今ひとつうまく動作しなかった。例えば、u-bootのgoコマンドやSDや内蔵フラッシュからのファイル読み込み(fatload, sf loadコマンド)はうまく動作しないことが多かった。構成が違うためなのか私の使い方が悪いのかは不明である。外部に何も出力できないので状態の確認が難しいし、実機の詳細な情報がないので、調整のしようがない。
また、このプラットフォームのu-bootのsleepコマンドは単なるビジーループなので、消費電力を減らすためには使えない(前の投稿のPS3や上記の「Linuxを動かしていなくても消費電力が大き」かったのはそのせいだろう)。クロックの周波数を下げるとか各デバイスやCPUを停めるなどの処理が要るが、実機の情報がないので困難だ。
他に可能性があるのは、program.binをうまく改造することかLinuxの起動の初期に停止させる(デバイスの初期化プログラムがちゃんとあるので、期待する処理ができる可能性はある)ことだが、前者は至難の技だし後者は余り好ましくない(Linuxは内蔵フラッシュから起動するので、起動を中断させても大きな問題は起こらなそうではあるが)うえにLinuxをビルドするのは大掛かりだ。
という訳で、私の希望どおりにAir Cardを改良・改造するのは、ほとんど不可能だと思う。
PS3. スイッチでWi-Fiのon/off可能なeZ Shareについて調べたが、一番の問題は専用アプリまたはブラウザからのアクセスしかできないことだ。それではLinuxから画像を取り込むのがなかなか面倒だ(ページのスクレーピング?)。あと、例によって、サポートがかなり心許ない。質問しようとしたのだが、webに書かれたメールアドレスはエラーで戻って来た。それで、Amazonに出している店(メーカーかその関連企業)に出したら結構アバウトな回答だった。例えば、消費電力を聞いているのにスイッチの使い方を答えて来たり、起動時間は「速い」という回答だったり・・・ この調子では、質問の答えが良くても実際は違うことがありそうだから、買って試すしかない※。けれど、上記のとおり、通信がしょぼいので止めた。
※再度消費電力について質問したら、回答は"Thank you!"だった。脳味噌あるのかな? 論外以下で却下だ。 (3/27 16:53)
あと、内部画像(→ 表, 裏)を見ただけでの推測だが、Wi-Fiのon/offは本当にWi-Fiチップだけon/offしている(チップの電源制御端子(CHIP_PWD_L)をon/offしていると想像する)ようだ。それでも消費電力が小さければいいが、試してみないとなんとも言えない。
画像を見て今気付いたのだが、これはmicro SDを使っているけど、抜けないように(そうとは分からないように?)封入しているのか。道理でカードが汚れている訳だ。なかなかすごい・・・
(2/26 7:06 わずかに修正, 8:08 Mcardへのリンクを追加; 3/27 9:21 PS2, PS3を追記, 12:14 Linuxを動かしていない時も消費電力が大きい件を追記, 12:56 ez Shareのスイッチの件を追記, 17:48 題に追加; 3/30 10:02 PS2に追記)
naoki: 2019-03-26 01:27
Linuxを強制終了することによる、論理的あるいは物理的破壊に、感心のような納得をしました。「なるほど……」と。
ToshibaのFlashAirのWi-FiのOn/Offは、プリインストールされている写真のロックを外すか否かで行います。
……って、書きましたっけ……? (すみません。本当その辺りの記憶が馬鹿なんです)
れんと: 2019-03-26 05:22
●そうなんです。中のLinuxのことを考えると、マジで嫌な気分になるんですw 今思い付きましたが、車のエンジンを掛ける時、ちょっとクランキングして止めるを繰り返すみたいなもんですね。
FlashAirの件、お教えありがとうございます。Air Cardも同じだと思い込んでいましたが、こっちは画像の削除でWi-Fiのonを行います(画像ではoffにはできないはず)。すると、僕のデジカメでは、その画像がなくなったり、サムネイルが見えなくなったりして、以後操作がしにくくなります。
あと、これをやっても状態が記憶されず、電源offすると解除されるので、イマイチです。
そして、その画像を削除せずにWi-Fi offの状態でも消費電力は一向に減らないところが頭に来ます。
真似ているのか偶然なのかは分かりませんが、こういうところが全然こなれてないようですね。
本文には書かなかったのですが、昨夜、「スイッチのある、ezShareはなんて止めたんだっけ」と思いました。危ない兆候ですw