NTTソフトウェア ネットワークサービス事業部 主任代理
国武功一
ネットワーク技術研究所(RINT) ネットワーク技術部 マネージャー
前回説明されたような方法で、WebDAVサーバを構築しファイル共有が実現できると、自宅や会社、学校など場所を選ばず、いつでも必要なファイルをサーバとやりとりすることができる。だが、今ではモバイル機器が発達し、また無線LANによるアクセスポイントがさまざまな公共施設や商業施設に展開されているので、そういった外出先でもWebDAVを使用したいという要求があるだろう。前述の通り、WebDAVはファイル共有の仕組みとしては他の同種のシステムよりも汎用的なので、現在OSレベルでWebDAVが実装されていない、WindowsCE.NETマシンとZaurus(SL-C700)でWebDAVクライアントを導入してみよう。
WindowsCE.NET用WebDAVクライアント - CEDEV
CEDEVは、WindowsCE.NET用WebDAVクライアントの詩?Aルファ版である。WebDAVの仕様のうち、ファイルのアップロード・ダウンロード・一覧表示と最小限のWebDAVクライアントとしての機能を実装している。動作するOSはWindowsCE.NET 4.1で、IPv6にも対応している。インストールは簡単で、cedev-alpha.zip※をダウンロードして展開し、中のCEDEV.exeをActiveSync等でWindowsCE.NETマシンに転送すればよい。そのままWindowsCE.NETマシンで起動すれば、CEDEVが使用できる。
※本ソフトウェアはアルファ版のため、動作の保証はない。各自自己責任で作業を行なうこと。
CEDEVの操作は直感的で、Windowsのネットワークプレイスに似ている(図1)。フォルダアイコンをダブルクリックするとそのディレクトリに移動し、ファイルをダブルクリックするとダウンロードする。また、メニューからファイルのアップロードを行うこともできる。
図1
現状のCEDEVはアルファ版であり、WebDAVの機能を限定的に実現したのみでファイルの削除やコピーなどには対応していないが、これでも十分に実用になることがわかるだろう。
UNIX用のWebDAVクライアント - cadaverをZaurusで使う
Zaurus(SL-C700)はOSにLinuxを採用しており、オープンソースの恩恵が受けられる。そこで、UNIX用のコマンドライン型WebDAVクライアントであるcadaverと、WebDAVサーバをローカルディスクとしてマウントさせるファイルシステムドライバdavfs2によって、WebDAVクライアント環境を構築してみよう。ここでは、その方法について簡単に解説する。なお本文中におけるコンパイルに関しては、すでにクロスコンパイル環境が整備されている ことを前提に記述してある。なお、クロスコンパイル環境の整備に関しては http://more.sbc.co.jp/sl_j/sl_top.asp のLinux関連開発ツール一覧等を参照されたい。
1. ZaurusのIPv6対応
残念ながら、ZaurusはそのままではIPv6に対応していないため、先だってカーネルの再構築が必要となる。この作業の詳細についてはhttp://www.linux-ipv6.org/~kunitake/zaurus/を参照していただきたい。なお、上記URLで指定されているオプション以外にもCoda file system supportを有効にする必要がある(図2)。これは後述するdavfs2がこの機能を必要とするためである。

図2
1. cadaverのインストール
cadaverは、以下の URL から入手可能となっている。
cadaver - command-line WebDAV client
http://www.webdav.org/cadaver/
また、Zaurus(SL-C700)用パッケージは
http://www.linux-ipv6.org/~kunitake/zaurus/feed/
にある。ここから cadaver, libxml2 をインストールする。もちろん、下記の手順により、自分でコンパイルすることも可能である。
なお、IPv6 には 0.20.5 から対応している。
$ tar zxvf cadaver-0.21.0.tar.gz $ cd cadaver-0.21.0 $ ./configure --prefix=/opt/QtPalmtop --with-ssl --host=arm-linux \ --with-included-neon --enable-netrc $ make |
こうしてできた cadaver を Zaurus の /home/QtPalmtop/bin/ に置いて やればよい。なおコンパイルおよび実行には、別途 openssl 、libxml2 のラ イブラリが必要となる。
cedaverは、基本的には ftp のクライアントや smbclient とよく似た操作方法で、 WebDAVサーバにアクセスすることになる。URL やポート番号などの指定は、 従来の記述を踏襲している。
起動例:
$ cadaver http://www.example.com/dav/ $ cadaver http://www.example.com:8022/dav/ |
2. WEB-DAV Linux File System(davfs2)のインストール
Davfs2はLinux用のファイルシステムドライバであり、WebDAVサーバ をローカルディスクであるかのようにマウントすることが可能となる 前述した通り、Davfs はCoda file system を使用するため、この機能 がカーネルで有効になっている必要がある。これも
http://www.linux-ipv6.org/~kunitake/zaurus/feed/
にパッケージがあるので、これを利用するのも手だろう。自分でコンパイルする場合には
http://dav.sourceforge.net/
からソースコードを取得できる。なお、IPv6に対応しているのはバージョンが0.2.1以降のものである。
$ tar zxvf davfs2-0.2.1.tar.gz $ cd davfs2-0.2.1 $ ./configure --with-libxml2 \ --with-kernel-src=/home/hoge/zaurus/kernel \ --with-ssl |
なおdavfs2もコンパイルおよび実行にopensslおよび libxml2 のライ ブラリが必要となる。また、--with-kernel-src オプションで、Zaurusで動かしているカーネルのソースのディレクトリを指定する必要があるので、自分の環境にあわせて、読みかえてほしい。
davfs2で実際に使用するコマンドはmount.davfsであり、そのコマンドオプションは以下のとおりである。
$ tar zxvf davfs2-0.2.1.tar.gz $ cd davfs2-0.2.1 $ ./configure --with-libxml2 \ --with-kernel-src=/home/hoge/zaurus/kernel \ --with-ssl |
通常は
$ su # mkdir /mnt/dav # mount.davfs http://www.example.com/dav/ /mnt/dav |
などとしてマウントすることになるだろう。なおマウントポイントをSD(/mnt/card/Documkents)、CF(/mnt/cf/Documents)、本体メモリ(/home/zaurus) 以下にすると、標準のファイルマネージャから、WebDAV のリソースへアク セスできる(図3、図4)

図3

図4
※Davfsに関する注意
Zaurusでは、マウントポイントの情報が記述されている/etc/mtabは、通常/proc/mountsへのリンクとなっており、このファイル対してエントリを追加、削除する davfs2 を使用すると、ファイルマネージャから選択できる「 -本体メモリ -CFカード-SDカード」といった項目が消えてしまうことがある(通常は図5のようなエントリが存在する)。もしこのような現象が出た場合には、
$ su
# rm /etc/mstab
# ln -sf /proc/mounts /etc/mstab
とし、reboot を掛けてやると元にもどる。

図5
この記事のトラックバックURL
http://www.ipv6style.jp/trackback/306





