linux で eye-fi card を設定・各種ストレージサービ スに転送する

12
Linux Eye-Fi Card を設定・各種ストレージサービ スに転送する KenichiroMATOHATA(matoken) http://hpv.cc/~maty/ Eye-Fi について Eye-Fi Card は、米国の Eye-fi 社が販売している SD Card で無線 LAN 機能が内蔵 されています。この無線 LAN 機能で周辺の無線 LAN スポットを利用して撮影した写真 や動画を自動的にアップロードすることが出来ます。カメラからは普通の SD Card として 認識するので SD Card を利用するカメラ※1 であれば特にカメラを選ばず利用できます。 Eye-Fi Card にはいくつかシリーズがあり容量や機能に差があります。日本で販売されて いる現行製品では 3 種類あります。購入される方は Eye-fi 社のウェブページ ( http://www.eyefi.co.jp/ )などで製品情報をよく見て製品を選んでください。以下は Eye-fi Card の機能の例です。 -写真、動画ファイル転送 -RAW ファイル転送 -ジオタグの付与(WPS(Wi-Fi Positioning System)を利用したジオタグ埋め込 ) -エンドレスモード(転送の終了した写真を自動削除) -ダイレクトモード(無線 LAN のアクセスポイントが無くても Eye-fi 自身がアクセス ポイントとなり iPhone,iPad,Android へ直接転送。対応アプリケーションが必要) ファイル転送撮影した写真は無線 LAN 経由で先ず Eye-fi サーバ(Eye-fi Center)に転 )Eye-fi Share Video(旧製品) )Eye-fi Pro x2(現行品)

Upload: kenichiro-matohara

Post on 27-Jun-2015

1.061 views

Category:

Engineering


2 download

DESCRIPTION

comicmarket80 の小江戸らぐLinuxUser に寄稿した記事

TRANSCRIPT

Page 1: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

Linux で Eye-Fi Cardを設定・各種ストレージサービ

スに転送するKenichiroMATOHATA(matoken)

http://hpv.cc/~maty/

Eye-Fiについて

 Eye-Fi Card は、米国の Eye-fi社が販売している SD Cardで無線 LAN機能が内蔵

されています。この無線 LAN機能で周辺の無線 LANスポットを利用して撮影した写真

や動画を自動的にアップロードすることが出来ます。カメラからは普通の SD Cardとして

認識するのでSD Cardを利用するカメラ※1であれば特にカメラを選ばず利用できます。

Eye-Fi Cardにはいくつかシリーズがあり容量や機能に差があります。日本で販売されて

いる現行製品では 3種類あります。購入される方は Eye-fi社のウェブページ

( http://www.eyefi.co.jp/ )などで製品情報をよく見て製品を選んでください。以下は

Eye-fi Card の機能の例です。

-写真、動画ファイル転送

-RAWファイル転送

-ジオタグの付与(WPS(Wi-Fi Positioning System)を利用したジオタグ埋め込

み)

-エンドレスモード(転送の終了した写真を自動削除)

-ダイレクトモード(無線 LANのアクセスポイントが無くても Eye-fi自身がアクセス

ポイントとなり iPhone,iPad,Androidへ直接転送。対応アプリケーションが必要)

ファイル転送撮影した写真は無線 LAN経由で先ずEye-fiサーバ(Eye-fi Center)に転

左)Eye-fi Share Video(旧製品) 右)Eye-fi

Pro x2(現行品)

Page 2: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

送され前もって設定しておいたストレージサービスに転送することが出来ます。Eye-fi

サーバには1週間の間は全ての画像が保存されていますのでその間は再転送したりダウ

ンロードしたりといった操作が可能です。

ジオタグ機能は周りにアクセスポイントがないと利用できませんし精度もそれなりですが

それを理解していれば便利な機能です。精度が必要な場合は別途GPSレシーバと組み

合わせてそちらで上書きすると良いです。

このEye-fi Caedを利用するには専用の設定ソフトが必要なのですが、Windows

用/Mac用だけで Linuxでは設定が出来ません。基本的には一度設定してしまえば問題

ないのですが、出先で無線 LANのアクセスポイントを登録するといったことが出来ませ

ん。そこで、何時も持ち歩いている Linuxマシンで設定できないかと探してみたら Eye-Fi

Configuration Toolというものを見つけました。ここではこのツールの使い方と複数のスト

レージサービスへ写真を転送する方法を説明したいと思います。

※1 CF(コンパクトフラッシュ)カメラでCF-SD Cardアダプタ経由での利用等は基本的

に保証対象外です。私が試したところでは SD Cardとしては問題なく利用できますが無

線 LANの出力が弱くなってしまうようです。Eye-Fi CardでCF-SD Cardアダプタを利

用する場合はドイツ製のDeLOCK 61796というものが定評があるようです。

Eye-fiライクな製品

CP+2011(カメラ関連の展示会)のレポートを見ていると、無線 LAN内蔵のSDカード

「FluCard」というものが東芝とシンガポールの半導体メーカー TREK 2000から出展さ

れていたようです。( http://www.flu-card.com/ )Eye-fi と同じような製品ですが容量はこ

ちらが 32GBまであって大容量、対応機器同士の画像転送なども可能だそうです。しかし

クラウドサービスは 2GBまで、動画転送は今のところ未サポートとなっています。

FluCardは現在シンガポールで販売中で近いうちに東芝経由で日本でも発売されるよ

うです。白地に水色の可愛い製品です。

東芝は次世代SDカードの標準化にこの無線 LAN機能を盛り込むよう働きかけているよ

うです。そうなると SD Card で無線 LAN 搭載というのが普通になってまた色々な利用方

法が出てきそうです。#カメラから出さずにモニタで再生、印刷等…。

Linux環境での Eye-fi Card 設定

Eye-Fi Configuration Toolを使うと Linux 環境で以下のような設定が可能になります。

-周辺の無線 LANアクセスポイントのスキャン

-無線 LAN設定の追加、削除

-無線 LAN設定一覧表示

Page 3: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

-エンドレスモードの設定

-Eye-fi Cardの再起動

-MACアドレスの表示

-ファームウェアバージョン表示

-ログレベル変更

-ログ表示

これで全ての機能が操作できるわけではなく、ファームウェアのアップデート、オンライン

サービスの設定等は出来ません。オンラインサービスの設定については前もって

Windows, Mac 環境で設定しておくことでweb 経由で設定の切り替えは可能です。

まずは導入です。Eye-Fi Configuration Toolのページ( http://sr71.net/projects/eyefi/ )

から最新版のソースを入手してビルドします。この原稿執筆時点ではVersion 011が最

新でした。#開発中のソースを試したい人は gitの物を利用しましょう。( git://git.sr71.net/eyefi-config.git )

$ wget http://sr71.net/projects/eyefi/eyefi-config-011.tar.gz

$ tar tvzf eyefi-config-011.tar.gz

$ tar xzf eyefi-config-011.tar.gz

$ cd eyefi-config-011

$ make

$ cp -p ./eyefi-config ~/usr/local/bin

出来上がったプログラムは適当なパスの通った場所にコピーしておきます。早速実行して

みると usage が表示されます。

$ eyefi-config

Usage:

eyefitest [OPTIONS]

-a ESSID add network (implies test unless –force)

-t ESSID test network

-p KEY set WPA key for add/test

-r ESSID remove network

-s scan for networks

-c list configured networks

-b reboot card

-f print information about card firmware

Page 4: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

-d level set debugging level (default: 1)

-k print card unique key

-l dump card log

-m print card mac

ここからは、Eye-fi Card を PCのSD Card Slotに挿した状態でコマンドを実行してくだ

さい。Windows, Mac 環境ではEye-fi Card付属のUSB-SD Card アダプタ経由で設

定しますが、eyefi-configコマンドの場合本体USB-SD Card アダプタ経由でも内蔵 SD

card slotに直に接続しても利用できました。

-ネットワークの検索

$ eyefi-config -s

located EyeFi card at: '/media/Eye-Fi'

Scanned wireless networks:

security: WEP, strength: 32 essid: 'FLETS-SPOT'

security: none, strength: 32 essid: 'wifine'

security: WEP, strength: 32 essid: 'docomo'

security: WPA, strength: 19 essid: '0024A5E1864E'

security: WPA2, strength: 11 essid: 'WARPSTAR-DA22F7-G'

`-s' オプションで実行することで周辺の無線 LAN ネットワークを検索します。ネットワーク

の確認や設定の参考に出来るでしょう。

-アクセスポイント登録

$ eyefi-config -a WARPSTAR-xxxxxx-G -p 'PASSPHRASE'

located EyeFi card at: '/media/Eye-Fi'

trying to connect to network: 'WARPSTAR-xxxxxx-G'

with passphrase: 'PASSPHRASE'

interpreting passphrase as ASCII WPA key (32 bytes)

Testing connecion to 'WARPSTAR-xxxxxx-G' (2): verifying network key.....

Testing connecion to 'WARPSTAR-xxxxxx-G' (3): waiting for DHCP.

Testing connecion to 'WARPSTAR-xxxxxx-G' (4): testing connection to Eye-Fi server......

Testing connecion to 'WARPSTAR-xxxxxx-G' (5): success

Page 5: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

Succeeded connecting to: 'WARPSTAR-xxxxxx-G'

interpreting passphrase as ASCII WPA key (32 bytes)

`-a ESSID' で Eye-fi で利用するアクセスポイントの設定を追加できます。`-p' オプション

でアクセスポイントのパスフレーズも登録できます。コマンド実行時に接続テストを行いま

す。アクセスポイントエリア外で設定を行う場合は接続テストに失敗して登録できないの

で更に`—force'オプションも付けてテストをスキップして登録しましょう。

-登録済みアクセスポイントの削除

$ eyefi-config -r WARPSTAR-xxxxxx-G

located EyeFi card at: '/media/Eye-Fi'

`-r ESSID' で指定したアクセスポイントの設定を削除できます。Eye-fiには 32 個迄のア

クセスポイントが設定できるようです。32 個あれば通常の利用には困らなさそうです。

-接続テスト

$ eyefi-config -t WARPSTAR-xxxxxx-G

`-t ESSID'で Eye-fiへ設定済みの設定への接続確認が出来ます。

-転送モードの設定

$ eyefi-config --transfer-mode

located EyeFi card at: '/media/Eye-Fi'

transfer mode is: AUTO

`--transfer-mode'で転送モードを確認できます。`AUTO'の場合は全ての画像を PC, オ

ンラインサービスに転送します。

`—transfer-mode=SELSHARE' と設定するとカメラでプロテクトをかけた写真のみオン

ラインサービスに転送します。PCには全ての画像が転送されます。

`—transfer-mode=SELUPLOAD'と設定するとカメラでプロテクトをかけた写真のみ PC

とオンラインサービスに転送します。

この設定はわかりにくいですね。

-無線 LAN 状態の確認、設定

$ eyefi-config --wifi-radio

located EyeFi card at: '/media/Eye-Fi'

wifi radio status: enabled

` --wifi-radio 'でEye-fi Cardの無線の状態が確認できます。`--wifi-radio=disabled'で

無線 LAN機能の無効化、`--wifi-radio=enabled'で無効化が出来ます。設定を無効化す

ると、Eye-fi Cardの再起動(`-b')では無効のままですが、Eye-Fi Cardを PCから取り外

Page 6: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

して再度取り付けると有効になるようです。

-エンドレスモードの設定

$ eyefi-config --endless

located EyeFi card at: '/media/Eye-Fi'

endless: ENABLED, triggers at 80% full

`--endless 'でエンドレスモードの確認が出来ます。`--endless=80'で Eye-fi 容量が 80%

を超えると転送済み画像を削除します。転送されていない画像は削除されないので、利

用可能な無線 LAN ネットワークが無かったり、転送が追いつかない場合はDiskFullに

なってしまいます。`--endless=enable'でエンドレスモードを有効に、`--endless=disable'

でエンドレスモードを無効にします。なお、エンドレスモード非対応のカードに対して設定を

試みたところどう設定しても`endless: DISABLED, triggers at 0% full'となりました。

ハードウェアかファームウェアに制限があるようです。

無線の設定は enabled/disabled でエンドレスモードの設定は enable/disable なので間

違えやすいです。

-card 再起動

$ eyefi-config -b

rebooting card...located EyeFi card at: '/media/Eye-Fi'

done

`-b'で Eye-fi Cardの再起動が出来ます。再起動するのは無線 LAN機能だけで再起動

中もSD Card としての機能は利用できるようです。

-debug level 設定

$ ./eyefi-config -d 5

set debug level to: 5

after arguments1 essid: '(null)' passwd: '(null)'

$ ./eyefi-config -d 1

set debug level to: 1

数字が大きいほどログが詳細に、大きくなります。通常は 1でいいでしょう。

-log 表示

$ eyefi-config -l

located EyeFi card at: '/media/Eye-Fi'

fetching EyeFi card log part 1/4...done

fetching EyeFi card log part 2/4...done

Page 7: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

fetching EyeFi card log part 3/4...done

fetching EyeFi card log part 4/4...done

...

[01:10] Done scanning for new media (detected 2131 MB in all media). Uploads pending.

[01:10] Done scanning for all photos. Uploads pending.

[01:10] None of the 0 configured wireless networks detected among the 0 within range.

[01:11] Starting scan of media directories...

[01:12] Done scanning for new media (detected 2131 MB in all media). Uploads pending.

[01:12] Done scanning for all photos. Uploads pending.

[01:12] None of the 0 configured wireless networks detected among the 0 within range.

[01:12] ---------------- SCAN-P -----------------------

[01:14] Scan complete

[00:00] Eye-Fi firmware 4.2172 Jan 31 2011 13:22:01 started (1), hardware revision 1, 7806/32 MB, 00-18-56-41-a6-92

[00:01] Marvell 8786 firmware version 12.55.6.p106 running, xtal offset 0/9.

[00:06] Card is in online and desktop (0xc233) transfer mode (timestamp 1299259670), geo-tagging is enabled, hotspots are enabled.

`-l' で eye-fi Card のログが確認できます。どういった動きをしているかが解るので問題解

決の助けになるでしょう。ログが大きくなるとSegmentation faultしてしまうようです。

-ファームウェアの確認

$ eyefi-config -f

located EyeFi card at: '/media/Eye-Fi'

card firmware (len: 27): '4.5022 Apr 18 2011 18:07:47'

`-f'でファームウェアバージョン情報が確認できます。ファームウェアのアップデートは残念

ながらできないようです。

-Eye-fi cardのユニークキー表示

$ eyefi-config -k

located EyeFi card at: '/media/Eye-Fi'

card key (len: 32): 'ffffffffffffffffffffffffffffffff'

Page 8: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

`-k' で 32 桁の英数字からなるユニークキーが表示されます。

-mac address の表示

$ eyefi-config -m

located EyeFi card at: '/media/Eye-Fi'

card mac address: 00:18:56:xx:xx:xx

Eye-fi Card のmac address が表示されます。

-Tips

コマンドを実行してもおかしな値が帰ってきたり、`never saw card seq response' という

ようなメッセージが表示されたり`Segmentation fault' してしまったりしてうまく操作でき

ないことがあります。これは、写真を沢山転送したりしてログが大量になると起こるようで

す。Eye-fi Card の再起動では治らないようなので抜き差しをしてから再度試してくださ

い。

速度が遅かったり、PCで利用できている無線 LANのアクセスポイントが見つからない場

合はアクセスポイントの近くで試してみてください。PCなどに比べると電波強度が弱いの

で距離に敏感です。

Doumeki を利用して同時に複数ストレージサービスに転送

Eye-fiはストレージサービスへのアップロードまで自動的にやってくれるので便利なので

すが、自動でアップロードするストレージサービスは一度に一つしか選択できません。

そこでDoumeki というアップローダブリッジを使い複数の Storage Serverにアップする

方法を説明します。Doumekiを起動したサーバのローカルにも保存できるので

Windows, Mac でアプリケーションを立ち上げなくともローカルに保存することも出来ま

す。

Page 9: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

導入

Githubから sourceを貰ってきます。( https://github.com/hirose31/doumeki )

$ git clone https://github.com/hirose31/doumeki.git

$ cd doumeki

$ sudo cpan -i .

$ ./bin/doumeki-server.pl

本来 cpan -iで関連モジュールも導入されるはずですが、うまく導入できなかったので

cpan -i moduleという感じで必要なモジュールを導入して行きました。

Flickr に写真をアップロードするために API keyと secret を入手します。

http://flickr.com/services/api/key.gne にアクセスします。[Get Another Key]を押します

自分用なので[APPLY FOR A NON-COMMERCIAL KEY]を選択します。[What's the

name of your app?]にアプリケーション名を、[What are you building?]に利用目的を、

規約関連のチェックボックスにチェックを入れて[SUBMIT]ボタンを押します。私はアプリ

ケーション名に`Doumeki'、利用目的には`photo upload'と書きました。表示された

Key、Secret をメモします。

次に auth_token を入手します。先ず、libflickr-upload-perlというパッケージを導入しま

す。

$ sudo apt-get install Libflickr-upload-perl

Page 10: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

flickr_upload コマンドをさっき入手したAPI keyと secretを指定して実行します。すると

以下のような表示になります。

$ flickr_upload -auth -key "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -secret "xxxxxxxxxxxxxxxx"

1. Enter the following URL into your browser

http://www.flickr.com/services/auth/?api_sig=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&frob=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&perms=write&api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2. Follow the instructions on the web page

3. Hit <Enter> when finished.

このURLをブラウザに入力してエンターキーを押します。ブラウザの画面上で[OK I’ll

allow]を押します。その後、以下の様に auth_tokenが発行されるのでこれもメモします。

Your authentication token for this application is

xxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx

設定ファイをを作成します。config.yamlを編集します。以下設定例です。

server:

port: 10808 # Doumeki 待ち受けポート番号

host: myserver # Doumeki サーバ名

receiver:

GR2:

user: user #Doumeki 待受ユーザ名

password: xxxxxxxxxx #Doumeki認証パスワード

prefix_shootdate: 1

store:

Local:

base_dir: /home/mk/photos #ローカルに写真を保存するときのパス

Page 11: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

Flickr: #以下は上でで取得した情報

key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

secret: xxxxxxxxxxxxxxxx

auth_token: xxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx

tags: #写真アプロード時のタグ

- doumeki

- eye-fi

is_public: 0 #一般公開設定:0は非公開/1は公開

is_friend: 0 #friend 公開設定:0は非公開/1は公開

is_family: 0 #family 公開設定:0は非公開/1は公開

テンポラリ用のディレクトリを作成します。パーミッションは doumeki 実行ユーザがファイ

ルを書き込めるようにしておくこと。

$ sudo mkdir /var/tmp/doumeki

以下のようにしてDoumeki サーバを起動してみましょう。

$ ./bin/doumeki-server.pl --configfile ./config.yaml

起動した状態でEye-fi CenterからDoumekiへのアップロードの設定を行います。この

設定は残念ながらWindows、MacのEye-fiアプリケーションでしか出来なさそうです。

[Eye-fi Cardの設定]から[写真]、[オンラインサービス]、[新しいオンラインサービスを追

加]を選びます。[オンラインサービスを選択]画面から[オンラインアルバム]カテゴリから

[Gallery2]を選択します。ユーザ名、パスワード、URLに config.yamlに設定した内容を記

述して[送信先に Gallery2 を設定する]ボタンを押します。

この状態で Eye-fi Cardで写真を撮影して動作を確認します。うまく行けばDoumeki

サーバのローカルと Flickrに写真が転送されるはずです。

Doumekiの類似サービス Pixelpipe

実はDoumekiのように同時に複数のストレージサービスへ写真を転送するサービスが

存在します。Pixelpipeというサービスです。( http://pixelpipe.com/ )このサービスを使う

と転送先に複数の(100以上)ストレージサービスが指定できます。

Page 12: Linux で Eye-Fi Card を設定・各種ストレージサービ スに転送する

設定はEye-fiの以下の FAQページに書かれています。

- Eye-Fiから Pixelpipeを利用するにはどうすれば良いですか? http://www.eyefi.co.jp/support/faq/eye-fi_pixelpipe/

こちらのほうがサーバが必要ない分お手軽に設定できます。転送はDoumekiと同じよう

に Gallery2にて転送します。

問題点

 デジカメで撮影した写真は長辺 4672x3104 ピクセルなのですが、

Doumeki/Pixelpipeを経由してストレージサービスへアップロードすると長辺 1600 ピク

セルに縮小されてしまうようです。Eye-fi Centerへはオリジナルサイズでアップロードさ

れていて手動で Flickrにアップロードするとオリジナルサイズでアップロードできます。恐

らくEye-fi CenterからGallery2を経由するときに縮小処理が実行されているように思

えます。この問題が解決しない場合、Eye-fi Center を使わずに手動でアップロードするし

かなさそうです。

おわりに

 ということで、Linux 環境でも Eye-fi Cardが便利に利用できるようになってきました。

作者の blogなどを見ていても Eye- fi に機能が追加されたら直ぐに対応したりと開発も

活発なようでこれからも期待できます。気になった方は是非試してみてください。