12月 292012
 

前回の「SkyDrive を FreeBSD に mount して使う。」のエントリでは SMEStorage 経由で SMEStorage 提供の smestorage コマンド (perl スクリプト) を利用して KDE4 のファイルマネージャである dolphin から SkyDrive を FreeBSD から見る。ということろまででした。

今回はその続編になります。それにしても fusefs ってのはなんか面白いというか不思議なファイルシステムですねぇ。イマイチ解りませんが・・f(^^;;。 /usr/ports/sysutils/ の下には fusefs-* というのがたくさんあるんですね。

で、今回は、まぁ、海外のとある会社の製品というかサービスについて書くことになってしまうのですが SMEStorage を GUI で利用します。でもって、その上で SkyDrive を利用してみます。

まず、ソースコードですが、前回ダウンロードしてきた rpm を展開すると usr/share/sme_install_pack/ というディレクトリの中にドドドと入っていたのでこれを make して利用してみます。通常であれば、ベンダとかサードパーティから提供されるコマンドやアプリケーションはバイナリ形式のものが多いのですが SMEStorage はソースコードを提供してくれています。嬉しいですね。早速試してみましょう。

今回は /usr/local/SME/ と、いうディレクトレにインストールすることにしてみます。ソースコードは /usr/local/src/SME/ に展開してコンパイルしています。

# mkdir /usr/local/SME/
# cp -pr usr/share/applications /usr/local/SME/
# cp -pr usr/share/pixmaps /usr/local/SME/
# cp -pr usr/share/smestorageclient  /usr/local/SME/
# cp usr/local/bin/smestorage /usr/local/bin/
#
$ mkdir /usr/local/src/SME
$ cp usr/share/sme_install_pack/* /usr/local/src/SME/
$ cd /usr/local/src/SME
$ unzip SMEExplorer.zip
$ unzip SMEStorageClient.zip
$ unzip SMESyncCenter.zip
$ rm *.zip

 
Fuse-0.09.zip と XML-Simple-2.18.zip は ports からインストールされていると思うので今回は必要ありません。
上記 unzip したファイルは QT ベースのソースコードになります。KDE4 がインストールされていて QT4 がフルセットインストールされている環境であれば簡単にコンパイルが通ります。 QT4 がインストールされていない人はもしかしたらコンパイルのために QT4 一式をインストールする必要があるかもしれません。

QT4 がインストールされているものとして、次のステップに行きます;-)。ソースコードは Linux のためにコードにコマンドパスなどがベタ書きしてあるのでそれを変更してコンパイルします。

$ cd /usr/local/src/SME/
$ foreach i ( */*.h )
foreach? sed s#usr/share#usr/local/SME# $i > FILE
foreach? /bin/mv FILE $i
foreach? end
$ foreach i ( */*.cpp )
foreach? sed s#usr/share#usr/local/SME# $i > FILE
foreach? /bin/mv FILE $i
foreach? end

 
上記は tcsh で foreach を利用して Linux 用のパスである usr/share を今回インストールする usr/local/SME に書き換えています。 tcsh でない人は別のコマンドを利用して一括変換してください。

続いてコンパイルします。ソースコードは QT4 ベースなので make には qmake-qt4 を利用します。

$ cd /usr/local/src/SME/SMEExplorer/
$ qmake-qt4 ; make
# cp smestorageexplorer /usr/local/bin/
$ cd ../SMEStorageClient
$ qmake-qt4 ; make
# cp SMEStorageClient /usr/local/bin/
$ cd ../SMESyncCenter
$ qmake-qt4 ; make
# cp SMESyncCenter /usr/local/bin/

 
QT4 ベースのアプリはコンパイルが楽チンですね。 qmake は そのディレクトリの .pro ファイルを参照して Makefile を生成します。あとは make すると c++ がコンパイルをガシガシしてくれて、ハイ完成。って状態にしてくれます。

これで、前回のエントリでインストールした smestorage と今回新たに三つのアプリケーションのインストールが完了しました。以下に今回インストールしたアプリケーションの説明をちょっと書いてみます。

・smestorageexplorer
これだけ小文字なのですが、ウェブブラウザでアクセスする SMEStorage のサイトをファイルマネージャみたいなヤツで閲覧するアプリケーションです。非常に良くできていて SkyDrive も閲覧可能です。

smestorageexplorer_1.png

・SMEStorageClient
fusefs を利用してクラウド上にある SMEStorage を自分の FreeBSD に mount_fusefs するアプリケーションです。マウント専用の GUI です。

SMEStorageClient_1.png

・SMESyncCenter
SMEStorageClient でローカルに mount_fusefs したクラウド上の情報をローカルのディスクと sync するアプリです。簡単に言うと Windows 版の SkyDrive アプリケーションと似ているでしょうか。

SMESyncCenter_1.png

さてさて。これらコマンドの使い方ですが、smestorageexplorer は単体で利用できます。このコマンドは fusefs を利用しないのでサクっと動作します。まぁ、ウェブブラウザで SkyDrive にアクセスするか、専用アプリで SMEStorage 経由で SkyDrive にアクセスするかの違いだと思います。

問題は SMEStorageClient と SMESyncCenter を組み合わせて利用する場合です。まず、 SMEStorageClient アプリケーションで SMEStorage を mount_fusefs します。今回のキャプチャの例では smestorage.com にログインして fusefs を利用して /data/SME/ にマウントします。が、これが中々うまくマウントできないんですよねぇ。以下のメッセージが出力します。

mount_fusefs: /dev/fuse0 on /data/SME: Operation not permitted
fuse: failed to mount file system: No error: 0
could not mount fuse filesystem!

 
なんでやねん? とか思うのですが、そもそも、それ以前に儀式が必要です。

# /usr/local/etc/rc.d/fusefs onestart
# sysctl vfs.usermount=1

 
/usr/local/etc/rc.d/fusefs を start するときは kldload fuse.ko してくれます。 stop するときは kldunload fuse.ko と fusefs をマウントしている場合にはそれをアンマウントしてくれます。
vfs.usermount=1 のほうはユーザランドでマウントが利用できるようになる systcl mib です。
あと、/data/SME/ ディレクトリは SMEStorageClient を実行するオーナでないとダメです。 chown で調整してあげましょう。

が、こいつらを設定してもダメなんですよねぇ・・。orz しょーがないのでコマンドラインで以下のコマンドを叩きました。あ。以下のコマンドを叩くときは上記のコマンド二つは実行済みの状態です。

$ mount_fusefs auto /data/SME allow_other
mount_fusefs: failed to exec fuse daemon: No such file or directory

 
なんかデーモンが “No such file or directory” とか言ってますが(fuse 用のデーモンは特に動作していない)上記のコマンドを叩いたあとに mount コマンドで確認してみると無事にマウントできていたりします。

この段階で SMEStorageClient を起動して [Mount] ボタンを押すと「既にマウントしているよ。」と言われます。そして、そのあと [File] メニューの [Sync Center] を押すと SMESyncCenter が起動します。「Sync するか?」と聞いてくるので [OK] を選択すると、バババと同期してくれます。おぉっ!!

あとは、自分の好きなように利用するのが良いかと思われます;-)。

と、いうことで二回に分けて書いた今回の、主に SMEStorage のお話ですが fusefs のことがまぁ、そこそこ書けたのではないかなぁ。などと一人思っていますが、それにしても奥が深いのであろうと思われます。

あ、ちなみに、 SMEStorage のソースコード一式は多分、ports の解る人が ports を作成すれば簡単に ports 化できるのではないかと思われます。関連性でどこまで QT4 が必要になるかは(僕の環境では一式入っているため)解りませんけどね;-)。

と、いうことで今年のエントリは多分これが最後になるかと思われます。皆さん良いお年をー;-)。

12月 202012
 

僕は SkyDrive の利用者なのですが、ことの発端は、Windows7 や OS X では SkyDrive がファイルマネージャから利用できるのに FreeBSD の (KDE の) ファイルマネージャでは見ることができないんかな?と、いうところから始まりました。

で、結論から先に書くと、多少問題はありますが /mnt 辺りにマウントできて、 ls とか打てば表示してくれます。でもってファイルマネージャ、例えば KDE4 の ファイルマネージャである dolphin から SkyDrive が参照することができてデスクトップにコピーとかもできるようになります。

では、その方法についてちょっと見て行きましょう;-)。

まずはじめに、僕は以前「SkyDrive をコッテリ使う。」というエントリを書きました。当時はまだ Microsoft から SkyDrive の App が出ていなかったので苦肉の策だったんですけどもね。最近は iOS や Android 用アプリ、上にも書いたデスクトップ用アプリがあるので簡単にアクセス可能になりました。

まぁ、 FreeBSD で利用するときはブラウザ経由で利用すればいーじゃん。と、いう話はあるのですが、どーせならネーテブに利用したい。ってんで、探してみるとその、上のリンク先のエントリに書いた SMEStorage ってのを利用すると mount することができることが解りました。

SMEStorage に付いてはリンク先のエントリを読んでください。で、スマートフォン用アプリが無い時代には SMEStorage を利用していたのですが、最近はすっかりとご無沙汰していたのであります。このサイトにログインすると Linux 用のクライアントが用意されているのでそれを利用してみることにしました。

SMEStorage のトップページはこちら http://storagemadeeasy.com/
その Linux 向けツールはこちら http://storagemadeeasy.com/LinuxDrive/

とりあえず CentOS 用の RPM をダウンロードして展開します。

$ rpm2cpio smestorage-3.0-16.noarch.rpm | cpio -id
$ cd usr/local/bin/
$ ls
smestorage
$ file smestorage
smestorage: a /usr/bin/perl -w script text executable

 
RPM を展開すると usr/local/bin/smestorage というのが現れます。 usr/share/ の下はとりあえず無視します。で、 smestorage というコマンドは perl のスクリプトなんですね。すげー。 Linux バイナリじゃないし。で、すかさず実行します;-)。が、perl の色々なモジュールが無いと言われるので ports からインストールしてあげます。ちょっと解らなかった ports は devel/p5-TimeDate ですかね。あとはサクっとインストールして完了です。

で、perl のモジュールが色々入ったので早速実行してみますが、あいや。 mount_fusefs ってなんだぁ? となります。 Fuse.pm をインストールした時に合わせて fusefs-kmod とか fusefs-libs がインストールされます。

fusefs ってのはファイルシステムの一種なのですが、僕は今回初めて知りました。以下の URL を参照して貰えれば一目瞭然でしょう;-)。

http://fuse.sourceforge.net/

ユーザ空間内で利用するためのファイルシステムだそうです。なんのこっちゃ?f(^^;;。

# kldload /usr/local/modules/fuse.ko
# ls -l /dev/fuse0
crw-rw----  1 root  operator    0, 118 Dec 28 22:45 /dev/fuse0

 
と、いうことで fuse.ko を kldload したらデバイスが一個生えてきました。こいつを利用して再度 smestorage を実行します。オプション無しで実行するとコマンドラインオプションが表示されます。

# ./smestorage
Usage: smestorage mountpoint user:password [providerUser:providerPassword] [--server=host] [--ao] [--DEBUG] [--ct=time]
Example:
smestorage /folder1 login1:password1 --server=eu.smestorage.com --ao --ct=30

 
第一パラメータにマウントポイントを指定します。そして login1:password1 は http://storagemadeeasy.com/ にアカウントを作成し、ログインするためのログイン名とパスワードを指定します。最初はこれだけでコマンドを実行します。

すると、あぁら不思議。と、いうか、あぁらすごい。 http://storagemadeeasy.com/ のウェブベースファイルマネージャで閲覧できる内容が /mnt に見えるようになりました。

# ./smestorage /mnt smeuser:smepasswd
# ls /mnt/
Image Thumbs/
My Quick Uploads/
My SkyDrive files (smestorage@live.jp)/
My Syncs/
My backups/
My contacts/
My iPhone Syncs/
My memos/
My voice memos/

 
SMEStorage のサービスで SkyDrive を利用していると “My SkyDrive files” というディレクトリができています。で、そこに cd して ls とか叩くと SkyDrive 上の内容が表示されるようになります。うひっ。

けど、多分純粋な SkyDrive の内容ではなく、SMEStorage がキャッシュした SkyDrive の内容だと思います。なので、更新とかしてあげないと最新の情報を SkyDrive と sync してくれないこもしれないです。まぁ、その辺りはある程度はしょーがいなですね。

そして、遅いかなー。まぁ、クラウド上のデータを ls するんだからそれなりに遅いですよね。それはまぁ、仕方のないことかな。

で、上記のコマンドオプションのみだと /mnt/ は root 権限でしか見ることができません。 smestorage コマンドのオプションに –ao ってのがあるので、このオプションを利用すると一般ユーザからでもアクセス可能になります。なので KDE4 の人は dolphin などでアクセスが可能になります。僕は LANG に UTF-8 を利用しているのですが、SkyDrive 上の日本語のフアイルも文字化けせずに利用することができます。

と、いうことで、これで SkyDrive の内容が自分の FreeBSD から直接アクセス(正確に言うと SMEStorage 経由の間接的なキャッシュ情報へのアクセス)できるようになりました。有る意味すごいですね。色々できそうな感じです;-)。

とわ言いつつ、基本的には SMEStorage のサービスというか機能に引っ張られての SkyDrive の利用なので、その点について、良いか悪いかはいまいち解りません。

今回は fusefs のお勉強がメイン。と言う感じでしょうか。あ。/mnt のアンマウントは umount /mnt で可能です。エラーが出ますが、多分アンマウントされていると思います。
それにしても smestorage コマンドが perl で書かれているので、僕はまだ中を覗いてないのですが、色々できそうですね。

 
このエントリ、続くか?;-)。

12月 182012
 

いやはや。今年の三月に購入して、その時点から「Android 4.0 対応予定です。」と言われていた MEDIAS LTE N-04D ですが、本日めでたくリリースされました。

早速、インストールしてみたので、簡単なインプレッションを書いてみたいと思います。

僕は会社のお昼休みに Andrid 4.0 が出たのを知ったので、お弁当を食べつつバージョンアップしました。NTT docomo のウェブなどには 30 分程度かかります。と、書かれていましたが、まぁ、そんな感じでしょうかね。

MEDIAS_LTE_N-04D_3_2.jpg

ダウンロードしてアップデートしてリブートしたら「さて、新しいバージョンが利用できるぞー。」とか思ったら、インストール済みのアプリのアップデートを行って、僕の場合は 137 個のアプリのアップデートを行ってこれまた時間がかかって・・。

あ、上の写真はアップデート中のヤツを iPhone5 で撮ったのですが、 99% と 100% の表示がやたらと長かったです。

で、ちゃんと使えるようになったので早速キャプチャしてみました。しかし「スクリーンキャプチャができるようになりました。」と書いてあってもその方法がどこにも書いてないので困ったものです。”取り扱い説明書アプリ” は最終更新が 2012/09 とかになっていてその方法書いてないし・・。orz。

MEDIAS_LTE_N-04D_3_1.jpg

ハードボタン押してたら撮れるようになりました。電源ボタン+音量下ボタンのちょっと長同時押しでキャプチャができるようになりました。

それにしてもスクリーンキャプチャの png の保存先がこれまた汚い。 /mnt/sdcard/Pictures/Screenshots/ に保存されます。素直に DCIM の下に保存してくれよー。と、いうのも、 Android 4.0 になって、Mac に USB で接続すると iPhoto で /DCIM/ の下のディレクトリにある写真は自動的に読み込んでくれで、 iPhoto から削除もできるようになったんですね。これは嬉しいんだけど、対応しているディレクトリは /DCIM/ だけなので・・。

と、いうことでいきなり、機能の一個についてこってり書いてしまいましたが、ここからは MEDIAS LTE N-04D + Android 4.0 の気づいた点について書いていきます。まださわりたてなのでなんとも言えない部分もあるとは思いますが・・。

1. バッテリ異様に食うね。
充電しつついじっていると充電されずにどんどんバッテリが減っていく。と、いう恐ろしい事態になっています。充電が追いつかないようです。あたたた。プロセスを色々 kill するんですが、それでもダメ。
極めつけは Android 2.3 のころにはちゃんと kill できていた全く利用していない Days と Topics アプリが、勝手に起動してくるようになってしまって kill してもまるで意味が無くなってしまった・・。orz。
あと、docomo のがあるので google のスケジュールアプリも要らないのに勝手に起動しているし。などなど、バッテリを食う要素がずいぶんと増えたような気がします。

MEDIAS LTE N-04D はバッテリ容量が小さいだけに、これは非常に痛い現象です。

2. 3G/LTE の電波が入りにくくなった?
これは個人的感想が大きいかもしれませんが、 LTE の電波はつかめなくなったような気がします。もしかしたらバッテリの消費量が多いのは LTE をつかみに行く機会が多いからなのかも。

3. 画面の動作はよくなったかも。
以前のバージョンだと画面の隅のほうにあるアプリをタップして起動しようとすると横の画面にスライドしてしまい、それがいらつく原因にもなっていたんだけど、そーいうのが無くなって、アプリがサクっと起動できるようになったような気がします。

また、キーボードでの文字入力もずいぶんとしやすくなりました。これは Android 2.3 から 4.0 へのバージョンアップによるものなのかな? その点は幸せになれました;-)。

4. メールがちゃんと動作する。
これは Android 4.0 になったからではなく、多分 docomo 謹製の CommuniCase なるメールアプリを使うようになったからでしょうかね。

Android 2.3 純正(SP-mode メールなので docomo 謹製か?)のメールアプリは写真を添付してメールを送るとひどいことになっていたのでね。マルチパートヘッダが無事に処理できるようになったということでしょうねぇ。

5. G-SHOCK との連携は OK。
まぁ、MEDIAS LTE N-04D は G-SHOCK GB-6900 と連携できないことにはお話にならないのですが、この機能は無事に動作しています;-)。

まぁ、今回は全部で五つ書いてみました。まださわりたてなので、本当にアレですが、とりあえずリリース日当日のファーストインプレッションとしてはこんな感じです。今後、他にも気がついた点が出て来たら書いてみたいと思います。

それにしても Android のスマートフォン買って二つの OS が楽しめるというのは最初から Android 4.0 が入っている端末に比べると二回楽しめるわけでして、何か得した気分になるのもまた事実なのであります。だだっ子はかわいいってか?;-P。