「Voyage MPD Starter Kit」を終了させるための「お作法」は?

「Voyage MPD Starter Kit」に使用している「ALIX3D2」という基盤には電源のオン・オフのためのスイッチがありません。
これは、「ALIX3D2」が基本的には産業用の組み込み基盤として使うことを前提としているからで、要するに電源は入れっぱなしというのが正しい使い方らしいのです。

<「ALIX3D2」>

消費電力もたかがしれていますし、耐久性に関してもそれで問題はないのでしょうが、やはりいささか気持ちが悪いです。

そこで、皆さんどうやって電源をシャットダウンされているだろうと「Google先生」に聞いてみると、大部分が「ぶち切り」のようです。HDではなくてSDカードに全てがインストールされていますから、それで問題はないのでしょう。

ところが、しばらく使っていて一つだけ問題にぶつかりました。
それは、電源ぶち切りで終了すると、データベースが保存されないのです。

GMPCで接続すると、何も表示されません。
仕方がないなぁ・・・と思いつつ、再度アップデートの指示を出すときちんとデータベースが構築されて曲の一覧が表示されます。ところが、再び電源ぶち切りで終了すると、やはりデータベースが消えているのです。
いちいち起動するたびにデータベースをの構築をさせられるというのはきわめて不便です。

しかし、じっくりと考えてみるとこれは当然のことですね。
WindowsのPCでも何か作業をしていて突然「停電」なんかになると、それまでにやっていた仕事が全て「無かったこと」になるのと同じ事のようです。
作業中のデータというのは全てメモリに保存されているだけで、電源がオフになればそのデータは全て失われます。ですから、メモリ上のデータをHDに移すための「保存」という作業が必要になるのです。

おそらく、クライアントPCからデータベースのアップデートを要求すると、Voyage MPDはその結果をメモリ上に保存しているだけのようなのです。このあたりの、Linuxの仕様がよく分からないのですが、viなどのエディタを使って明示的に「保存」するのとは少し違うようです。

ためしに、データベースを一から構築したあとに

#cp tag_cache tag_cache_buckup

とでもしてやってから電源をぶちっと切ると、tagu_cacheはやはり空っぽになりますが、明示的に「コピー」という操作をして作成した「tag_cache_buckup」というファイルには構築したデータベースの内容がきちんと保持されています。

ですから、

#cp tag_cache_buckup tag_cache

とでもして、「tag_cache_buckup」を「tag_cache」に上書きすればいいののですが、当然のことながらそんな面倒くさいことをする必要はありません。

#shutdown -h now

と、行儀良く終了すれば、おそらくはメモリに保持されているであろうデータが「tag_cache」にきちんと保存されます。
つまり、「電源ぶち切り」ではなくて行儀良く終了すればデータベースの内容はきちんと保持されます。一度保存されてしまえば、次からは「電源ぶち切り」でもその内容は失われることはありません。

もっとも、新しくデータベースを更新したときは「#shutdown -h now」で行事良く終了する必要があります。
しかし、今までは電源のオン・オフだけで操作できていたのが、いちいち終了するたびにコマンドを打ち込むというのはやはり面倒くさいです。

と言うことで、「Voyage MPD Starter Kit」に関しては、常に電源オンというのが正しい使い方のようです。

ただ、そうなると、気になるのは「発熱」です。
「ALIX3D2」は7v~20vの範囲で動作するのですが、おそらく7vを越えた分は「熱」となって消えるだけではないかと睨んでいます。このあたりの詳しい知識はないので自信はないのですが、もしもそうだとすると、電源はできる限り小さい出力(7v)のものを用意する方がいいのかもしれません。(ただし、かなり自信なしです・・・)


10 comments for “「Voyage MPD Starter Kit」を終了させるための「お作法」は?

  1. yan
    2011年8月11日 at 5:12 PM

    以前yoさんの掲示板で同じ話題があったのですが、いまはなくなってしまったようなので、再掲します。

    mpdのデフォルトではtag_cacheは/var/lib/mpd/tag_cacheですが、/var/lib/mpd というディレクトリはtmpfsというファイルシステム上にマウントされています。df コマンドで ファイルシステムがtmpfsに成っているはずです。tmpfsはファイルの実体をメモリ上に置きます。従って、電源offとともに内容は消えてしまいます。

    これでは困るのでvoyageでは
    shutdown 時に /var/lib/mpdの内容をdiskに保存し、
    起動時にdiskに保存した/var/lib/mpdの内容をtmpfsにマウントされた/var/lib/mpdにコピーします。

    この操作により、メモリ上に作成されたファイルをあたかも不揮発性のストレージのように扱っています。

    mpdのupdate 操作は以下のようになっています。
     1. ディスクをスキャンしてメモリ上にデータベースを作成する。
    2. スキャンし終わったらメモリ上のデータベースを一気にtag_cacheに書き出す。

    以上の2点を踏まえて、私はtag_cacheをnas上においています。nasのファイルシステムが/musicにマウントされている場合、tag_cacheが/music/mpd/tag_cacheとなるうようにmpd.confを設定しています。

    データベースをtag_cacheに書き出している間(せいぜい2?3秒)をさければいきなり電源を落としてもtag_cacheは壊れませんし、remountroの状態であればcfディスク上のファイルも壊れません。

    また、mpdはメモリに蓄えたデータベースで動作し、起動後はtag_cacheを参照しません。従って、tag_cacheがメモリ上からnas上に移動したとしても音質の劣化はないとみています。

  2. 田中 一壽
    2011年8月11日 at 10:01 PM

    毎晩すみません。まだ躓き中です。
    外からきたフレッツ光回線はONUからCTUへ入り
    そこから,Buffaloの無線ルータにつないでおり,
    そこから別室のハブを介してMPDにつないでいます。
    NTTのマニュアルによると,ブロードバンドルータは
    DHCPを「切」にして単なるハブとして使うように書いてあります。
    ちなみに,ルーター機能を「入」にすると,ネットにつながらなく
    なってしまいます。
    むむ,どうすればよいのでしょうか?

  3. ユング君
    2011年8月11日 at 10:11 PM

    >ルーター機能を「入」にすると,ネットにつながらなくなってしまいます。

    ルーター機能とDHCPサーバーとしての機能がごっちゃになられているようです。正確に言いますと、ルーター機能を切れば絶対にネットにはつながりません。
    ルーター機能とDHCPサーバーとしての機能は全く別のものですので、そのあたりの知識を一度確認してください。
    このあたりで→家庭内LANを構築しよう

    ただし、DHCPサーバーを有効にするとルーティング機能がうまく動作しないという「仕様」は一般的には考えられません。
    もしも、契約をされているNTTのマニュアルにそのように書かれているとしたら、それは基本的にはVoyage MPDをめぐる話題ではなくて、NTTの仕様の話になりますので、申し訳ないですがサポートデスクに問い合わせをされるのがい一番の近道かと思います。

  4. ユング君
    2011年8月11日 at 10:26 PM

    yanさん、いつもながら貴重な示唆ありがとうございます。

    なるほど、Voyageの仕様はそういう風になっているのですね。「Google先生」で調べてみると、この電源ぶち切りによるデータベース喪失に苦しんでおられる方は結構いるようです。
    なるほど、NASの上に保存するとは妙案ですね。早速試してみて、自分なりに上手くいけばきちんとした形で報告したいと思います。

  5. ユング君
    2011年8月11日 at 10:42 PM

    田中さんへ

    一つ案が浮かびました。
    とりあえず、DHCPサーバーをオンにしてVoyage MPDを起動させます。
    ルーター→ハブ→Voyage MPDとつながれているのなら、必ずVoyage MPDはルーターのDHCPサーバーからアドレスを拾うはずです。

    1.その拾ったアドレスをルーターの設定画面から確認します。
    2.そのアドレスをプラウザに打ち込んでVoyage MPDのWeb GUIにアクセスする。
    3.Web GUから、ネットワーク内の適当な固定アドレスを割り割る。
    4.割り振ったアドレスでGMPCからVoyage MPDにアクセスして接続できることを確認する。
    5.接続が確認できれば、DHCPサーバーには一切用はないので再びオフにする。

    ただ、私は無線ルーターは使ったことがないので、これで上手くいくかどうかは分かりません。

  6. 田中 一壽
    2011年8月11日 at 11:46 PM

    御提案ありがとうございます。
    実を言うと,ルーターの設定画面に入れずにいるのです。
    ipconfigだと
    WINDOWS PCのアドレスが 192.168.24.97(優先)
    DHCPサーバーアドレズが 192.168.24.1

    でファイアフォックスで192.168.24.1からアクセスしようとしても
    接続できません。(ファイアウォールはずしています)

    そこで,無線ルータをリセットボタンで初期化してみました。
    工場出荷アドレスは192.168.11.1です。

    ところが,PCを再起動してipconfig見ると
    また,192.168.24.97になっており,192.168.11.1でも
    192.168.24.1でも接続できないのです。
    これは,buffaloに問い合わせるかサイトを探してみようと思います。とにかく,私にはかなり敷居が高いです。
    できるだけがんばってみます。 

  7. visioman
    2011年8月12日 at 3:39 AM

    田中様

    多分これが正解

    NTTの機器にルーター機能があり有効にしている場合
    無線ルーターは、ブリッジ(HUB)として使用する。

    voyageのIPアドレス固定
    voyageの画面でifconfigと打ってDHCP(NTTのルーター)から割り当てられたvoyageのIPアドレスを確認する。
    voyageがpcでディスプレイが繋がってたら簡単(^^)
    alixの環境ですと私は、まだ未知の世界です。(機器だけは買いました。)

  8. ユング君
    2011年8月12日 at 8:59 AM

    >ところが,PCを再起動してipconfig見ると
    また,192.168.24.97になっており,192.168.11.1でも
    192.168.24.1でも接続できないのです。

    と言うことは、お使いのPCもDHCPサーバーからアドレスを割り当てられているのですね。
    だとすると、割り当てられたアドレスには有効期間が設定されているので、すぐには解放されません。

    コマンドプロンプ画面から

    ipconfig /release

    とすると、解放されます(XPの場合です。VISTAや7は調べてください)

    この状態で

    ipconfig

    とするとアドレスは「0.0.0.0」になるはずです。
    そして、

    ipconfig /renew

    とすると、新しいアドレスが割り当てられます。

    ipconfig

    で新しいアドレスが確認できるはずです。
    この状態で「Voyage MPD」を起動すると、DHCPサーバーは基本的に順番に番号を割り振っていきますので、おそらくアドレスはその近辺になると思いますので、そのアドレスを順番にプラウザに打ち込んでいくというやり方でどうでしょう。

    WindowsPCのアドレスが「192.168.24.90」とでも割り振られていたら、「192.168.24.91」「192.168.24.92」「192.168.24.93」という感じで打ち込んでいくというやり方です。

  9. 2011年8月12日 at 10:39 AM

    田中様

    visioman様がおっしゃるようになっていると思います。

    つまり、NTTのCTUがルーターにもDHCPサーバーにもなっているので、バッファローの無線ルーターが持っている同様の機能は不要です。いままで通り、単なる無線ハブとして再設定しておくほうが無難です。
    http://flets-w.com/hikari-p/omoushikomi_goriyou/broadband_router/#cso-close

    無線ルーターを一旦リセットしたことで、ネットに繋がらなくなってしまっているなら、無線ルータの設定はとりあえず後回しにして、パソコンやStarterKitをCTUに直接繋いでもいいです。

    ということで、ルーターはNTTのCTU、ということになります。
    CTUの設定はスタートアップツールから行なうのが一般的なようです。NTTのマニュアルか付属CDか知らないですが (^^;;、ご確認下さい。

    ただ、わざわざCTUにアクセスしてDHCPサーバーの設定を確認する必要もないかもしれません。まずは、先のエントリーにコメントした通りの方法で、NetEnum4で検索してみて下さい。StarterKitが見つかると思います。

    見つかってからStaterKitを固定IPに変更する場合は、事前にここででも確認したほうがよさそうですね。

  10. 田中 一壽
    2011年8月12日 at 11:49 PM

    visiomanさん,juubeeさん,そしてユングさんたくさんの方から
    支援の声をいただき感動です。
    おっしゃるように,CTUがルーターを兼任しているようです。
    とりあえず,voyageを直でCTUにつないでみます。
    ありがとうございます。

Comments are closed.