Raspberry pi (b+) で、DLNAサーバを作ろう!


こんにちは、インフラエンジニアの落合です。
この記事は、TECHSCORE Advent Calendar の最後の記事です。

最後の記事ですが、
年末年始にご家族に喜ばれるサーバってなにかないかなーと考えました。
ITリテラシーの激低な、私の妻にも、インフラエンジニアってスゲーっと言われそうなものユルーイもの・・・

・・・・

ってことで、Raspberry Piで、PCで撮りためた動画などをご家庭のTV(DLNA対応機種)で観れるようにしたいと思います!

DLNAサーバの構築箇所だけ記事にしようと考えてましたが、あまりにも簡単すぎるので、最初からささっとやってみようと思います。

記事を書こうとして気づいたのですが、結構みなさんされていて、似たような文献もあちこちあるんですね。^^;
そういうわけで、敢えて本記事を参考にしたいという方は以下の方が対象かとおもいます。

  • 全部CUI環境でやってしまいたい。(Raspberry PiでXを使わない)
  • 作業は全部Linuxでやるんだ!

それでは・・

Raspberry Pi b+ のインストールまで

○作業に必要なもの

  • ちゃんと動く、Raspberry Pi
    • Amazonなどで、買い揃えたら1万円ちょっとで手のひらサイズサーバが手に入るかと思います。
    • 私が購入したのは Raspberry Pi b+ です。
  • Raspberry Pi をセットアップするための作業用Linux
    • お手持ちのGentoo Linux なんかで良いと思います。
  • DHCPでIPが自動付与されるネットワークセグメント

ちなみにこんな感じの作業環境でした。左の小さい透明の箱が Raspberry Pi b+ です。
作業環境

○OSのインストール作業

Raspbianをここではインストールします。(いわゆるRaspberry Pi用Debian)

・作業用LinuxにMini SDHCカードを接続します。

上記から、わかることは、

  • /dev/sdb としてSDHCカードが認識されている。
  • 容量はおよそ32GbyteなSDHCカードである。

そんなところです。

・ダウンロードしたOSイメージを、上記のSDHCカードに書き込みます。

ダウンロード後チェックサムを確認しています。このチェックサムが正しいかどうかは、公式のチェックサム値と比べてください。

・OSイメージををダウンロードして、上記のSDHCカードに書き込みます。

"of=" で指定しているデバイスは、最初に dmesgして検出したものを間違いないように指定してくださいね。

Raspbianへのリモート接続まで

ここからがちょっとコツがいります。
(なんせこのRaspbery Piには、ディスプレイもキーボードもつながってないわけですから)

    1. 上記で作成したOSイメージ入りのSDHCカードをRaspberry Piにセットします。
    2. DHCPがとれるネットワークセグメントにRaspberry PiをLANケーブルで繋げます。
    3. 電源を入れます。
    4. (祈ります)
    5. 緑のSDHCアクセスランプが、チカチカ光って、動いてるような気配を感じます。
    6. fping などで、Raspberry Piの所在地を確認します。

(例:DHCPのレンジが、192.168.0.0/24の場合)

・リモート接続(SSH接続)
作業用Linuxから、

Raspbianの初期設定まで

以下のことを駆け足で実施してしまいましょう。

1.パッケージを最新に更新

2.作業を助けるアプリケーションのインストール(任意)

これで、vimが見やすくなり、サービス起動On/Offがやりやすくなりました。
Debianだと、今どきは、insservを利用しますが、個人的には、chkconfigをインストールして使ったほうがDebianは使いやすいです。
(ちゃんとinsservのラッパーとして機能してくれます。)

3.SDHCカードの認識Disk領域の拡張
ddでイメージを書き込んでいるので、非常に小さいサイズしかOSが認識していないので必須です。

4.SWAP領域の拡張

5.日本語環境の整備

6.無駄なサービスの停止

Xなんて使わないので私は上記などを停止しました。

DLNAサーバ構築

さて、いよいよ本題です。そして、あまりやることがありません^^;

○MiniDLNAサーバインストール

おもむろに、どんなDLNAサーバアプリがあるか検索してみました。

えぇ!? これだけしか見つかりませんでした・・・Debianなのにちょっとがっくりですね。
Raspberry Pi用のリポジトリなので仕方ないですが。

・仕方ないのでこれをインストールしてみます。

・helpとかmanとかみてみます。

manでも書かれてることほぼ一緒ですね。簡単そうです。

・稼働状態を確認します。

インストールすると、自動起動はONで、サービスもすでに稼働してますね。
このへんはDebianの思想ですよね。(アプリを入れるということは、動かすということ。)

○MiniDLNAサーバ設定

・ちょっとログを確認してみましょうか。

おや?こんなWarningが。 では、カーネルパラメタ変更しましょう。

(例:8192を10倍にする)

これで、先ほどのログのWarningはなくなったはずです。

・さて、設定です。
(例:メディアの保存場所を/DATA/dlnaに変更)

これだけです、私は他に何もいじっていません。
ほとんどの場合は、デフォルトで十分だとおもいますが、お好みで以下のところを触ってみてもいいかもしれません。

  • notify_interval:メディア認識間隔の変更(デフォルト895秒間隔)

あとはhelpやmanなので確認して適宜変更してください。簡単です。

○MiniDLNAサービスを確認しよう!

ポート8200番で何やら動いてますね。

ブラウザで確認してみます。

ほうほう、認識可能なメディアファイルを然るべきに場所におくと、この数値が変化します。
つまりMiniDLNAサーバがメディアを認識しているということです。

MiniDLNAを使ってみる!

/DATA/dlna/配下 に mp4な動画ファイルをおいてみました。
そしてブラウザでアクセス中の画面をリロードすると、

一つ認識したようです。
※反映されないようであれば、 # minidlna -R してみてください。

さて、我が家の同じネットワーク上にいるAQUOS(LC-60G7)だとこんな感じでメニューから認識して動画をみることができました。
(Raspberry Pi を認識してますね。)
AQUOSからのMiniDLNAへの接続

使ってみてわかるのですが、非常にスムーズに動画が動きます。最近のARM機ってすごいね。

そして、こういうわかりやすいサーバは妻にもウケがよいようです。
もう一台買ってくれそうな手応えがあります。

まとめ

  • 常時稼働していても、、
    • 極めて省エネであること。
    • 音がしないこと。
  • ITリテラシーが低くても、、
    • 初心者に直接恩恵があるもの

が、私の妻に認められる唯一のサーバであると。

みなさまもご家族とよいサーバライフを!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です