はじめに
前々回にこんな事を書きました。
「理想は電源を入れるだけでランレベル3のCUI画面で「Vine MPD」が動作するように設定することなのですが、未だスキル不足でそこまで至っていません。
でも、きっとやれるはずです。そして、それが実現すれば、オーディオ機器風のケースに大容量のHDを積み込んでおけば、感覚的にはPCと言うことを全く意識しないで、今までのオーディオ機器と同じような感覚で使えるものが作れるはずです。」
うぶんつさんからも貴重な情報をいただき、何とか電源を入れれば自動的にCUI画面で「Vine MPD」が起動し、電源を切れば自動的にシステムが終了するようになりました。かなり悪戦苦闘しましたし、起動画面で何だかWarningも出ていますが(WARNING: Deprecated config file /etc/modprobe.conf, all config files belong …)結果オーライと言うことで、まあ気にしないようにしておきましょう。
まずは、通常の形で「Vine5」をインストールし、「MPD」の設定がすんだところから話を始めます。
ランレベル3で一般ユーザー権限で自動的にログインする。
話を分かりやすくするために、一般ユーザーの「taro」で自動的にログインする・・・という事で説明していきます。もしも、ご自分で試されるときは、「taro」の部分をご自分のシステムに設定してある一般ユーザーに読みかえてください。
当然のことながら、こういう形で自動的にログインさせるというのはセキュリティ的には問題があります。しかし、今回のようにLinuxマシンを音楽再生専用の組み込み機器のように使う場合はシステム起動のたびにユーザ名とパスワードを入力するのは煩わしいだけです。さらに言えば、今回は「Vine MPD」を通常のオーディオ機器と同じ感覚で使えるようにしたいのですから、電源を入れてから「ユーザ名とパスワードを入力する」等ということは完全に「NG」です。
ですから、「ランレベル3で一般ユーザー権限で自動的にログイン」できるようにするのは必須の課題です。
実は、ランレベル5で自動ログインさせるのは至って簡単です。
しかし、「MPD」をランレベル5で動作させるのと、ランレベル3で動作させるのでは「音」がかなり違います。ここは何としてでもランレベル3で自動ログインさせる必要があります。
まず、パスワードなしの一般ユーザーを作るか、既に存在する一般ユーザーのパスワードを消去します。
最近はシャドウパスワードになっているので、既存の一般ユーザーのパスワードを消去するのは結構手間ですから、パスワードなしの一般ユーザーを作る方が楽でしょう。
# useradd taro
というやり方で、一般ユーザーの「taro」を作成し、パスワードはあえて設定しません。それから、この「taro」の権限で「MPD」が動作するように設定をします。
しかし、『既に存在している一般ユーザーである「taro」で「MPD」を動作させるように設定がすんでいる』時は、以下の手順で「taro」のパスワードを消去します。
#シャドウパスワードをやめる
# pwunconv
「/etc/passwd」を開き、「taro」の行を編集する。
(変更前) taro:AbLdefxhiJK:0:0:taro:/taro:/bin/bash
(変更後) taro::0:0:taro:/taro:/bin/bash
#シャドウパスワードに戻す
# pwconv
(シャドウパスワードのままで「X」を削除すればパスワードも削除されるのかどうか自信がないので、丁寧に削除しました。)
次に、「/etc/inittab」を編集します。
# デフォルトランレベル(ランレベル3を指定)
id:5:initdefault:
↓
id:3:initdefault:
と、変更します。
これは、「grub.conf」を変更しても可能ですが、こちらの方がスマートでしょう。
ちなみに、デフォルトでは「grub.conf」にランレベルの設定はされていません。もしも設定をすると「grub.conf」が優先されます。
そして、
# 端末制御
1:2345:respawn:/sbin/mingetty tty1
↓
1:2345:respawn:/bin/login taro </dev/tty1 >/dev/tty1 2>/dev/tty1
と、変更します。
この2カ所の設定を変更しておけば、システムに電源を入れるだけで「taro」がランレベル3で自動的にログインします。
一般ユーザー「taro」の権限で「MPD」を自動的に起動する。
これは簡単です。
Vineはログインするときに、そのユーザーの「.bash_profile」という設定ファイルを読み込みます。ちなみに、「.bash_profile」は「/home/taro/.bash_profile」に存在しますが、「隠しファイル」なので通常の状態では表示されません。おそらく、「Ctrl+H」で表示されるはずです。
この「.bash_profile」を適当なエディタで開いて、次の1行を追記します。
/usr/local/bin/mpd
これだけで、「taro」が自動的にログインするときに、「taro」の権限で「MPD」が起動されます。
なお、データベースのアップデートはクライアントの「minion」からできますので「–create-db」の引数は不要と思います。
外付けのHDを自動的にマウントする。
これも、ランレベル5で起動させるならば放っておいても外付けのHDはマウントしてくれます。しかし、ランレベル3で起動させるとオートマウントは上手くいきません。
これが最後までよく分かりませんでした。
ランレベル3で「autofs」にチェックを入れておいても自動でマウントしてくれません。逆に、ランレベル5では「autofs」のチェックを外しても勝手にマウントしれくれます。オートマウントのデーモンは「autofs」だと書いてあるのですが、なぜにこうなるのかが最後まで理解できませんでした。
ですから、以下に述べる方法はかなり「荒い」やり方の可能性があります。起動時に「WARNING: Deprecated config file /etc/modprobe.conf, all config files belong …」のWarningも出るのも、この設定に問題があるような気がします。
ですから、もう少し真っ当で克つスマートなやり方があるように思うので、とりあえずの「結果オーライ」の対策と思ってください。
とりあえず、オートマウントのデーモンは「autofs」ですから、オートマウントのサービスはオフにして(サービスの設定画面から「autofs」のチェックを外す)、「/etc/fstab」に以下の1行を追記します。
/dev/sdb1 /music vfat rw 0 0
ただし、これは私の環境における話です。
この意味は、
- 外付けのHDをVineは「/dev/sdb1」として認識している。これは、「# fdisk -l」というコマンドで確認できます。
- 「/dev/sdb1」として認識されている外付けのHDを「/music」というディレクトリにマウントする。「/music」というディレクトリはデフォルトでは存在しないので、「# mkdir /music」というコマンドで作成する。「GUI画面」で操作しているときは、Windowsと同じ感覚で作成することも可能です。
- 「vfat」・・・外付けHDのファイルタイプは「FAT」です。もしもファイルタイプが「NTFS」の時は「ntfs」とする。
- 「rw 0 0」・・・おまじないですね。(^^;
ということですので、自分の環境を調べて、それにあわせた記述をすることが必要です。
記述が正しいかどうかは以下の手順で確認ができますが、ランレベル5でこの作業をしているときはおそらくは自動的にマウントされているでしょうから、一度アンマウントしておきます。そして、次のコマンドを実行します。
#mount -a
これは、「/etc/fstab」を読み込んでマウントしろという命令ですので、記述が正しければ外付けのHDが「/music」にマウントされるはずですから、中を確認してください。空っぽだったら、記述の仕方が間違っていますので、再度環境を調べて記述をチェックしてください。
マウントが上手くいけば、「/home/taro/music」内のシンボリックリンクをはり直しておきます。シンボリックリンクは「taro」の権限で張りましょう。
これを、root権限で張ってしまうと、taro権限でMPDが上手く起動しないようです。
# su – taro
$ ln -s /music/Composer /home/taro/music/Composer
$ ln -s /music/Pop /home/taro/music/Pop
電源オフでシステムが停止するようにする
最後に、電源を切れば自動的にシステムが停止するようにします。これも、「Vine MPD」をオーディオ的な再生機器と考えれば、「# shutdown -h now」とコマンドを実行しないと終了できないのは「NG」です。
電源を入れるだけで再生の準備が整のうのと同様に、電源を切れば終了できるというのもまた「必須条件」です。
ただし、これは簡単でした。
設定ファイルがどこにあるのか調べませんでしたが、「GUI画面」で簡単に設定できます。
「システム」→「設定」→「システム」→「電源管理」をクリックすると、電源管理の設定画面が起動します。
この画面で「全般」タブを選び「電源ボタンを押したら」・・・「停止する」を選びます。
この時、忘れていけないのは、この操作は「acpid」というデーモンに依存しているので、サービスを刈り込むときに「acpid」のチェックを外してはいけない・・・ということです。
これで、電源を押すとシステムは自動的に停止します。
随分と試行錯誤をしましたが、以上の設定で「電源を入れるだけで再生の準備が整い、電源を切れば終了できる」という自動化は実現できたように思います。
もちろん、見直しが必要な部分はまだまだあると思いますが、もう少し使い込みながら最終形を確定したいと思います。
ユングさん、こんにちは。
旺盛な意欲で果敢にチャレンジされている記事を楽しみに拝見しております。当方もMPDにトライ(UbuntuStudio10.04環境にて)しておりますが、何分Linuxのスキルがつたないせいか、MPDにクライアントソフトから接続するところまでは出来たのですが、肝心の音が出せるところまで至っておりません(情けなしです)。 でも悔しいので、いろいろと調べては挑戦を続けようと思います。
軽量Linuxを極力自動化し、リモートクライアントツール(理想的にはiPod Touchのようなデバイスから)にて自在にコントロールする、というのは、一つの理想型と当方も考えております。
話はWindowsになってしまうのですが、WindowsVISTA以降のOSにも対応して行くべく、WASAPIにターゲットを絞り、Windows環境での模索も続けております。WASAPIを排他モードで動かす音楽再生ソフトウエアはまだまだ希少と思われますが、cPLAYと思想が似た(楽曲をメモリ展開するというもの)ソフトがあり、WAV、FLACをサポートしており、音質もかなり納得できるレベルです。XPと同様にプロセスの刈り込みが出来るかがポイントですが、OSや再生ソフトによる音質コンテストなどができそうな状況で、こういうのも面白いですよね。
なお、当方もよちよちですが、オーディオ関連ホームページを立ち上げました。まだまだ未熟ですが、ユングさんを見習って頑張りたいと思います。PCオーディオ実験室へのリンクを貼らせていただきましので、ご了解をいただければ大変幸甚です。
http://www.catv296.ne.jp/~gonzaemon/index.html
>軽量Linuxを極力自動化し、リモートクライアントツール(理想的にはiPod Touchのようなデバイスから)にて自在にコントロールする、というのは、一つの理想型と当方も考えております。
そうか、iPod Touchという手があったか!!
iPadという選択肢もありますね。
現在は、リスニングルームにノートパソコンを持ち込んで、それをスイッチングハブで「Vine MPD」につないでいるのですが、どうにも「不細工」なんですね。
リスニングルームはゆったりと音楽を聴く場ですから、くつろげる空間にするというのも大切なことですね。
いろいろ調べてみると、世間にはこんなPCもあるそうです。
http://www.sodanpc.com/shop/zoom_MP-57D/
こんなPCに「Vine MPD」や「Voyage MPD」を仕込んで自動化し、それをiPadあたりで操作すれば、既存のオーディオシステムにすんなりと溶け込むことができそうです。
これは面白そうだな。
それから、サイトの方、拝見させていただきました。
マルチ・システムなんですね。ラックにすっきりと収まったたたずまいがとても素晴らしいですね。
<ここからまたも悪魔のささやき>
聞くところによると、マルチ・システムとデジタルはとても相性がいいとのこと。
マルチの最難関は位相のずれと時間軸のずれですよね。それから、それぞれのスピーカーの特性の違い・・・等々、それらを「使いこなし」でぴったり合わせるのは至難の業ですよね。
私のシステムはGonzaemonさんには遠く及びませんが、それでも高域と低域を2つのアンプで駆動させるだけでも随分とすったもんだがありました。(お粗末^^;)
でも、その辺の使いこなしの部分は、きちんと計測をして計算してやれば、デジタル領域で完璧に調整できるのではないかと睨んでいます。
おそらく、それがPCオーディオの最終形ではないかと考えています。
ああー、うらやましい、既にマルチのシステムが完成しているなんて!!
<悪魔のささやき終わり>
ユングさん
悪魔のささやき、大変ありがとうございます。
当方デジタルチャンデバによるマルチアンプならびにデジタルディによる調整は一度挫折してしまっておりますが、そろそろリトライをしても良い次期かな、と考えております。でも、これ、結構大変なんです。
(経緯は以下に少し記載してみました)
http://www.catv296.ne.jp/~gonzaemon/audio-01.html