ここはチラシの裏じゃ

はてなダイアリーから移行します。

{ガジェット}RaspberryPi2にsubsonicを導入して、windowsの音楽ファイルをどこでも聴けるようにしよう

ザ・備忘録!
Raspbian導入済みからスタート。
(RPi2のアフィでも貼ってやれと思ったけど、amazon高すぎない?
つーかRPi3発売されてるし、そっち買った方がいいよ。公式で£30くらい。投稿時点で約4500円+送料。)
https://www.raspberrypi.org/products/raspberry-pi-3-model-b/


やること一覧
・ネットワーク設定
subsonic導入
ffmpeg導入(トランスコード用)
windowsの共有ファイルをマウント

ネットワーク設定

Raspbianのネットワーク設定は、ここにある。
/etc/network/interfaces


基本敵な設定としては、以下の通り。

iface eth0 inet static
標準ではdhcpになっているところをstatic(固定)へ変更。
address 192.168.xx.xx //RPiに割り当てるIPアドレス
netmask 255.255.255.0
gateway 192.168.xx.1 //ルータのIPアドレス

設定が終わったら再起動(sudo reboot)または、NICの再起動。

sudo ifdown eth0
sudo ifup eth0

無線LANはwpaの設定とか必要だしそもそもUSBドングル繋ぐ?みたいなとこがあるので使いません。

subsonic導入、ffpmeg導入

このブログ読めば完璧に分かる。
http://yamada.daiji.ro/blog/?p=378


※/etc/default/subsonicを編集する時に
・--port=80をつけることでhttpでそのまま繋がるようにした。
・--max-memory=300にしてみた。


ffmpegのmakeでlibx264がエラー出たので、そのオプションだけ外した。どうせ動画見ないし。

./configure --enable-gpl --enable-libmp3lame --disable-yasm

windowsの共有ファイルをマウント

上のブログではsamba-clientを使ってるけど、僕はコマンドを起動時に実行させることで対応。
まずはテスト。

sudo mount -t cifs -o username=****,password=**** //192.168.xx.xx/共有フォルダ名 /mnt/置きたいフォルダ名

ここのusernameとpasswordは、windowsのユーザー名とパスワードを記入。
192.168〜のIPアドレスwindowsの共有設定を確認。


※ここで、共有フォルダ全部まとめてやろうと思ってIPアドレスだけ指定したけど、それは出来ないっぽかった。必ずフォルダを指定する。
置きたいフォルダについては、適当でいいけど5文字くらいにすると楽なのでは。


/mnt にフォルダが読み込まれてるのを確認したら、/etc/rc.localに上記コマンドからsudoを抜いたものを記述。
自分の環境ではなぜかIPアドレスをPrintするのが最初から入ってたので、こうなった。

_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

mount -t cifs -o username=****,password=**** //192.168.xx.xx/CHINPO /mnt/CHINPO
exit 0


マウントしてもファイル書き込めないじゃん?!って焦ったけど、パーミッションがダメだった。
sudoでmountしてるから、自動的にroot用のパーミッションが振られるっぽい。
なので、mount -t cifs -o uid=1000,gid=1000,username〜〜〜とすることで対策。
uidの調べ方は、ターミナルでidコマンドを打てばOK


設定が終わったらRPi再起動して、subsonicにログインして設定して、おわり。


あと、外部に公開するからufw使ったほうがいいと思い導入。死ぬほど簡単だからすぐ設定できた。
基本DENYで、22をローカルのみ、80をanywhereにしたくらい。
それ以上の対策は何から調べるべきか分からないので、何か簡単なやつを見つけることができたら使ってみたい。

追記

Windowsがコケた時に挙動が怪しくなる。
この辺が参考になりそう。
http://shizm.hatenablog.com/entry/20111110/1320922398
シェルスクリプトの使い方はこの辺?
http://qiita.com/zayarwinttun/items/0dae4cb66d8f4bd2a337