2015年1月1日木曜日

apu に lightMPD をインストール

lightMPD のインストールについてまとめてみました。
ターゲットは、人気の "apu" です。


Wandboard や cubox-i4、alix3d2 も基本的に手順は同じです。

 準備するもの

【1】apu(現在は apu2c2、apu2c4)
  • 当然必要ですね。(今から買うなら、「PCのメモリー使用率が小さいほど音質が良い」と言われているので、メモリーが 4GB の apu2c4 が良いかも。)
【2】apu の電源
  • 1.5A 以上の 12V DC 電源 25mm センタープラス
【3】SDカード or USB メモリー
  • SD カードはケースの蓋を開けないと取り出し出来ないので USB メモリーがお奨めです。(そのくせ説明はSDカード中心でやってます^^;)
    【4】SD カードリーダー
    • SD カードをフォーマットしたり lightMPD をカードに書き込むために必要です。
    • SD カードのスロットがある PC を持っている場合は不要です。
    【5】ネットワーク環境
    • 必須です。(*^^)v
    • ルーターやハブの LAN ポート(LANケーブルの差し込み口)に空きがあるか確認します。
    • なければ HUB を購入。
    【6】ネットワークに接続された PC
    • SD カードに lightMPD を書き込んだり、apu の動作確認をするのに必要です。
    【7】LAN & USB ケーブル
    • apu を LAN と DAC or DDC に接続するため。(^^;;
    • USB ケーブルのコネクタ形状は,タイプAオス - タイプBオス 。
    【8】iPhone or iPod,iPad,Android端末
    • MPD クライアントをインストールして lightMPD を操作するために必要です。
    • なければ PC で代用可能です。
    • Music Player Daemon Community Wiki にクライアントの一覧がまとめられています。 
    • 私は「MPoD」が一番好き。PC なら「GMPC」かな。
    【9】テキストエディタ
    • 文字コード「UTF-8」、改行コード「CR+LF」の指定ができるもの(TeraPad等) 
    • Windows 標準の「メモ帳」は x です。
    【10】解凍ツール
    【11】ライティングソフト
    • Win32 Disk Imager (Win32DiskImager をダウンロード)
    • ※有名な DD for Windows は9月1日現在、サイトからダウンロードできなくなっています。
    • ※著名な DD for Windows はこちらからダウンロードできます。 
    • ※↑ 最近正しいダウンロードページを見つけたのですが、DD for Windows の使い方は様々なサイトで紹介されているので、ここでは「省略」(^^;)vです。

     ダウンロードしたソフトをインストール

    • テキストエディタ、解凍ツール、ライティングソフトはダウンロードしたら直ぐインストールしましょう。(^^)v
    • 本当はテキストエディタ、解凍ソフトの使用方法も書く必要があるかも?知れませんが、流石にそれは割愛してます。^^;)

     事前に調べておくこと

    1. PC の IP アドレス
    2. PC のサブネットマスク
    3. デフォルトゲートウェイの IP アドレス
    4. DNS サーバーのIPアドレス
    5. NAS の IP アドレス
    • 1.から4.までの情報は Win ならコマンドプロンプトで  "ipconfig /all" と入力することで調べられます。
    • コマンドプロンプトは、「スタートボタン --> 全てのプログラム --> アクセサリ --> コマンドプロンプト」で実行できます。
    • (Mac の場合は「システム環境設定 --> ネットワーク(環境)」で調べられます。)
    • 5.については NAS の設定ツールで調べられます。

    apu をネットワーク等に接続しておく

    • SD カード or USBメモリーに lightMPD が書き込めたら直ぐに動作確認できるように apu の向かって一番左側の LAN ポートに LAN ケーブルを接続するとともに,DDC or DAC にも接続しておきます。
    • apu の電源はこの段階では ON にしないようにします。

    apu のIPアドレスを決める

    • LAN に接続されている機器にはそれぞれ固有のIPアドレス(例:192.168.1.5)が割り振られています。
    • 普通は DHCP サーバにより自動的に割り振られているので意識することはないのですが,lightMPD では DHCP サーバ機能を使うことができません。
    • なので 「固定アドレス」で apu1c に IP アドレスを割り振る必要があります。
    • 具体的には、上で調べた PC の IP アドレスが aaa.bbb.ccc.xxx だとすると xxx の部分だけを変えたアドレスを割り振ります。 
    • ここで問題になるのが ネットワークに接続された NAS 等に DHCP サーバが自動的に機器に割り振った IP アドレスとの「重複」です。
    • 「重複」を避けるため,ルーターの設定で DHCP サーバーにより割り振られるアドレスの範囲を決め,apu1c にはその範囲以外のアドレスを割り振るようにします。
    • ルーターに割り振るアドレスの範囲を指定する機能がない場合は,(ルーターの DHCP 機能をオフにして)ネットワークに接続された全ての機器のIPアドレスを「固定アドレス」で設定します。(それぞれの機器を「固定アドレス」で設定する方法は、それぞれの機器のマニュアルを参考にしてください。)

    NAS にフォルダを作る

    • lightMPD で使う予定の NAS にフォルダを作っておきます。
    • 具体的には「共有フォルダー (一番上層のフォルダー / 私の場合は"share"です)」の中に「music」と「mpd」フォルダを作り、
    • 「mpd」フォルダの中に「playlists」フォルダを作ります。
    • 最後に「music」フォルダに音楽ファイルをアルバム1枚でよいですから入れておきます。 
              share------+--------music-----音楽ファイルの入ったアルバムフォルダー
                             |
                             +--------mpd
                                          |
                                          +-------playlists

    インストール

    ようやく本来のインストールにたどり着きました。(^^)

    【1】ダウンロード
    • 作者の「デジファイのおと」さんからlightMPDをダウンロードします。ここでは、"lightMPD-v1.0.0"をダウンロードします。
    • v1.0.0からインストール方法が変わりました。「ブートローダーが配置されているディスクイメージ」 と「rootイメージやkernelを含む配布パッケージ」の二つのファイルをダウンロードする必要があります。
    • リンクしたページの一番下の方に「イメージファイル」、「配布パッケージ」という名称でファイルへのリンクが張られています。
    • 「イメージファイル」は使用するSDカードやUSBメモリの容量に合わせて3つのうちから適当なものをダウンロードします。
    • 「配布パッケージ」は32bit版と64bit版から好みのものをダウンロードします。
    【2】解凍
    • ダウンロードしたファイルのうち、「イメージファイル」を解凍ツール(ここでは 7-Zip)で解凍します。


    【3】イメージファイルの書き込み
    • SD カード or USB メモリーを PC にセットします。
    • 「Win32 Disk Imager」を起動。
    • 事前に SDカードや USBメモリーをリーダーに挿してあれば、 「Device」 は自動で認識されていると思いますが、念のため確認してください。
    • 一方、「Image File」の方は手動で選択する必要があります。
    • 「Device」の左にある「フォルダ」のアイコンをクリックして、先ほど解凍した「イメージファイル」を選択。
    •  "Write" をクリック。
    • 「Yes」をクリック。
    • 書き込みが始まります。
    • 書き込み完了。
    • これで、「 イメージファイル」が SDカード or USB メモリーに書き込まれます。
    •  次に「配布パッケージ」を右クリックして「すべて展開」を選択。
    • SDカード or USB メモリーを展開先として選んで、「OK」をクリック。これで「配布パッケージ」の内容が「イメージファイル」を書き込んだ SDカード or USB メモリーに書き込まれました。


    やっと次は「lightmpd.conf」の編集です。v(^^

    【4】"lightmpd.conf"の設定
    • 上の画像で,「LMPDAPU」というリムーバブルディスクの「lightMPD」というフォルダの中に "lightmpd.conf" というファイルがあります。
    • "lightmpd.cong" は,テキストファイルなので,これを自分のネットワーク環境に合わせて"テキストエディター"で編集します。
    • テキストエディターは,Win なら ”TeraPad” がシンプルで使いやすいと思います。
    ※編集する前に(実際の)私のネットワーク環境を曝しておきます。この環境に沿うように ”lightmpd.conf” を編集していきます。
    1. PC の IP アドレス : 192.168.1.5
    2. サブネットマスク : 255.255.255.0
    3. デフォルトゲートウェイ : 192.168.1.1(ルーターのアドレス)
    4. DNS サーバー : 192.168.1.1(ルーターのアドレス)
    5. NAS の IP アドレス : 192.168.1.12
    6. apu1c に設定を予定している IP アドレス : 192.168.1.20
    apu1c の IP アドレス設定の考え方
    • IP アドレスは全体で12桁で表されます(***.***.***.***)。
    • apu1c の IP アドレスは,左から9桁は PC と同じにします。
    • 上の例だと "192.168.1.*" の「*」の部分(3桁)だけを変更します。
    • その場合使える数字は,DHCP サーバーにより自動的に割り当てられる IP アドレスの範囲の数字を除いた数字になります。
    • また,使える数字は 1〜254 の間にある数字です。
    • 固定アドレスを使用する場合は,他の機器と重複しない IP アドレスを指定します。
    ※この説明正確に言うと誤りだと思うのですが,実用上問題ありません。
    【5】編集
    それではテキストエディターに ”lightmpd.conf” を読み込みます。
    読み込んだオリジナルは以下のとおりです。
    *******************************************************
    [network]
        interface=eth0
        address=192.168.0.0
        netmask=255.255.255.0
        gateway=192.168.0.0
        nameserver=192.168.0.0
        domain=mydomain.jp

    [ntp]
        server=192.168.0.0
        ntpd=no
        timezone=Asia/Tokyo

    [nas:NASID1]
        type=nfs
        host=nashost1
        remotedir=audio_data
        proto=tcp
        rsize=65536
        wsize=65536

    #[nas:NASID2]
    #    type=cifs
    #    host=nashost2
    #    remotedir=audio_data
    #    remoteuser=usrid
    #    remotepass=passwd
    #    iocharset=utf8
    #    file_mode=0644
    #    dir_mode=0755
    #    rsize=61440
    #    wsize=65536

    [mpd]
        load_module=mpd-0.17.6dsdrt
        music_directory=NASID1/Music
        playlist_directory=NASID1/mpd/playlists
        db_file=NASID1/mpd/tag_cache
        sticker_file=NASID1/mpd/sticker.sql
    #  log_file=NASID1/mpd/mpd.log
        log_file=/dev/null

    [httpd]
     #  yes | no
        enable=yes

    [telnetd]
    #  yes | no
        enable=yes

    [webconsole]
    #  yes | no
    #  start page:   http://thishost:9000/index.html
        enable=yes

    [cpuaffinity]
    #  0   notmal
    #  1   cpu1:  usb irq handler
    #  2   cpu1:  usb irq handler,mpd's output thread
            type=2

    [debug]
        interfaces=yes
        resolvconf=yes
        ntpd=yes
        ntpconf=yes
        ifconfig=yes
        cards=yes
        mounts=yes
        ps=yes
        mpdversion=yes
        date=yes
        ntpq=yes
        music=yes
        messages=yes

    これを私のネットワーク環境に即して編集します。1文字でも間違えると動作しません大文字小文字の違いにも留意します。

    v0.05 から、"lightmpd.conf" の「書式」が厳格になっています。
    1. 文字コードは「UTF-8」にする
    2. 改行コードは「LF」にする
    3. 全角スペースは絶対に使わない
    ***************************************************
    [network]
        interface=eth0
        address=192.168.0.0
        netmask=255.255.255.0
        gateway=192.168.0.0
        nameserver=192.168.0.0
        domain=mydomain.jp

    ↓↓↓↓

     [network]
        interface=eth0                  (変更しない)
        address=192.168.1.20  (apu1c に割り当てる IP アドレスを記入)
        netmask=255.255.255.0   (自分の環境のサブネットマスクに変更)
        gateway=192.168.1.1       (自分の環境のデフォルトゲートウェイに変更)
        nameserver=192.168.1.1  (自分の環境の DNS サーバーのアドレスに変更)
    #  domain=mydomain.jp      (一般的な家庭内 LAN では不要なのでコメントアウト)

    • "#" の後ろの文字は lightMPD が認識しなくなります。(コメントアウト)
    • ( )内は説明文なので書き込まないこと。

    *************************************************
    [ntp]
        server=192.168.0.0
        ntpd=no
        timezone=Asia/Tokyo

    ↓↓↓↓

    [ntp]
        server=ntp.jst.mfeed.ad.jp
        ntpd=no
        timezone=Asia/Tokyo

    ※時刻を設定するセクションです。こまめに電源を ON,OFF する場合は上記の設定でO.K.です。電源を常時 ON にする場合は,

    ntpd=yes

    としておきます。
      "server=ntp.jst.mfeed.ad.jp" はNTP サーバーの URLを指定しています。
    NTP サーバーの一覧はこちら

    **********************************************************
    [nas:NASID1]
        type=nfs
        host=nashost1
        remotedir=audio_data
        proto=tcp
        rsize=65536
        wsize=65536

    #[nas:NASID2]
    #    type=cifs
    #    host=nashost2
    #    remotedir=audio_data
    #    remoteuser=usrid
    #    remotepass=passwd
    #    iocharset=utf8
    #    file_mode=0644
    #    dir_mode=0755
    #    rsize=61440
    #    wsize=65536

    ↓↓↓↓

    #[nas:NASID1]                     (コメントアウトする:若しくは消す)   
    #    type=nfs                       (同上)
    #    host=nashost1              (同上)
    #    remotedir=audio_data   (同上)
    #    proto=tcp                     (同上)
    #    rsize=65536                 (同上)
    #    wsize=65536                (同上)

    [nas:avl]                             ([nas:***]→***の部分を自分の好みに書き換え)
        type=cifs                        (NAS のファイルシステムを指定)
        host=192.168.1.12         (NAS の IP アドレスを指定)
        remotedir=share    (NAS の共有ディレクトリ(フォルダ)を指定)
        remoteuser=admin         (NAS にログインする際のユーザー名を指定)
        remotepass=********         (ユーザー名のパスワードを指定)
        iocharset=utf8               (変更しない)
        file_mode=0644             (同上)
        dir_mode=0755             (同上)
        rsize=61440                  (同上)
        wsize=65536                 (同上)

    ↑は、"lightmpd.conf" 設定の鬼門です。(^^;

    type=cifs
    • ↑でNASのファイルシステムを指定しています。
    • Win が認識できるファイルシステムは「"cifs"="SMB"を拡張したもの」です。
    • "nsf" はLinuxのファイルシステムで Win は認識しません。
    • "nsf" を指定して "cifs" を停止した NAS は Win からフォルダ&ファイルが見えなくなります。(^^ゞ
    • それでは不便なのと "nsf" の設定は何かとややこしいので "cifs" を指定しています。(本当は NAS が "nsf" に対応していない。(T-T;)
    •  ただし、"nsf" を指定して "cifs" は停止した方が音質は良くなるそうです。

    remotedir=share
    • ↑でNAS の共有ディレクトリ(共有フォルダ)を指定します。
    • バッファローの Web 設定では,共有フォルダは↑こんな感じで見えています。
    • ファイルシステムに "nsf" を指定した場合,共有フォルダの指定の仕方が変わる場合があるそうです。

    *******************************************************
    [mpd]
        load_module=mpd-0.17.6dsdrt
        music_directory=NASID1/Music
        playlist_directory=NASID1/mpd/playlists
        db_file=NASID1/mpd/tag_cache
        sticker_file=NASID1/mpd/sticker.sql
    #    log_file=NASID1/mpd/mpd.log
        log_file=/dev/null

    ↓↓↓↓

    [mpd]
        load_module=mpd-0.17.6dsdrt         (とりあえず変更しない)
        music_directory=avl/music   (音楽ファイルが格納されているフォルダを指定)
        playlist_directory=avl/mpd/playlists   (playlists を格納するフォルダを指定)
        db_file=avl/mpd/tag_cache               (tag_cache を格納するフォルダを指定)
        sticker_file=avl/mpd/sticker.sql         (sticker.sql を格納するフォルダを指定)
    #    log_file=NASID1/mpd/mpd.log         (変更しない)
        log_file=/dev/null                               (変更しない)

    music_directory=avl/music
    • 音楽ファイルが格納されているフォルダを指定しています。
    • [nas:avl]の部分で共有フォルダを "avl" と指定したので,共有フォルダのサブフォルダである "music"を” avl/music” と指定しています。
    playlist_directory=avl/mpd/playlists
    db_file=avl/mpd/tag_cache
    db_file=avl/mpd/tag_cache
    sticker_file=avl/mpd/sticker.sql
    • "tag_cache" や "playlists" 等を格納するフォルダを指定します。ここでは "music" と同じ階層に "mpd" というフォルダを作成し,さらに mpd のサブフォルダとして playlists というフォルダを作成しています。
    • フォルダの階層は↓こうなります。
    share
    ├─music
    │ 
    └─mpd/playlists

    *****************************************************************
    [httpd]
        enable=yes

    ↓↓↓↓

    [httpd]
        enable=yes     (デフォルトのまま)
    • http サーバーの起動を指定しています。"yes" とした場合起動,それ以外の文字列(例:none)を指定した場合は起動しません。
    • 停止した方が音質的には有利なのでしょうが,lightMPD の動作を簡易に確認できることと,将来的には MPD クライアントで「アルバムアートワーク」を表示させたいので起動させています。
    *****************************************************************
    [telnetd]
    #  yes | no
        enable=yes

    ↓↓↓↓

    [telnetd]
    #  yes | no
        enable=yes(デフォルトのまま)
    • v0.05 から追加されたセクションです。障害の解析に使います。最初は「yes」にして、障害がないことが確認できたら「no」に変更します。 
    ***************************************************
     [webconsole]
    #  yes | no
    #  start page:   http://thishost:9000/index.html
        enable=yes

    ↓↓↓↓

     [webconsole]
    #  yes | no
    #  start page:   http://thishost:9000/index.html
        enable=yes
    •  v0.05 から追加されたセクションです。障害の解析に使います。最初は「yes」にして、障害がないことが確認できたら「no」に変更します。 

    *******************************************************
     [cpuaffinity]
    #  0   notmal
    #  1   cpu1:  usb irq handler
    #  2   cpu1:  usb irq handler,mpd's output thread
            type=2

     ↓↓↓↓

      [cpuaffinity]
    #  0   notmal
    #  1   cpu1:  usb irq handler
    #  2   cpu1:  usb irq handler,mpd's output thread
            type=2(デフォルトのまま)

    • 音質に関わるセクションです。

    *******************************************************

    [debug]

        interfaces=yes           
        resolvconf=yes       
        ntpd=yes                    
        ntpconf=yes                 
        ifconfig=yes            
        cards=yes               
        mounts=yes          
        ps=yes                    
        mpdversion=yes
        date=yes
        ntpq=yes
        music=yes
        messages=yes

    ↓↓↓↓

    [debug]
        interfaces=yes      (変更しない:以下同じ)
        resolvconf=yes    
        ntpd=yes             
        ntpconf=yes        
        ifconfig=yes
        cards=yes
        mounts=yes
        ps=yes
        mpdversion=yes
        date=yes
        ntpq=yes
        music=yes
        messages=yes
    •  lightMPD の稼働状況を PC から見るために必要なセクションです。

    カードの差し込み       なんのこっちゃ(^◇^)

    • 編集結果を SDカード or USB メモリーにセーブしたら,PC から取り出してapu に差し込みます。

    起動

    • SD カード or USB メモリーがきちんと差し込めたら apu の電源を ON にします。
    • 初回はデータベースを構築しているので,NAS のアクセスランプが点滅しなくなるまでしばらく様子をみます。
    • しばらく待った後,PC のインターネットブラウザに apu の IP アドレスを打ち込みます。すると,lightMPD の起動に成功していれば↓のように表示されます。


    • ここで青色に表示されている "Music" をクリックすると,"md01"と表示されるので,それをクリックします。

    • するとあなたの音楽ライブラリが表示されるはずです。ここまでくれば NAS にきちんと接続できています。

    再生

    • MPD クライアントをセットアップして音楽を再生してみます。(MPD クライアントのセットアップ方法はそれぞれなので,ここでは書きません。)
    • DDC or DAC が認識されているなら,(ほぼ間違いなく)音楽が再生されるはずです!
    • ・・・・もし音が出ないなら、DDC or DAC が認識されていない可能性があります。
    • これは困った。 (・´ω・`)ゞデジファイのおと」さんに相談かな?(^^;
    次のサイトで、躓きやすい部分を詳しく解説しています(相互リンク)
    http://blog.goo.ne.jp/nyanchan63/e/23456ef2633110cc87d88b13592713d5

    0 件のコメント:

    コメントを投稿