Raspberry Pi 2をDLNAサーバにする

パスが長くなるとロードできないため今回はminidlnaをソースからビルドして利用します。

  1. minidlnaのアンインストール
  2. すでにminidlnaをインストールしてしまった場合は、アンインストールする。
    sudo apt-get purge minidlna
    sudo apt-get remove minidlna
    sudo apt-get autoremove
    
  3. リポジトリの追加
  4. echo "deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free" | sudo tee -a /etc/apt/sources.list
    
  5. リポジトリの更新
  6. sudo apt-get update
  7. ビルドに必要な依存パッケージをインストール
  8. sudo apt-get build-dep minidlna

    # 必要に応じて下記パッケージもインストールする sudo apt-get install libjpeg-dev libsqlite3-dev libexif-dev libid3tag0-dev libvorbis-dev libflac-dev

  9. 本体の取得
  10. http://sourceforge.net/projects/minidlna
    wget http://downloads.sourceforge.net/project/minidlna/minidlna/1.1.4/minidlna-1.1.4.tar.gz
    
  11. 解凍
  12. tar -xvf minidlna-1.1.4.tar.gz
    cd minidlna-1.1.4
    
  13. 編集
  14. そのまま利用すると下記のようなWARNがでてロードできなためソースを編集する。
    tagutils/tagutils-misc.c:198: warn: Vorbis cuesheet too long [<path>]
    tagutils-misc.c:186付近を編集する。
    strbuf[1024];   //before 
    strbuf[10240];  //after
    
    【追記】 upnpsoap.hに定義されているMAX_RESPONSE_SIZEも編集する。
    upnpsoap.c:753: error: UPnP SOAP response cut short, to not exceed the max response size [2097152]!

    #define MAX_RESPONSE_SIZE 2097152  // before
    #define MAX_RESPONSE_SIZE 0        // after
    
  15. ビルド
  16. ./configure && make && sudo make install
    
  17. インストール
  18. sudo cp minidlna.conf /etc/
    sudo cp linux/minidlna.init.d.script /etc/init.d/minidlna
    sudo chmod 755 /etc/init.d/minidlna
    sudo update-rc.d minidlna defaults
    
  19. 設定
  20. sudo vim /etc/minidlna.conf
    

    media_dir=V,/mnt/usbstorage/Movies
    media_dir=V,/mnt/usbstorage/TV
    media_dir=A,/mnt/usbstorage/Music
    media_dir=P,/mnt/usbstorage/Pictures
    # Names the DLNA server
    friendly_name=RasPi Media Server
    # Tells the DLNA to update the library when there are changes
    inotify=yes
    
  21. サービスの開始
  22. sudo service minidlna start