USBメモリをRaspberryPiに挿して、中のmp3をiPhone上で再生する
日経Linuxに載っていたDLNAサーバ化が便利そうだったのでやってみました。
実現にあたり、
1)外付けで容量を増やしたい
2)可能な限りゴロゴロしながら作業したい
ということで、その辺に転がっていたUSBメモリ(1GB、Windows機で使用済み)で試しに挑戦。寒いのでこちらのアプリをiPhoneに入れて布団でゴロゴロ作業してました。
Mobile SSH client | Serverauditor
作業効率を求める場合は普通に物理的なキーボードを使った方が早いですが、このアプリ上でもctrlやEsc、Tabは使えるので、慣れたコマンドを入れたりviで一行だけ書き換えて再起動するといった作業だけならこれだけでも十分できました。
以下、作業内容です。
1. minidlnaインストール
apt-get install minidlnaでおしまい。
これだけで同一LAN上のマシンからRaspberryPi見えます。
2. minidlnaのデータ置き場にディレクトリ作成&テストデータ投入
デフォルトの/var/lib/minidlna以下に、piなど一般ユーザ所有で権限755のディレクトリ作ります。
権限755でも所有者rootだと、クライアントから見えない→再生できない場合があるので、一般ユーザにchownしておくのが良いです。
ディレクトリは後でUSBメモリをマウントする用に一つと、テストとしてmusicとかpictureとか作ってみたり。(Windows Media PlayerとかでRaspberryPi覗くと、WMP等クライアントソフトが勝手に該当ディレクトリ内を検索して再生可能なデータをまとめてきてくれるのですが、RaspberryPi内のデータを整理するという観点では/var/lib/minidlna以下に適宜ディレクトリを作っておいた方が便利だと思います)
テスト用のデータはWindows機から、たまたま入っていたWinSCP経由でRaspberryPiに飛ばしました。
データを仮置きした後は、念のためデータベースを手動で更新しておくと、曲が無いと慌てずにすみそうです。
minidlna -Rでデータベース再構築らしいのですが、ディレクトリを作ったりファイルを移動させたりした時はservice minidlna force-reloadの方が効きました。
Ace PlayerでDLNAサーバー(MiniDLNA)上のフォルダが更新されないときのメモ : 或る阿呆の記
3. iPhoneにクライアント用アプリをダウンロード
日経Linuxで紹介されていたMedia Link Player Liteはmp3の再生こそできるものの、バックグラウンド再生やプレイリスト作成はできないので、こちらに変えました。
ディレクトリ名の日本語表記には対応していませんが、mp3のプロパティの日本語表記には対応しています。RaspberryPi上のファイル名は半角英数にして、プロパティは日本語の曲名そのままにしておく感じになりそう。
4. RaspberryPiにUSBメモリをマウント
後々容量の大きい、外部電源のあるディスクでやるとして、今回はボロいUSBメモリで。
ざくっと挿してfdisk -lで/devのどこか調べます。今回は/dev/sda1だった。
これを/var/lib/minidlna以下の任意ディレクトリにマウントさせたいのですが、前述の
「一般ユーザが所有していて読み書き権限があるディレクトリじゃないとクライアントからデータが見えない問題」
があるので、ちょっと工夫が必要です。具体的には-oオプションでuid=1000,gid=1000,rwを指定。
mount -o uid=1000,gid=1000,rw /dev/sda1 /var/lib/minidlna/マウントしたいディレクトリ
念のためDB再構築してからiPhoneで見てみると、USBにしか入れていないはずの曲が見えて再生できました。
/etc/fstabにrw,userで書いておくのも便利ですが、その場合再起動後はrootでマウントされているので、一旦umountしてから一般ユーザでマウントするのが良さそうです。
本当はCDのリッピングもRaspberryPiでやりたかったのですが、流石にオーバーワークかと思って断念しました。。
レンタルの方が安いですが、iTunesで買ってすぐ聴ける楽さを知ってしまうと、リッピングのためにPCを起動するのが手間で手間で。
リッピング→(適宜全角文字を半角にリネーム→)WinSCPでRaspberryPiに転送、という流れでやってみようと思います。iPhone上のデータはdropboxのフォルダからWinSCPかな。