higuchi.com blog

The means justifies the ends

リサイクル [OpenDarwin x86でiTunesジュークボックス]

古いPCにMac OSと互換性の高いUNIXをインストールして、無料ソフトウェアだけでMac/Windows対応のiTunesの音楽ライブラリを保存するファイルサーバーとして、また、ネットワーク経由で他のiTunesに音楽を配信するiTunes共有ストリーミングサーバーとして使うというお話。テクニカルに言うと、OpenDarwin x86をNFS/Sambaファイルサーバー+DAAPD(mt-daapd)サーバーにする手順のご説明。
いや、OpenDarwin x86を使ってみたかっただけです。手段のために目的は選びません。 音楽CDをMP3/AACファイルに変換したり、iPodの「母艦」として音楽ファイルをSyncするのにはAppleが無料で配っているiTunesというソフトを使うわけですが、Mac miniを買ってからこっち、Windows版iTunesからMac版iTunesに乗り換えました。
Mac miniは一番安いやつで、ハードディスクの容量が小さくて手持ちの音楽ライブラリが入りきらないため、外にファイルサーバーをつけることにしました。
せっかくなので、ファイルサーバー側に、iTunes同士で音楽を共有してストリーミングするときのプロトコルであるDAAPの仕組みもインストールします。こうしておくと、ファイルを共有せずに他のiTunesからファイルサーバー上の音楽ライブラリを閲覧して再生することができます。ネット上の映像配信用にテレビとオーディオセットに小さいWindows PCがつないであるのですが、これのiTunesをジュークボックスにするのがゴール。

最初はLinux(Fedora Core)をPCにインストールして、それをMacのファイルサーバーにしてみました。
LinuxをWindowsのファイルサーバーにする場合は、Linux側にWindowsのファイル共有プロトコルをしゃべらせるSambaをインストールするわけですが、Mac OSは根っこは本物のUNIXなので、UNIXのもともとのネットワークファイル共有の仕組みであるNFSでダイレクトにつながります。
昔はUNIXでファイルの中身やファイル名などに日本語を使うときの文字コードはEUCと相場が決まっていた(そういえば、NEWS OSはShift JISだったな)のですが、モダンなMac OSではUnicode(UTF-8)を使っているので、サーバー側もそれに合わせて設定。
試しに使ってみていると、おかしな挙動に気がつきました。もともとWindowsからLinuxに保存した音楽ファイルの曲名やアーティスト名をMac側から編集したとき、つまりファイルを書き換えたときに、ファイルによって同じ名前に見えるファイルが2つできてしまうのです。どうやら、ファイル名にひらがなやカタカナ、それも濁点や半濁点がついたファイルだけおかしなことになる様子。さらに調べてみると、2つできたファイルは、Mac OS側から見ると同じ名前なのですが、Linuxの上で見ると濁点や半濁点が独立した1文字として書かれています。例えば、元は「ムーンライダーズ.mp3」だったファイルをMacから保存し直すと、もとのファイルに上書きせずに、元のファイルは残ったままで新しく「ムーンライタ゛ース゛.mp3」ができてしまうのです。
調べてみると、これはMac OSがその他の普通のUTF-8とちょっと違う方言(俗称 UTF-8-MAC)を使っているために起こっていることでした。Mac OSでは、文字の「本体」と濁点や半濁点などをそれぞれ別の文字として保存して、表示するときに合成するというお約束に従っているそうで。
こういう場合、Linuxに昔の(UNIXでない)Mac OS由来のファイル共有プロトコルであるAFP(AppleTalk File Protocol)をしゃべらせる、いわばAppleTalk版のSambaみたいなnetatalkを入れてしのぐというのが常道なんでしょうが、せっかくUNIX(と、その仲間)同士なのにネイティブなプロトコルでつなげないのはどうも気持ちが悪い。
Mac OS Xと同じ文字コードを使う無料のOSはないものかと見回してみると、ありました。
Mac OS Xの根っこの部分、つまりMac OS XからかっこいいGUIとグラフィックエンジンを外した基本のUNIX部分であるDarwinのそのまたオープンソース版、OpenDarwin。ありがたいことに、Macintoshの上で動くバージョンだけではなく、普通のIntel入ってるPCで動くバージョンも作られています。

そんなわけで、前置きが長くなりましたが、普通の古いPCにOpenDarwinをインストール、NFS共有したMacのiTunesのファイル置き場にして、mt-daapdでほかのiTunesに音楽を流す環境を作るまでの手順。
OpenDarwinでNFSがすんなり起動しなかったり、mt-daapdに奇妙なバグがあったり、ちょっと手こずった記録を『OpenDarwinでiTunes Mac/Win用サーバーを作る』にまとめてあります。
ご興味がある方は、ぜひどうぞ。

コメント

まだコメントはありません

コメントを書く

関連するかもしれない記事

Raspberry Pi と外付けハードディスクで Time Capsule 互換機を作る

Raspberry Pi と外付けハードディスクで Time Capsule 互換機を作る

しばらく使ってなかった Raspberry Pi に、これまた使ってなかった USB 接続のハードディスクドライブを...

この記事を読む »

Lotus 1-2-3

1,980円 [ロータス アプローチ]

アプローチ入りちょっと旧聞になりますが、ソースネクストが10月31日からLotus 1-2-3を1,980円で売り出...

この記事を読む »

s4ve.as の超シンプルな UI

ログイン不要の気持ちいいファイル転送サービス [s4ve.as]

元ナップスターの Scott Barrow などが設立した Media Hog の新しいファイル転送サービス s4ve.as (sav...

この記事を読む »

Chromiumのダッシュボード

がんばっていただきたい [Chromium OS をつついてみた]

ダッシュボード(仮UI)はWebアプリのブックマーク集連休前に Publickey の「[速報]グーグルが「Chrom...

この記事を読む »

Get Postbox

電子メールクライアントのまっとうな進化形 [Postbox Public Beta]

2010/3/17 追記:Postboxのライセンスを10ドル割引で買えるクーポン(こちら)、できました。ご購入の際...

この記事を読む »

請求書

常時接続のツケ [289,564円]

中島さんのLife is beautifulで、携帯のパケット使い放題プランの普通のユーザーが、月々どのぐらいのパ...

この記事を読む »

実験中 [Nucleus の記事を Hyper Estraier に登録する方法]

ちょっと思うところがあって、このブログの記事を全文検索エンジンである Hyper Estraier のインデック...

この記事を読む »

20091019-wired1710.jpg

140字しか要らなかったんだが [将来、孫に言いそうなことベスト10]

今月号の紙のほうの Wired に載っていた "10 Best Things We'll Say to Our Grandkids" (将来、孫に言...

この記事を読む »

アップデート [Nucleus 日本語ランゲージファイル]

Nucleusの日本語ランゲージファイルをアップデートしました。ご指摘をいただいていた誤訳や意味の分かり...

この記事を読む »

ネットをめぐる針小棒大 [アダルト接続1万回]

ネットをめぐる針小棒大 [アダルト接続1万回]

こんなニュースが流れてきました。 アダルト接続1万回超の男性、懲戒処分に 共同通信からの...

この記事を読む »