Articles

ファイル名の大文字と小文字の区別

直前の二つの記事をまとめてアップロードしたのですが、何故かイメージが表示されない。

このサイトの記事はマークダウンという書式で普通のテキストとして書いて、RubyでHTMLに変換させる方式をとっているのですが、バグかなぁと、HTMLを確認したけど、変なところはなし。
今回アップロードした記事二つだけがおかしくなっていて、それ以前は問題ないので、サーバの容量制限かなにかに引っかかったのかしらと、記事を別のページにわけてみたり、画像ファイルの場所を変えてみたりしたのだけど表示できない。

そもそも、自宅の環境でオフライン状態ではちゃんと表示できることは確認出来ているので、「うーむ」とよく見直したら、JPG画像の拡張子が大文字になっているではないか。これが原因だなとわかり、Windows7 で小文字に変更しようとすると変わってくれない。「どんどん深みにはまるなぁ」と、FTPを使って、サーバ側で変更したらOK。表示もできる。 もう一度 Windows に戻って、エクスプローラを起動し直したら、ちゃんと拡張子は小文字に戻っていました(^^;;;。
全部、もとに戻して、再アップロード。ようやくトラブルは解消しましたが、Linux 仕様(ファイル名の大文字と小文字は区別)と Windows7 のバグ(拡張子の変更をその場では正しく表示しない)に幻惑され、暮れの忙しいのにまた時間を無駄をしてしまったなぁ。

スナップショット画像の作成に使ったソフトも Windows7 のディフォルトでついているやつで、これも、多分、勝手に大文字と小文字を変えるというバグがありそうですね。

という次第でこのページの一番下のNext Pageをおすと変なことになります。実害はないので、しばらくこのままにしておきます。

(computer)   2010/12/31

コメントする

Voyage MPDの使い方(10)

日本語処理



という具合にPuTTYの画面に日本語表示できるようになりました。
Linuxの日本語化の情報はインタネットにゴロゴロころがっていますが、Voyage MPD で表示させるのには、結構、悪戦苦闘しました。やた方はわかってみれば、案外簡単ですね。
僕はLinuxの多国語化の歴史や経緯をよく理解していないので、以下、相当にいい加減です(^^;;;。わかりやすさ優先で書きます。

前提として、現時点(2010年末)の Voyage MPD (Debian系列のLINUXのターミナルモード)をいかに日本語化するかに限定して話を進めます。また、確認していませんが、直前の記事で書いた日本語キーボードの設定は事前にやっておく必要があると思います。

インストールで /etc/apt/sources.list は日本のサーバを設定しています(前々回の記事参照)。日本語化の話なのだから、台湾より日本の方がよかろうと判断しました。

まず、全てに共通の内容

Linux はlocale(ロケール)という仕組みで多言語をサポート。これを導入しないと、話は先に進まない。

やり方は「apt-get install locales」でインストール。完了後、「dpkg-reconfigure locales」でロケールを起動。GUI画面に変わるので「ja_JP.UTF-8」を選択(選択画面と確認画面の二回の操作となります。Voyageのような、マウスが使えない環境で選択画面でOKボタンを押すには、タブで移動)。

Emacs で Unicode(UTF-8)を扱うために Mule-UCS というパッケージをインストール。やり方は「apt-get install mule-usc」となります。

これで、Voyage 側の設定は完了。「locale」で、全ての設定が UTF-8 に設定されたことを確認しましょう。

UTF-8 というのはUnicode系の文字コードのことで、現状、これがLinuxでも、Windowsでもディフォルトです。他に EUC とか、シフトJISとかいろいろあるが、話がややこしくなるので、省略。下記の参照リンク先「DebianWiki日本語環境」から情報先にたどりつけます。

この状態で OS が出力するメッセージは日本語化されているはずです。試しに「ls ###」とやってみると「そのようなファイルやディレクトリはありません」と表示されます。しかし、日本語のディレトリ名やファイル名のある場所を ls で表示させても、日本語部分は変な表示になります。

これは Linux のコンソール(ターミナル)が日本語対応していないためで、日本語対応したターミナルを使う必要があるということらしい(後述します)。

しかし、PuTTYのターミナル画面で同じ操作をすると、上図の通り、日本語のディレトリやファイル名が表示されます。また、PuTTYのターミナルでEmacsを立ち上げ日本語のファイルをオープンすると下図のように、ちゅんと日本語表示されるようになります。
推定ですが、これは、Linux としては多国語対応になっているので、文字コードは正しく Windows側に送信され、PuTTY は Windowsの日本語フォントを使えるので、表示できるということだと思います(Voyageコンソールで文字化けしても、MPDクライアントで正しく日本語表示されるのと同じ理屈です)。
従って、PuTYTの設定で、変換 > 文字コード は UTF-8 になっている必要があります。



ここからはLinux のコンソール(ターミナル)で日本語を表示させる方法です。

Linux コンソールで日本語表示させるにはフレームバッファを使って日本語フォントを表示させるという方法をとります。

フレームバッファが設定されているかどうかは「cat /proc/fb」で確認できます。

レームバッファを使ってコンソールを立ち上げるにはbootの設定が必要です。

インタネット情報では「/boot/grub/menu.lst」の「kernel /vmlinuz root=LABEL=ROOT_FS」に「vga=791」を追加すればいいらしい。
しかし、僕の環境(Voyage MPD 12/19版)では「vga=791」ではブート途中でハングしてしまい、iplできなくなってしまいました。「nomodeset vga=791」としなければ駄目でした。
「nomodeset」は KMS(Kernel Mode Setting)を無効にするという意味らしいので、フレームバッファを有効にするには、指定しないといけないというですかね。
vga=791 の右側の数字は画面の解像度で、791で64K色 1024x780、788で64K色 800x600、785で64K色 640x480 になります(他にもいろいろ指定可能です、詳しくは検索してみて下さい)。

以上の /boot/grub/menu.lst をいじるというのはVoyage MPDの使い方(5)の「HPETの設定」の項で解説した方法ですので、clocksource=hpet の後ろに上記内容を設定することになります。また、マルチブート環境では/boot/grub/grub.cfg をいじるということになります(Voyage MPDの使い方(7)を参照)。

フレームバッファを使って日本語表示させるコンソールとしては、jfbterm と fbtermの二種類がありますが、Voyage MPD 12/19版環境で、ちゃんと動作するのは fbterm だけです。インストールは「apt-get install fbterm」。起動は「fbterm」で出来ます。

これでめでたくLinux コンソールは日本語化されました。

しかしfbtermからEmacsを起動しても、日本語表示してくれません。
設定用の「./.emacs」を作成する必要があります。

emacs ./.emacs 新規ファイルを作成

以下を編集。

;;my setup
(set-language-environment "Japanese")
;(setq default-input-method "MW32-IME")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(setq file-name-coding-system 'utf-8)

これで emacs も日本語表示するようになります。
三行目の

;(setq default-input-method "MW32-IME")

はPuTTYでMS-IMEを使うための設定です。詳しくは次回。

しかし、このfbtermを使う方法はフォントがパッとしないので、いまいちなのですよね。何か解決策はありそうですが、わかりません。まあ、普段は PuTTYを使っているので、いいのだけど。

暮れの忙しいのに、丸一日かかった。疲れたなぁ。

多国語化というのは魑魅魍魎(あら、ちゃんと変換できた、素晴らしい)の世界ですね。使っている Linux のバージョンやディストリビューション、あるいはハード構成などで上記内容は変わると思います。参考のために、以下、今回、僕が参照したサイトを列挙しておきます。

日本語環境構築の Tips や FAQ だとか
Debian系のLinuxの日本語化に関して包括的情報サイト。大変よく出来ています。
このサイトはDebian系のLinuxの最新情報がふんだんに掲載されており便利です。
Sargeにおけるコンソールの日本語処理
Sargeという2年位前のDebianのヴァージョンのことです。ちょっと情報は古いかもしれないが、Q&A形式でDebian多国語化の内部情報がわかりやすく解説がされています。
Linuxカーネルの基本機能 第10回 ファイル名の文字コード
日経ITProのLinux連載記事の一部。ファイル名の文字コードについて詳説されていて、役に立ちました。また、この連載の他の記事も素晴らしいです。たとえば、Linuxのメモリ管理やプロセス管理についてカーネルベースの詳細な解説があり、Linuxでオーディオをやろうと考えている人にはお勧め。
カーネルとは OS の核(中心部分)となる機能のことで、この挙動が音の再生に影響することは確実ですから。
DebianWiki日本語環境
DebianWikiの日本語環境についてページ。直接のやり方の説明はないけど、全体像を知るには有効です。
Ubuntu Tips/アプリケーション/Emacsで日本語を使えるよう設定するには
Ubuntuのサイト。情報はちょっと古いですが、Emacsの設定はここのものをパクリました(^^;;;。

今回のカスタマイズは全て PuTTY + Emacs という環境で行いました。さすがに便利ですね。ちょっと操作は違うけど、Windowsでエディターを使うのとほとんど同じ感覚で処理できます。カラフルに設定ファイルが表示される、自在にコピー&ペーストが出来きる、ショートカットキーが楽に使えるなど、いいですね。最初からこれでやるのだったなぁ。
日本語表示のサンプルとして Emacsといしっょにインストールした Rubyの日本語READMEを表示させています(他にVoyage MPDの中に日本語のドキュメントがなかったもので)。簡単なスクリプトを作れば、相当、Voyage MPD の運用を簡単にできるかなと思っています。

長くなったので、emacsについては来年にまわします。

(PC_Audio)   2010/12/31

コメントする

Voyage MPDの使い方(9)

Emacsの話題にするつもりだったのですが、その前に、さらに追加でいくつか。

メモリリーク問題

僕の環境でもいろいろいじっているとTop画面で平常時は180MB程度なのが300MBを超える値となり、何でかなと思っていました。ユングさんのサイトで話題になり、シンさんのサイトで総括されています。
こういう具合にネットワークを使って、情報を共有し、問題が解決されるというのはインタネットの強みですね。雑誌やオーディオショップなどを中心にした従来のオーディオの情報の流通とはまったく違う形態で、「面白いなぁ」と思いました。
とりあえず、尖閣ビデオじゃないけど(^^;;;、情報はなるべく広げた方がいいだろうから、シンさんのサイトの情報(編集はしていますが、内容はそのままです)をここにも書いておきます。

  • Voyage MPD の11/01版の MPD にはメモリーリークのバグが残っている。12/19版で再インストールするか、MPDだけ最新版にアップグレードすれば、この問題は解決する。
  • 12/19版でインストールについては前回の記事を参照。
  • MPDだけアップグレードしたければ、ここからmpd_0.16-1_i386.deb をダウンロードして、mpdを停止(mpd –kill)した状態で「dpkg -i mpd_0.16-1_i386.deb」を実行(しかし、リンク先のページのURLをシンさんはどうやってgetされたのですかね。MPDのサイトをうろうろしたのだけど、わからず^^;;。)
  • MPDを最新版にしても Voyage には pptpd のメモリーリーク問題が残っているので、「apt-get remove pptpd」として削除。
  • この他にも Voyage から cron, dnsmasq, hostpapd, klogd, lirc, nfs-common, pptpd, portmap, rpc.statd, sysklogd, watchdog, wd_keepalive, smbd は削除。削除方法は二つあって、単純に「apt-get remove」 か「apt-get install sysv-rc-conf」でインストールして、「sysv-rc-conf」でGUIで実行。sysv-rc-confはモジュールを削除するわけではないので(rcX.dの中のシェルスクリプトを S から K にかえるだけ)、試しにやってみるにはいいかもしれない。

というところですかね。

Samba の導入

Ubuntu を立ち上げてやっていたのですが、これだけのために、いちいち OS を切り換えるのも面倒なので、Voyage側に入れることにしました。この項もシンさんのアドバイスに助けられました。シンさん、ありがとうございました。インストールそのものは簡単で

root@voyage:~# apt-get install samba smbfs

これで、Samba の Windowsからのファイル共有機能がインストールされます。
/etc/samba/smb.conf を使っている環境に合わせて変更する必要があります。修正量が多くなるので、Emacs を使った方がいいでょう。

root@voyage:~# emacs /etc/samba/smb.conf

以下は Windows7 でパスワード保護を無効^^;;;、ホームグループ接続を有効にしている例です。ディフォルトの設定から変更した部分。
まず、global 設定

   workgroup = ・・・
   hosts allow = 192.168.0.

workgroup名はWindows側の設定に合わせる必要があります。hosts allow は多少はセキュリティの足しになろうかと思い追加。

####### Authentication #######
・・・
   map to guest = bad user
・・・

map to guest のディフォルトの never は都合が悪いので、追加。

############ Misc ############
・・・
   usershare allow guests = yes
   security = share
   guest ok = yes
   guest account = ・・・
・・・

usershare 部分はゲストで入れるように設定。guest account は Windows のログインするアカウント名を指定します。全て最後の部分に追加となります。



Emacsを使うと、こういう具合にコメント行と設定行を色分けして分かりやすく表示されます。「この色の趣味は何だ」という方もいらっしゃるかと思いますが、設定ファイルで変更できます。

#======================= Share Definitions =======================

#;[homes]
#;   comment = Home Directories
#;   browseable = no

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
#;   read only = yes

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
#;   create mask = 0700

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
#;   directory mask = 0700

以上は最後に共有するディレクトリを設定するので、全てコメントイン(#;)します。

[BB]
  path = /mnt/sda/BB
  writable = yes
  guest ok = yes
[AB]
  path = /mnt/sda/AB
  writable = yes
  guest ok = yes

共有するディレクトリの定義を追加。セキュリティは弱くなるけど、Windows側でメンテナンスするので、書き換え可能にします。
ゲストのユーザ名を登録します。Voyage MPD では smbpasswd が使えないので、pdbeditで代用するというのがポイントです。
まず、adduser でユーザ名を追加。

root@voyage:~# adduser ・・・
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for ・・・
Enter the new value, or press ENTER for the default
Full Name []: 
Room Number []: 
Work Phone []: 
Home Phone []: 
Other []: 
Is the information correct? [Y/n] y

次にpdbeditで Samba のパスワードを設定。

root@voyage:~# pdbedit -a ・・・
new password:
retype new password:
・
・

以上で設定は終わりです。Samba を立ち上げ直します。

root@voyage:~# /etc/init.d/samba start

Samba が上手く開始しているかどうか確認します。

root@voyage:~# /etc/init.d/samba status
nmbd is running.
smbd is running.

と表示されれば、OKです。
/etc/samba/smb.conf などにエラーがある場合は /var/log/samba/log.smbd や /var/log/samba/log.nmbd にエラー内容が記録されていますので、調査できます。

Samba は Daemon として動作しますので、システム的にはCPU、メモリなどの資源を消費し、負荷増大につながります。音にはマイナスの影響を与えると思いますが、まあ僕の環境では動いていなくても音に差はなかったので、動かしっぱなしにしています。
気になる方はイニシャライズ処理で Samba起動用のスクリプトをリネーム(/etc/rc3.d/S19samba → /etc/rc3.d/K19samba)して、ルートでログイン後、手動で起動(/etc/init.d/samba start)すればいいと思います。「メモリーリーク問題」で書いた sysv-rc-conf を使う手もあります。

あと、日本語処理の話題をとりあげる予定なのですが、長くなったので、休憩。

(PC_Audio)   2010/12/30

コメントする

毎日新聞の訂正記事

今日の毎日新聞に『26日朝刊「街角」の記事中に「カエサル率いるローマ軍に追われて」とあるのは誤りでした。イスラム教徒がアルプス地方へ進出したのは10世紀ごろです。』と訂正が出ていました。一体、何を間違えたのだろうと、古新聞あさりしました。

「アラブ人の回廊」という3段の小さなコラム記事で、「スイス、アルプスのふもとに、ローマ軍に追われて移り住んだ古代イスラム教徒が住んでいた村があり、その後、カソリックに改宗したが、アラブの風習はまだ残っている。アルプスは古来、地中海をはさんでアラブ人がダイナミックに往来する回廊でもあった。」という内容の味わいのあるいい記事でした。
なるほど、以前、「中東欧音楽の回路」という本を読んで感心したことがあるのですが、「アラブ人もあのへんを行ったり来たりしてたのねぇ」と納得。
しかし、カエサルに追われたのじゃなくて、10世紀だとすると、スペインにアラブ人が襲来し、中世文化に大きな影響を与えたころだろうから、結構、広い範囲で交流があったのですかね。

しかし、この記事書いた記者、上司に大目玉をくらっただろうなぁ。同情いたします。
まあ、イスラム教ってたしか7世紀位にマホメットが興したわけだから、ちょっと変だよなと気がつかなかったのは、不覚でしたねぇ。

(others)   2010/12/30

コメントする

Voyage MPDの使い方(8)

前回の続きです。さらに、書き忘れたことをいくつか。

Voyage MPD の新ヴァージョン

シンさんも書かれていますが、結構速いペースでアップデートしているみたいですね。
TOPページからダウンロードできるCDイメージもブートメニューが出るようになり、内容もかなり変わっているみたいです。12月19日版をちょっと試した範囲で気がついたのは

  • 今までブート途中でハングし、ログインできかったパソコン(具体的にはパソコン部屋のメインマシン)でも、ログインできるようになった。ブートメューに recovery mode という立ち上げ方があって、defaultに対して
    noapic noapm nodma nomce nolapic nomodeset nosmp vga=normal
    を指定していますので、default で駄目だったらこっちでやる手がありそうですね。
  • 内蔵のハードディスクを認識するようになった。
  • 日本語キーボードは標準のインストール方法で認識できるようになった。

など改良された点もあるのですが、問題点もあって

  • 大画面ディスプレイに対応した。これは便利なようだけど、字が小さくなり、20代現役バリバリのプログラマーならいざ知らず、遠近両用メガネをかける身には、目に厳しいですね(^^;;;。
    /boot/grub/menu.lst の kernel 行に nomodeset vga=normal を追加すれば、回避できます。
  • USBメモリ(ディスクもかな ?)を勝手にマウントしてしまうので、ディスクの初期設定が面倒
    /usr/loca/sbin/format-cf.sh は使えなくなり、fdisk、mkfs.ext2、tune2fsの組み合わせでやるしかないが、 途中で勝手にマウントされるので、エラーになり、いちいちアンマント(/dev/sdnn or /media/usb0)しない といけない。かなり、疲れます。
  • mpd を restart させると 6600番のポートがビジーというエラーになります。実害はなさそうだけど。
Starting Music Player Daemon: mpdlisten: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded) 

音はたいした変化はなさそうですが、まだ、ちゃんと使ってないので、詳しくは暇が出来たら、まとめたいと思います。
僕のこれまで書き込みは11月1日にリリースされたヴァージョンをベースにしたものですので、ご注意ください。


Voyage MPD のインストールTips

ハード構成の単純化させる
インストールするハードの構成は単純なものほど、トラブルに遭遇する確率は低くなるみたいですね。
具体的には僕の環境で、ベアボーン機とノートブックは問題なくインストール出来て、音も鳴ります。 しかし、メインのデスクトップ機は、11月1日版ではCDブート途中でフリーズ、12月19日版ではCDブート途中で「/sbin/modprobe -b pci:…..unexpected exit with status0x0009」と表示され長い中断時間(5分間位)が 発生、その後、何もなかったように処理は継続し、一応、イントールはできる。 しかしインストールしたシステムでも、同じ症状が発生し、音が出ません。
デスクトップ機と他の二台の違いはハード構成の複雑さかな思います。
デスクトップ機はハードディスク二台内蔵、E-ATAで一台外付け、BDRWもE-ATAで外付け、音源は マザーボード内蔵のRealtekHDA、PCIバスにONKYOのSE-200PCI Limited、IEEE1394でM-Audioオーディオ インターフェースを外付けといろいろ繋いでいる。
一方、ノートブックもベアボーンも内蔵のディスクは一台だけ。それぞれUSBとE-ATAで一台だけ大容量 のハードディスクを接続。音源もUSBインターフェースのもの一台だけ。
となっていて、この差でデスクトップ機は上手くいかないかなと思っています。
USB接続のオーディオインターフェースを使う
僕の環境ではUSBインターフェースのものは全て問題なく音が出て、PCI接続のボードは上手くいかないケース が多いです。
使っているPCIバス接続のカードでの成績は
ONKYO SE-200PCI Limited : ×
M-Audio Audiofile 2496 : ×
Egosys Juli@ : ○
というところです。どうも、PCI接続のボードは鬼門のようですね。何れもUbuntuでは音が出ることは確認して いるので、Voyage MPD のAlsaの設定の問題だと思います。
インストール & 再起動直後に設定すべき内容
説明の都合で後にまわしましたが、「Voyage MPDの使い方(4)」の「Voyageの基本的な設定」の中で 「タイムゾーンの変更」、「rootパスワードの変更」、「.bashrc の設定」、「日本語キーボードを設定」 「IPアドレスの固定化」はインストールが終わって、再起動直後にやった方がその後の作業を スムーズに進められます。
なお、「日本語キーボードの設定」は解説を省略しましたが、初期更新も兼ねて、 以下の通り行えばいいです。

vi /etc/apt/sources.list (/etc/apt/sources.list を修正するため vi を立ち上げる)
(from)http://ftp.tw.debian.org/debian/ squeeze main contrib (二行目)
(to) http://ftp.jp.debian.org/debian/ squeeze main contrib
apt-get update
apt-get upgrade
apt-get install dialog
apt-get install console-common console-data

なお、キーボードの再セットアップは dpkg-reconfigure console-data で出来ます。

次の二つも、とても効果的ですので、インストール直後に準備することをお勧めします。

SSH の導入



これはユングさんの書き込みを見て気がついたのですが、Voyage MPD には SSH がディフォルトで入っているのですね。これは気がつかなかったなぁ。ユングさんありがとうございます。早速パソコン部屋のメインのWindows機にSSHクライアントを導入しました。使ったのは PuTTY というソフト。 ここに日本語対応 & 機能拡張したものがあります。

インストール方法は通常のWindowsソフトと大差はないので、省略。起動すると、初回の接続時だけ、「このサーバの鍵はレジストリにキャッシュされていません。….登録しますか。」という問い合わせ画面が出るので、「はい」をクリック。次にディフォルトでSSH2で接続する設定画面が出るので、ipアドレスを入力して、接続。これだけで繋がります。あとは、通常の Voyage のログインと同じでユーザ名とパスワードを入力すれば、OKです(Voyage MPD の設定を行うためであれば、rootでログインする必要があります)。Voyage MPD 側はIPL処理が終わっていれば、ログインしていても、いなくても大丈夫です。簡単です。

このSSHを使った操作でとても便利なのは、マウスを使って、右クリックで copy & paste が出来ることです(Linuxハッカーから見れば、堕落かもしれませんが^^;;;)。下の画面にあるように、灰色で表示された部分がマウスを左クリック & ドラッグして範囲指定。この状態で右クリックすると、画面に表示されているように、カーソルの位置にペーストされます。
同じようにWindows側からペーストできますので、ブラウザでこのページを表示しておいて、「nomodeset vga=normal」という部分をあらかじめコピーしておけば、PuTTY画面上で右クリックすれば、ペーストできます。
さらに凄いのは、vi の中でこの操作で出来ること。カーソルを挿入したい場所に移動しておいて、左クリック & ドラッグして範囲指定、右クリックでペーストという具合に操作できます。これは vi の設計思想を考えると、破門されそうな操作方法ですが、マウスを使って上手く copy & paste できます。


ご覧のようにマウスを左クリックでドラッグして灰色の部分を範囲指定、その後、右クリックしてカーソルの位置にペーストできます。vi でペースト(右クリック)した直後の画像です。


Voyage は CDブートした時でも、SSHが使えるようになっていますので、Voyage のインストールもSSHを使って、Windowsから出来ます。その後の MPD と Linux の設定ももちろん出来ますので、便利ですよ。そのうち、これで操作ログをとって、インストールとセットアップの手順を公開するかなと思っています。




ところで、上の操作画面にある通り ls 出力のディレクトリ名の日本語の部分が ?? になってしまいます。前半部分でのタブキーによるディレクトリ名補完では正しく表示されているので、どうも、Voyageに日本語コンソールを導入しないと駄目みたいですね。

Emacs の導入

直前の記事でgeditとviの比較で、viの使い方を愚痴った時、そういえば、Emacsってコンソールモードでも使えるのだったなと思い出しました。試してみようと

apt-get install emacs

とやってみたら、簡単にインストール出来るのですね。
「Emacs ってなあに ? 」という方もいらっしゃるかもしれないが、UNIXの世界では、知らないものはないという位、有名なエディターです。こちらの方が vi よりはるかに使いやすいので、設定作業はこちらでやった方が楽かもしれませんね。たしか、シェル機能も持っているから、ログインしたらすぐEmacsを立ち上げて、全ての作業をEmacsの中ですることができるのではないかしら。

SSH + Emacs で Linux のシェル機能とWindowsのマウスを使ったGUIの両方が使えるようになるので、Voyage MPD の操作性は Windows とそう変わらなくなるという感じですかね。少なくても、デキの悪い Windows のアプリよりははるかに使いやすそうです。

Emacsの使い方は次回。

(PC_Audio)   2010/12/25

コメントする

Voyage MPDの使い方(7)

書き忘れたことをいくつか。

ただし書き

Voyage MPD のインストールは、失敗すると、お使いの環境に大きなダメージを与える可能性のある作業です。このサイトに書き込まれた情報は全て無保証であることを理解された上で、自己責任で実行して下さい。僕はこのサイトに書き込んだ内容に起因するどのようなトラブルに関しても、一切、責任は負いませんので、ご了解よろしくです。

という文言をわざわざ明記したのは、実際、トラブルの可能性は十分あるからです。
現在、お使いの環境に、バックアップもとらず、Voyage MPDを導入しようというのは、「神をも恐れぬ無謀な試み」だと思います。
最初(一回目の書き込み)に書いたように、Voyage MPD 専用のハードを用意するか、バックアップはしっかりとっておいて、何が起きても大丈夫にしてから、作業を始めることをお勧めします。


音楽用ディスクの置き場所

いろいろトライしたのですが、最終的に前回の書き込みの「使っているPCオーディオシステム」にあるように、パソコン部屋のメインシステム(Windows 7)に音楽DBマスタを置き、居間にある音楽用パソコン(Ubuntu 10.10)とSambaを使いファイル共用するという方式にしました。以下、その方法。

Ubuntuにsambaをインストール

さすがに簡単で全部GUIで出来ます。

システム → システム管理 → パッケージマネージャ

でパッケージマネージャを起動する。
画面でみると、samba-common、samba-common-bin、smb-clientはインストール済なので、

  • samba(ファイル共用のため Samba Daemon 起動)
    ネットワークにあります
  • system-config-samba(GUIでのsamba環境の設定ツール)
    システム管理(universe)にあります

を選択。適用ボタンを押して、インストール。

samba環境の設定

インストールが終わると、

システム → システム管理 → samba

というメニューが出来ているので、クリックして、GUIでのsamba環境の設定を開始。

プレファレンス → サーバ設定 → 基本
 :: ワークグループ名を設定(Windowsに合わせる)

プレファレンス → サーバ設定 → セキュリティ
 :: 認証モード = 共有、暗号化パスワード = いいえ を設定。

ファイル → 共有を追加 (プラスボタンをクリックでもOK) → 基本
 :: ディレクトリと共有名を設定、書き込み可能、可視をマーク
ファイル → 共有を追加 (プラスボタンをクリックでもOK) → アクセス :: 誰でもアクセスを許可するをマーク

以上でWindowsから書き込みできる共有ディレクトリを登録できます。

Voyage MPD のミュージックディレクトリに共有ディレクトリをリンク

次に登録した共有ディレクトをVoyage MPD のミュージックディレクトリにリンクします。

ln -s /mnt/sda/xxx /music

/mnt/sdaはfstabに登録しておきます(「Voyage MPDの使い方(4)」を参照)。


マルチブート環境でのHPETの設定とディフォルト起動OSの変更

「Voyage MPDの使い方(5)」で書いた方法はシングルブート用です。
マルチブートの場合は設定場所と方法が多少変わります。以下は Voyage MPD をインストール後に Ubuntu をインストールしてマルチブート化させたケースの方法です。

ubuntu側での操作になります。

  • ディフォルト起動OSの変更
    sudo gedit /boot/grub/grub.cfg
    頭の方に「defaults=0」という行があるから、この数字をbootメニューの Voyage MPD 並びの番号 (0から数えます)に変更
  • HPETの設定
    同じく、
    sudo gedit /boot/grub/grub.cfg
    終わりの方に Voyage MPD の設定するコードがあるから、
    「linux /vmlinuz root=LABEL=ROOT_FS」という行に「 clocksource=hpet」を追加。

ディフォルト起動OSの変更を

sudo gedit /etc/defaults/grub

で編集して、

update-grub2

を実行という方法は /boot/grub/grub.cfg の内容が元に戻ってしまうので、まずいです。

なお、以上の方法は OS が使うブートローダにより変わるはずです。Ubuntuの比較的新しい版のみで有効だと思って下さい。

操作をしてみて、改めて思ったのですが、gedit と vi の使い心地は天国と地獄、雲泥の差ですね。シフトキーを押しながらカーソルの移動で範囲が指定できるとか、コントロールキー + 文字キーでいろいろな操作が可能など、いちいちモードを切り換えてやらなくてもいい世界に感激。どうせ、マルチブートしているわけだから、Voyage MPD の設定ファイルもこれで変更した方が楽だったかなぁ。

電源ボタンでの電源断

シンさんの情報で解決しました。ありがとうございました。

方法はまず acpid をインストール

apt-get install acpid

次に以下の電源ボタンで電源断を設定する定義ファイルを作成

vi /etc/acpi/events/power
event=button/power (PWR.||PBTN)
action=/sbin/poweroff

これで電源ボタンを押すと電源が落ちるようになります。
詳しい解説は以下のサイトにあります。
Shutdown Pressing Power Button

ただ、この方法はacpidをDaemonとして立ち上げ監視させるということになるので、システムの負荷増大を考えると、積極的にお勧めではありません。「Voyage MPDの使い方(4)」で書いた方法でも[pause]ボタン一つで電源断できるわけだから、そちらの方がいいかもしれません。

(PC_Audio)   2010/12/23

コメントする

Voyage MPDの使い方(6)

本題の方はだいたい書き終えたので、ここからは雑談です。

使っているPCオーディオシステム

メインシステム(居間)

  • PC構成
    ShuttleX-27D Atom内蔵ベアボーン、メモリ 2GBytes。ディスクをSSDに交換、ファンを静音型のものに入れ換 える、DVDは取り外すなど、ほぼ静音化しています。
    データ用のハードディスクはE-ATA接続、外付け、 2TBytesのものを使っています。
    ソフトは Windows 7、Ubuntu 10.10(これはSamba専用)、VoyageMPD トリプルブートの音楽専用マシン として構成。

  • Audio構成
    udac PhaseTech HD-7A, amp Job Pre & 150×2, sp Elac330CE + SW(Elac)

サブシステム(パソコン部屋)

  • PC構成
    一台目
    自作、E5200 + GigaByteGA-EG43M-S2H、Mem 4GBytes、HDx4 合計 6TBytes。Antec Soloの筐体に納め、 一応静音化。
    Windows XP と 7 でデュアルブート。常用のマシンなので、XP、7共にOSの音楽専用化はしていません。
    dd M-Audio FW Audiophile でオーディオ装置とはつながっています。

    二台目
    NECノートブック Celeron 1.4MHz、メモリ 512KButes、ハードディスク 80MBytes。
    ディスプレに画面に縦縞が入り、使わなくなっていたものを古いOSを捨てて、Ubuntu 10.10(これは Samba専用)、VoyageMPD のデュアルブートに変更。音楽専用にしたもの。
    udac PS Audioの Digital Link でアンプに つないでいます。

  • Audio構成
    da Job DA96, amp UnisonResearch Unico-P, sp EBTB Terra2 + SW(AAD)

僕のPCオーディオ歴

第一期
20年位前にDTMをやるためにパソコンを使いはじめました。1990年代後半にソフトサンプラが登場。パソコンで直接音を鳴らすのが当たり前になり、オーディオでも使えるのではないかなと思っていました。
第二期
10年位前にソフトサンプラがメインになったので、PCを直接オーディオ装置に繋ぎはじめました。当時のオーディオカードだと、ちょっと乾いた音になるのですが、解像度とか、ダイナミックスはかなりのもので、「それなりの音はするな」と感じていました。パソコンしながらのBGMには十分のレベルでした。
第三期
7~8年前にCDプレーヤをトランスポートとDACに分けた構成にした時、試しにPC側のオーディオカードのディジタル出力をDAC入れてみたら、CDトランスポートの音とほとんど差のないことを知りビックリ。これだったら常時接続する一手と考え、オーディオカード(インターフェース)をいろいろ試して、現在の構成となりました。

僕の旧サイトは1997年に立ち上げて、第一期の終わりと第二期の始めころ主に更新していました。従って、DTMメインの構成となっています。

ハード歴

全てPCオーディオ歴の第三期になってから。

  • オーディオカード(M-Audio Audiofile 2496)のSPDIF出力をJob DA96に入れる。
    最初にPCとオーディオ装置をつないだ構成。なかなかの音に感心したが、ちょっと音楽的雰囲気が薄くなる なぁという感想でした。
  • 外付けのFW接続のオーディオインターフェース(M-Audio Audiofile FW 2496)を導入。 これはまあまあ効果的でした。ノイズレベルが一段低くなったかなという感想。 その後、いろいろな外付けオーディオインターフェースを試しましたが、Audiofile FW 2496は今でも使って います。
  • 専用のUSBDAC(PS Audioの Digital Link)を導入。
    4~5年前に出たての頃に購入しました。
    これで、CD Playerと再生音ではほとんど差がないという状態になったので、手持ちのCDは全部パソコンに 取り込み、そちらで音楽を聴くというスタイルに変更しました。利便性がまるで違うので。

今年になって、PCオーディオばやりとなり、関連の製品が次々と登場するので、ついつい釣(?)られてPhaseTechのHD-7Aを買っちゃいました。Digital Linkと比較して音は良くなったのかわからんという感想。どうもハードは 数年前と比較して、あまり進歩してないなとわかり、次の項に続きます。

ソフト歴

ソフトで音が変わるという雑誌の記事に刺激され、Window 7 に入れ換えて、音が良くなるのにビックリ。 それじゃというので、プレーヤもいろいろ試してみると、結構、違うものですね。入れ換えた順番に書くと、
foobar2000→uLilth→KMP+ReClock→Wave File Player→Stealth Player→PlayPCMWin
僕の感想では右の三つが圧倒的に良かったです。ただ三つともwaveファイルだけしか再生できなくて、とても 使いづらいです。
どうせ使いづらいなら、Linuxでもいいかと考え、
Ubuntu StudioでJack+Audacious
という構成を試してみましたが、上記三つよりは多少音場感がよくなるかなという感じでした。「Linuxは 常用にはならないなぁ。どうしたものかしら」と思っていたら、Voyage MPD に出会いました。

これは素晴らしい。オーディオ機器を1ランク上にしたような効果がありますね。楽器や声の実在感をよりリアルにしながら、音楽的雰囲気を格段に向上させる。また今までのソフトでは気がつかなかったのですが、パソコンのハードの差による音の変化を明瞭に聞き取れるようになりますね。ノートブックの蓋をしたら音がガラリと変わったのにはビックリしました。もう、CDを聴くには過去のソフトは全て捨てて、これだけにするかと考えています。

シンさんが Voyage MPD に関して大変素晴らしいページを書かれているので、リンクしておきました。

(PC_Audio)   2010/12/18

コメントする

Voyage MPDの使い方(5)

ようやく Voyage MPD のチューニングにたどりつきました。

Linuxを音楽専用にチューニングする方法を解説したサイトは英語だと山ほどあって、僕が参考したのは以下のページです。

結構古い(2005年頃)ページもあり、Linuxを音楽専用に使うというのは海外ではもう当たり前になっているという感じですね。
詳細な解説は上記のページにまかせて、以下は僕の環境でどう設定し、効果はどうだったかを書きます。

HPETの設定

HPETとはなにかについてはユングさんのこのページに紹介されています。
Voyage MPDはDebianベースなので、設定用のファイルは/boot/grub/menu.lstとなりますが、あとはユングさんが書いておられる方法でOKです。効果についても同感で、楽器の実在感がよりリアルなると思いました。とくに古楽器を使った演奏には非常に効果的ですね。
以下、忘備録用メモです。
利用可能なクロックの確認

cat /sys/devices/system/clocksource/clocksource0/available_clocksource

現用クロックの確認

cat /sys/devices/system/clocksource/clocksource0/current_clocksource

HPETの設定

vi /boot/grub/menu.lst 
(from) 
kernel /vmlinuz root=LABEL=ROOT_FS 
( to ) 
kernel /vmlinuz root=LABEL=ROOT_FS clocksource=hpet 

Linuxのヴァージョンの確認

uname -a

Debianのヴァージョンの確認

cat /etc/debian_version

mpd.confの設定

これも上記のユングさんのページに詳しいので、解説は省略。感想だけ。
僕の環境では audio_buffer_size は1024が一番いいです。値を小さくするとちょっとギスギスした感じが強調されてしまうし、ディフォルト値ではちょっとピンボケかなという感じなので。buffer_before_playを100%というのは過激だけど、使えそうです。

limits.confの設定

僕の環境ではそれ程顕著な効果はなかったのですが、一応ご紹介。

vi /etc/security/limits.conf

以下の行を最後に追加

@audio - rtprio 99
@audio - memlock unlimited
@audio - nice -19

sysctl.confの設定

上記のlinuxmusiciansのページに紹介されています。設定してみましたが、僕の環境では差を感じませんでした。

vi /etc/sysctl.conf

以下の行を追加

fs.inotify.max_user_watches = 524288

fs.inotify.max_user_watchesはデフォルトが8192。ファイルシステムイベントを監視数という意味らしいですが、これを大きくする。なぜこの値を524288にすると音に影響するのかは不明。
「cat /proc/sys/fs/inotify/max_user_watches」でディフォルト値を確認できます。「cat /proc/sys/fs/inotify/max_user_interfaces」というのもあるのだけど、こちらは関係ないのですかね。

vm.swappiness = 10

vm.swappiness はディフォルトが60、範囲が0~100までで、値が高いほどスワップしまくりらしいので、10に設定してスワップを抑止しようということ。ディフォルト値は「cat /proc/sys/vm/swappiness」で確認できます。
メモリのスワップ状況は free で確認できます。

Filesystems

  • Encryptionは使わない。 Voyage MPDでは使っていないので問題なし。
    dpkg -l でインストール済のパッケージは確認できます。
  • fstabに noatime を設定。
    noatime というのは Linuxのファイルシステム標準設定のファイルの読み込み時のアクセスタイムの記録を回避するオプション。「外付け音楽用USBディスクの自動マウント」の項に書いたように設定済です。
    有りと無しで音に影響があるのか比較していないので、効果の程はよくわかりません。

irq priority

これは、とても効果的なのですが、設定は結構ややこしいです。
とりあえず、効果を確認するには top と入力。リアルタイムなプロセスの状況が表示されますので、頻繁に動いているオーディオ関連のプロセスの優先度を99にしてみる。「chrt -t -q 99 PID」。topの使い方はインタネット検索して調べて下さい。q で終わらせることができます。


演奏中のtop画面です。top はエスケープコードを使って全画面表示しているので、上手くログがとれない。安易だけど、カメラを使って撮影しました(Voyage MPD のサイトの表示はどうやったのかしら)。
クリックして拡大するとなんとか文字は見えると思います。各項目の意味はこのページを参照して下さい。
このタイミングでは、MPD関連の処理は全て最優先でリアルタイム動作していることが確認できます。
MPD の CPU負荷がえらく低いのですが、こんなものなのですかね。


ちゃんとやる方法は「lsusb」でusbパスの設定状況を確認。たとえば以下のように表示されたとすると

Bus 002 Device 002: ID 221b:0001  
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 13fd:1340 Initio Corporation Hi-Speed USB to SATA Bridge
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001がUSBディスク、Bus 002がUSB接続のオーディオデバイスと調べることができます(バス2は何も表示されていませんが、抜き差しすれば確認できます。ちょっと乱暴ですが)。

次に「cat /proc/interrupts」で割り込みの割り当て状況を確認。

           CPU0       
  0:      26523    XT-PIC-XT        timer
  1:        891    XT-PIC-XT        i8042
  2:          0    XT-PIC-XT        cascade
  3:          1    XT-PIC-XT        uhci_hcd:usb4
  4:          1    XT-PIC-XT      
  5:          1    XT-PIC-XT      
  7:     100030    XT-PIC-XT        ehci_hcd:usb1, uhci_hcd:usb2
  9:          0    XT-PIC-XT        acpi
 10:          1    XT-PIC-XT      
 11:        468    XT-PIC-XT        uhci_hcd:usb5, eth0
 14:          0    XT-PIC-XT        ide0
 15:        202    XT-PIC-XT        ata_piix, uhci_hcd:usb3
NMI:          0   Non-maskable interrupts
ERR:          0

これで、irq7にusbディスクとオーディオデバイスが割り当てられていることがわかります。

次に 「ps aux」

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         4  0.0  0.0      0     0 ?        S    12:56   0:00 [sirq-timer/0]
root      1100  0.0  0.0      0     0 ?        S    12:56   0:00 [irq/7-ehci_hcd:]
root      1105  0.2  0.0      0     0 ?        S    12:56   0:01 [irq/7-uhci_hcd:]
mpd       2020  0.7  0.4  56264  9916 ?        Ssl  12:57   0:05 /usr/bin/mpd /etc/mpd.conf

のレベルをあげることにします。やり方は

vi /etc/rc.local
chrt -f -p 99 `pgrep sirq-timer/0`
chrt -f -p 99 `pgrep irq/7-ehci_hcd:`
chrt -f -p 99 `pgrep irq/7-uhci_hcd:`
chrt -f -p 99 `pgrep mpd`

と追加する。
ehci_hcd、uhci_hcd はそれぞれUSB1.0と2.0のドライバを指定の意味です。

psコマンドはシステムの状態を確認するのに便利なコマンドですね。ps aux、ps ax、ps alx などという通常の指定の他に
ps -eLo pid,cls,rtprio,prio,nice,cmd|grep -i “irq”
と入力すれば、割り込みプロセスのプロセス番号、クラス、リアルタイム優先度、優先度、ni値、コマンド名を一覧表示できます。
このページに詳しい説明があります。

pci latency

これも、効果的だと思います。
lspci -nn(lspciとlspci -nを組み合わせもよい)でメーカ番号:モデル番号を表示。

00:00.0 Host bridge [0600]: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub [8086:2770] (rev 02)
00:02.0 VGA compatible controller [0300]: Intel Corporation 82945G/GZ Integrated Graphics Controller [8086:2772] (rev 02)
00:1c.0 PCI bridge [0604]: Intel Corporation N10/ICH 7 Family PCI Express Port 1 [8086:27d0] (rev 01)
00:1d.0 USB Controller [0c03]: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 [8086:27c8] (rev 01)
00:1d.1 USB Controller [0c03]: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 [8086:27c9] (rev 01)
00:1d.2 USB Controller [0c03]: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 [8086:27ca] (rev 01)
00:1d.3 USB Controller [0c03]: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 [8086:27cb] (rev 01)
00:1d.7 USB Controller [0c03]: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller [8086:27cc] (rev 01)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev e1)
00:1f.0 ISA bridge [0601]: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge [8086:27b8] (rev 01)
00:1f.1 IDE interface [0101]: Intel Corporation 82801G (ICH7 Family) IDE Controller [8086:27df] (rev 01)
00:1f.2 IDE interface [0101]: Intel Corporation N10/ICH7 Family SATA IDE Controller [8086:27c0] (rev 01)
00:1f.3 SMBus [0c05]: Intel Corporation N10/ICH 7 Family SMBus Controller [8086:27da] (rev 01)
01:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 02)

と表示されますので、 8086:27c8がオーディオデバイス、8086:27ccがUSBディスクとなります。

2011/01/27 追記
何故そう判定したか説明不足でしたので、補足します。
「lspci -v」で USB Controller のIRQを取得できますので、それと直前の項で説明した「cat /proc/interrupts」のIRQが一致するものを捜せばいいです。

あとは irq priority の場合と同じで

vi /etc/rc.local
setpci -v -d 8086:27c8 latency_timer=ff
setpci -v -d 8086:27cc latency_timer=ff

と追加する。USB Controller の irq を取得できますので、それと直前の項で説明した ps

Voyage MPD もサーバの一種ですから、チューニングという面では一般のサーバと変わらないということになります。そういう意味では、ちょっと古いけど、このページは参考になるかもしれません。

これが我が家の居間の Voyage MPD ミュージックサーバです。
Shuttle社のX-27DというAtom内蔵のベアボーンを使い、メモリは2Gbytes。2TBytesのハードディスクを外付けしています。Window 7、Ubuntu 10.10 jpとマルチブートしていますが、今やほとんど Voyage MPD専用です。ファンは静かなものに交換し(拡大するとファンをつけたあとがみえますね)、静音化しています。
音楽用ファイルは隣の部屋のパソコンにマスターがあって、マルチブートしている Ubuntu 10.10 jp で samba でファイル共用するという方式で管理しています(Window 7 は音楽専用にチューニングして、ネットワーク機能を取り外してしまったので)。
この構成、シンプルなのはいいのだけど、問題点が一つ。曲を鳴らすのにいちいち隣の部屋に行って、操作しないといけないこと。どうしたものかなぁと思案中です。
もう一台、古いCeleronのノート機にも Voyage MPDをインストールし、試してみましたが、音はこちらの方が圧倒的にいいですね。

(PC_Audio)   2010/12/17

コメントする

Voyage MPDの使い方(4)

Voyageの基本的な設定

  • タイムゾーンの変更
    これは、めずらしくコマンド実行後はGUIでできます。
  dpkg-reconfigure tzdata
  • rootパスワードの変更
    セキュリティの為にはやっておいた方がいいでしょう。rootでログインして、以下のコマンドを実行。
  passwd
  • 一般ユーザの追加
    後述する自動ログ用に必要です。パスワードは適当に作成して下さい(自動ログオン用なので、設定内容は削除することになります)。以下のコマンドを実行
  adduser ユーザー名
  • rootログイン時にリードオンリーモードの解除
    /.bashrcに以下の行を追加。どうせrootでログインする時はシステムの変更をする時だけだから、この方が合理的です。
  remountrw
  • /.bashrc にaliasを登録
    これは僕の環境の例ですが以下を登録しています。
  alias mpdr='/etc/init.d/mpd stop;/etc/init.d/mpd start-create-db' 
  alias mnts='mount -t vfat /dev/sdb5 /mnt/win;chmod 777 /mnt/win' 
  alias umts='umount /mnt/win' 
  alias mpcs='mpc update;mpc listall|mpc add;mpc play' 
  • 日本語キーボードを認識させる(キーマップの変更)
    これはパッケージのインストールが必要です。やり方はこのページを参照。

(12/25 追加 ここから) 僕の環境(Voyage MPD)では、console-common console-dataのインストールした後のGUIの設定はEUCの範囲を超えているというエラーになってしまって(ディフォルトのUSキーボードに戻される)、上手くいきませんでした。
ただし、インストール終了後 と入力すれば、キー配列を日本語に変更できます。

  loadkeys jp106

再起動すると、もとに戻るので、/etc/rc.localにユーザ設定用のスクリプトを追加することにしましょう。

  vi /etc/rc.local
  /usr/bin/loadkeys jp106

を入力して保存。これで次回の起動からはランレベル3の終わりに rc.local が実行され、日本語キーボードマップが設定されます。英語キーボードの場合は

  loadkeys us

で OK です(ディフォルトがusキーボードなので、多分この設定は不要だと思いますが)。/.bashrcに設定してもよいのですが、一般ユーザでログインした時を考慮して、rc.local に設定しました。
(12/25 追加 ここまではVoyage MPDの12/19日版では不要です。)

ここから先はユングさんがこのページで提案されている電源を入れるだけで立ち上がる音楽サーバを Voyage MPD で実現する方法の紹介です。

Voyageで自動ログオンする方法

  • パスワードの削除
    追加したユーザ名(xxx)の行のパスワード部分を削除。 パスワード部分は実際はもっと長いのですが、編集しました。
  vi /etc/shadow 
  (from)xxx:$6$54AzfhpQ$CtfJI9v.YvKd5244DRC9ghZwxyuSV.Xp.:14953:0:99999:7::: 
  ( to )xxx::14953:0:99999:7::: 
  • 外付け音楽用USBディスクの自動マウント
    fstabに以下の行を追加。デバイス名(/dev/sda1)は環境に合わせて適当に変更。
    事前にマウントポイントを作成(mkdir /mnt/sda)しておく必要があります。
    ファイルシステム(ext2)はデバイスにあわせて適当に設定。
    オプションの noatime はチューニング用の設定。後述します。
    mount -a で fstab の変更内容を確認できます。
  vi /etc/fstab 
  /dev/sda1		/mnt/sda	ext2	noatime		0	0 
  • 自動ログオン
    xxxはユーザ名。tty端末の1番ではなく2番を使ってログインしています(6番まで使えます)。
    ALT+Fnで端末n番の画面に移れますので、ALT+F2で結果を確認できます。tty1番を使わなかったのは、 root用に残したため。
  vi /etc/inittab 
  (from)2:23:respawn:/sbin/getty 38400 tty2 
  ( to )2:23:respawn:/bin/login xxx /dev/tty2 2>/dev/tty2 
  • IPアドレスの固定化
    Voyage MPDのIPアドレスの割り振りは毎回ランダムに変わるという特徴があります。 これでは自動化できないので、以下の通り対処。
    この例では192.168.0.050 というIPアドレスに固定化しています。
    address以降の行はお使いの環境に合わせて追加、変更して下さい。
  vi /etc/network/interfaces 
  (from)iface eth0 inet dhcp 
  ( to )iface eth0 inet static 
        address 192.168.0.32 
        netmask 255.255.255.0 
        network 192.168.0.0 
        broadcast 192.168.0.255 
        gateway 192.168.0.1 
        dns-nameservers 192.168.0.1 
  • オーディオデバイスのデバイス番号の固定化
    これはオーディオデバイスが一つしかなければ、不要です。 従って、マザーボード組み込みのチップとそれ以外のオーディオ用デバイスの二つだけという場合、 一番簡単な方法はBiosでマザーボードの組み込みチップを無効にする方法です。ただBiosでは無効に出来ない という環境の場合に、alsa-base.confの
    「# Prevent abnormal drivers from grabbing index 0」以降の対応するドライバのoptionsを次の通り 編集します。
  cat /proc/asound/cards

  と入力してalsaがサウンドデバイスと認識しているものを表示、確認。 

  1 [default        ]: USB-Audio - USB Audio CODEC 
                       Burr-Brown from TI               USB Audio CODEC  at usb-0000:00:13.0-3, full s
  2 [Modem          ]: ATIIXP-MODEM - ATI IXP Modem
                       ATI IXP Modem rev 1 at 0xe8004800, irq 11 

   次に

  vi /etc/modprobe.d/alsa-base.conf 
  (from) 
  options snd-atiixp-modem index=-2 
  options snd-usb-audio index=-2 
  (to) 
  options snd-atiixp-modem index=2 
  options snd-usb-audio index=1 

alsa-base.confのコメントを読むとindex=-2のままでコメントアウトを外せばOKと読めるのですが、僕の環境 では以上の通り設定する必要がありました。

  • ボタン一つで電源オフ
    電源ボタンを使う方法は Voyage MPD がどうやってもボタンを認識してくれないので諦めました。 次善の策として /etc/inittab の ctrl+alt+del設定を使う方法とkbrequestを使う方法の二つがあります。
    簡単なのは /etc/inittab の ctrl+alt+del の内容を変更する方法です。初期状態では
  ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now 
  となっていますので、これを 
  ca:12345:ctrlaltdel:/sbin/shutdown -t1 -h now 
  と変更する。 

次に[pause]キーで電源オフする方法
上の kbrequest を使う方法。[pause]キーで電源断させます。この方法は「Voyageの基本的な設定」で述べた console-common console-dataをインストール済であることが前提です。
まず、[pause]キーのキー番号を調べます。

  showkey
  [pause]キー

を押します。僕の環境では 119 と表示されますので、これがキーコードです。次に loadkeys に kbrequest
が[pause]キーだよと教えるためのファイルを準備します。

  vi /etc/mykey
  keycode 119 = KeyboardSignal

と入力、保存します。

  vi /etc/inittab
  #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." の行を
  kb::kbrequest:/sbin/shutdown -t1 -h now

と変更します。
次に、/etc/rc.local に以下の行を追加します。

  vi /etc/rc.local 
  /usr/bin/loadkeys /etc/mykey 

これで再起動すれば、rootでログイン直前の状態で [pause]ボタンを押すだけで電源断できるようになります。

ここまで、やってみて再起動し、MPDクライアントからアクセスしてみて気がついたのですが、一般ユーザでの自動ログインは不要ですね。MPDデーモンはrootでログインしなくても起動されていて、音楽は聴けます。終了もログイン画面で[pause]ボタンを押せばできますので、一般ユーザでのログインはいらないようです。システムをメンテナンスしたい場合は、rootでログインすればいいでしょう。

(PC_Audio)   2010/12/16

コメントする

Voyage MPDの使い方(3)

ようやくMPDのセットアップにたどりつきました。ここから先はVoyage MPDのウェブサイトの情報に基づきます。

その前に、Voyage Oneはログイン直前に全てのファイルをReadOnlyに設定変更しています。これをRWモードに変更する必要があります。
mount -o remount,rw /
でもできますが、voyageでは
remountrw
というコマンドが用意されているので、これでやるのが簡単でしょう。
忘れると、「viで設定ファイルの編集を完了、さあ実行しようとしたら、ReadOnlyファイルは更新できないよというメッセージが出て、ガックリ」というハメになりますので、ご注意。
設計思想に反しますが、.bashrcに「remountrw」を設定しておくというのがお勧めです。やり方は後述します。

さて、本題に戻ります。
上記のページの「Mini setup recipe」というタイトルの直後にNFSにある音楽ファイルをVoyage MPDで聴く方法が紹介されていますが、これは自宅のマシンは全てLinuxで、家庭内LANを構築しているような、Linuxパワーユーザ向きの記述です。ここでは、とりあずMPDを動かすために、Windows環境でUSBメモリをに音楽ファイルをコピー。インストールしたVoyage MPDシステムにもってくる方法を書きます。

音楽ファイルの仮準備

ルートに /music というディレクトリを作成。ついでにUSBメモリのマウントポイントも作成。

mkdir /music /mnt/win

これらをMPDの音楽用ディレクトリとプレイリスト用ディレクトリとして使います。ディフォルトの設定を使わない理由は後述。

次にWindowsでNTFSにフォーマットしたUSBメモリに「CD」という名前のディレクトリ作成。
「CD」にMPDで聴きたい音楽ディレクトリ又はファイルをコピー(日本語名が含まれていてもかまいません)。
Voyage MPD側にUSBメモリを差し替えます。「usbメモリを認識したよ」というOSのメッセージが出ますので、マウント。

mount -t ntfs -o nls=utf8 /dev/sdb5 /mnt/win

オプション(-o)で nls=utf8 で日本語の文字コードはutf8だよと指定しています。
「CD」の内容を/musicにコピー。

cp -r -R /mnt/win/CD/* /music

コピーしたディレクトやファイルはルートのみが読み書き実行できる設定になっている(このままではMPDはリード出来ません)ので、パーミッションを変更。

chmod -R 777 /music/*

(12/23 744を777に修正。766でもいいかもしれません。何故、744で駄目なのかは謎です^^;;;)
以上で音楽ファイルの準備は完了です。

Voyage MPDのページでは音楽ファイルを置いてあるディレクトリをMPDの音楽ディレクトリにリンクする方法が紹介されています。残念ながらNTFSフォーマットのデバイスにはこの方法は使えません(上記したパーミッション設定変更が/mnt/sdb/CDに対して無効となるため)。
というわけで、曲を追加するたびに上記のような操作はやってられないので、何か工夫が必要です。どう対策したかについては後述します。

MPDの設定

とりあえず音が出るかどうかの確認は簡単です。
上記の通り音楽ファイルを設定したとすると

vi /etc/mpd.conf

とMPDの設定ファイルを開いて、

music_directory		"/var/lib/mpd/music"  (13行目)を
music_directory		"/music"


bind_to_address		"localhost"  (69行目)を
#bind_to_address	"localhost"

に変更するだけ。

あとは試しに Voyage MPD のページにあるように

/etc/init.d/mpd restart

Now update music library, add all songs to playlist and play.

mpc update
mpc listall | mpc add
mpc play

と操作して、音が出るかどうか試してみて下さい。これで音が鳴れば幸運です。さっそくクライアントの設定にとりかかりましょう。

駄目だった場合、僕の経験では原因は次の二種類のどちらかです。

  • 音楽ライブラリのセットアップ異常
    何らかの理由で、music_directoryにセットアップ(リンクを含む)した音楽ファイルのパーミッションが一般ユーザアクセス禁止になっています。 「ls -l」で設定内容を確認(パーミッションコードがnn0だと駄目)し、対処(chmod nn4)して下さい。パーミッションの設定については解説すると大変なので、インタネットで検索して下さい。
  • Alsa の音楽デバイスの認識と mpd.conf のalsa の設定が不一致
    Alsaのデバイス番号は「cat /proc/asound/cards」で確認できます。これを mpd.conf のalsa の設定行「 device “hw:0,0” # optional」(180行目)のhw:n,0のnの部分に設定して下さい。

他にも不一致となる要因はあるかと思いますが、よくわからないのでパス。インタネットで調べて下さい。 オーディオ用デバイスの確認用には

lspci -v | grep -i audio
aplay -l
aplay -L

などのコマンドが使えます。

(12/23 追記)問題が MPD 側にあるのか、alsa側にあるのかは、alsa内蔵のaplayで演奏して見れば、切り分けられます。aplayで音が出るようであれば、MPD側の原因です。

mpd.conf の他のパラメータは丁寧なコメントが付いていますので解説は不要かと思いますが、多少補足しておきます。

playlist_directory		"/var/lib/mpd/playlists"
db_file			"/var/lib/mpd/tag_cache"
log_file			"/var/log/mpd/mpd.log"

これらのファイルが置かれる/var/lib/mpd/や/var/log/mpd/には容量制限がかかっています(容量はdfコマンドでチェックできます)。容量が大きくなりそうな時は適当な場所に移動した方がいいでしょう(music_directoryをルートにもっていったのも同じ理由です)。何れも所有者名がmpd、グループ名がaudioであることも要注意です(music_directoryは両方ともroot)。

#log_level			"default"

トラブル調査にはverboseを指定するのが有効かもしれません。

#follow_outside_symlinks	"yes"
#follow_inside_symlinks		"yes"

これは両方とも、コメントアウトした方がいいと思います。outside_symlinksは外部のハードディスクに音楽ファイルを置く場合は必須、inside_symlinksは内部の参照用に有効です。

#mixer_type			"software"

クライアントから音量調整する場合はコメントアウト。

#audio_buffer_size		"2048"
#buffer_before_play		"10%"

チューニング用にコメントアウトして、値を変えて最適値を設定するのがお勧め。詳細は後述します。

filesystem_charset		"UTF-8"
id3v1_encoding			"UTF-8"

ファイルやディレクトリの日本語コードがEUCの場合、“EUC-JP”を設定すれば、クライアント側が日本語が扱うことが出来れば正しく日本語表示されます。 この件はここでシンさんに教えて頂きました。シンさん、ありがとうございました。


クライアント側の設定

Voyage MPDはタグを設定していないMP3やFLACファイルに対して、ファイル名を適当に解釈して勝手にタグにするという仕様(バグ)であるようです。
ちゃんと処理してくれるようであればいいのですが、僕の環境ではとんでもないタグの内容となり、不便です。mpd.confを

metadata_to_use	""

とすればOKかなとやってみましたが駄目ですね。
ファイル名は正しく表示できるのでクライアント側でメタデータを無視するよう設定しています。

クライアントは種類が多いですし、仕様もいろいろですから、省略。
僕は Windows版の GMPC を使っています。このソフトはメタデータを無視する機能を持つので、上記の問題にスムーズに対応できます。

(12/23) 追記 クライアント側の設定でコメントが必要なのはipアドレスです。
ホスト側で「ifconfig」とやれば、現在使われているipアドレスが表示されますので、それを設定してやればいいです。ホストのipアドレスを固定化することもできます。次の記事を参照して下さい。

(PC_Audio)   2010/12/14

コメントする

Voyage MPDの使い方(2)

tarボールからインストール

先に進める前に、前回説明を省略したtarボールからインストールする方法。
Alsa音源をBootCDでは認識できず、起動中にハングしてしまう。内蔵ディスクをBootCDは認識しないのでインストールできない。といった場合にこの方法でインストール出来ます。

tarボールからのインストールはLinux用のマシンがあることが前提になりますが、Voyage One の BootCDで立ち上げたPCはれっきとしたLinuxマシンなので問題なくイントールできます。
以下は僕の持っている古いノートパソコンにインストールした例です。このパソコンは80GBのハードディスクを内蔵しています。Biosはメーカの専用機によくあるのですが、極めてシンプル。外付けの機器からの起動設定は全く出来ないようになっています。
内蔵のDVDからの起動はできるので、Voyage Oneの BootCD をセット、起動させます。login名はroot、passwordはvoyageでMPDと同じ。
voyageという名前の仮想のホームディレクトリにログインされますので、ここを使ってtarボールを解凍し、インストールスクリプトを起動するという方法をとります。

あらかじめターゲットディスクのフォーマットとマウントポイントの作成を行っておくのは、Voyage MPDのBootCDからのインストールと同じ。

  fdisk /dev/hda 
  mkfs.ext2 /dev/hda1 
  tune2fs -c 0 /dev/hda1 

  mkdir /tmp/cf 

次に、tarボールをVoyage Oneの BootCD システムに持ってくる。Windowsでtarボールをusbメモリ(下記の例ではNTFSでフォーマットしたもの)に書き込みそれをVoyage Oneにマウントするという方法をとります。
usbメモリを差し込んで

  mkdir /mnt/win
  mount -t ntfs /dev/sda5 /mnt/win
  cp /mnt/win/voyage-mpd-current.tar.bz2 ./

でokです。マウントするデバイス名(/dev/sda5、NTFSフォーマットのUSBメモリの場合、何故かsdx5となる)はfdisk -lで調べておく。

次に

 tar --numeric-owner -jxf voyage-mpd-current.tar.bz2

で解凍する。

あとは解凍したディレクトリの中にインストール用のスクリプトも含まれるので、それを実行すればいい。

  cd voyage-mpd-current.tar
  ./usr/local/sbin/voyage.update

「./」という表現方法はDOSといっしょでカレントディレクトリからという意味です。ちなみにディレクトリの区切りはDOSでは「\」、Linuxでは「/」と変わります。

簡単でしょ。
フォーマットはディスク全体を使うのであれば

./usr/local/sbin/format-cf.sh /dev/sda

でもできます。こちらを使う場合は、当たり前ですが、tarボール解凍後に実行して下さい。

インストールスクリプトのパラメータの指定は、Voyage MPDのBootCDを使った方法と差はありません。

1 - Specify Distribution Directory

はスクリプト側で気を利かせて ./voyage-mpd-current.tar をディフォルトにしてくれます。

ここで、本題に戻そうかと思ったけど、少し寄り道をします。CUIでLinuxを操作するための必須ノウハウ。


オーディオファイルのためのLinux Tips

コンソール機能

Voyage MPDの操作は全てコンソールからCUIで行いますので、楽をするには、とても重要です。

  • 入力補完機能
    voyage-mpd-current.tar
    などという長いファイル名を打ち込むのは大変ですね。
    これを省略入力する方法があります。
    「/v」まで入力したら「Tab」キーを押す。あとはBash(Linuxのコンソール機能)の入力補完機能で自動的 に補ってくれます。「/usr/local/sbin/format-cf.sh」なんていうの も「/u+[tab]+lo+[tab]+sb+[tab]+fo+[tab]」で済みます。 キータッチの数で28が12と半分以下になりますので、お勧め。
  • ヒストリー機能
    コンソール入力時に上下の矢印キーを押してみて下さい。直前のコマンド入力の履歴が次々と表示されます。 コマンド入力中に一文字だけ間違えでOSに怒られて変更したい時やちょっと前に入力した操作を (多少変更して)もう一度実行させたいという時にとても役にたちます。コマンドラインでは左右の矢印キーで カーソル位置を移動。削除や後退キーも使えますので、修正して、そのまま改行で実行できます。
  • エイリアス機能
    一連のコマンドを一つにまとめる機能。
alias mpcs='mpc update;mpc listall|mpc add;mpc play'
と登録しておけば、「mpcs」と入力しただけで、上記三つのコマンドを実行してくれます。
  • 英語キーボードと日本語キーボードの非互換
    101キーボードと106キーボードでキー位置が違う。
    特殊記号でこれからのセットアップでよく使うのは 「|」=「}」、「*」=「(」、「:」=「+」、「=」=「^」というところですね。これは慣れるしかありません。

    と書いたのですが、日本語キーボードを認識させる方法がありました。後述します。

vi の使い方

これからのMPDのセットアップとチューニングで vi というエディターを使います。
このソフト、Linux初心者でWindows下の軟弱なエディターに慣れた身には、前代未聞、空前絶後といいたくなるようような操作性の悪さを誇ります。
起動方法は「vi ファイル名」と簡単ですから、何も知らないで、うっかり起動すると、どのキーを押しても文字入力できない、意味不明にカーソールが動く、画面最下行に変なライン表示が現れにっちもさっちもいかない、あげくの果てに、どうやってもエディターを終わらせられない など、とんでもないめにあいます。いくらLinuxのコンソール操作といっても、もうちょっと楽なエディターはあるので、「emacs」とか、「gedit」とかやってみましたが、Voyage MPD には入っていないようですね。諦めて、簡単なviの使い方をメモしておきます。

  • コマンドモードと編集モード
    二つのモードを切り換えて使います。
    コマンドモードではカーソルの移動、ファイルの保存、文字の削除、エディターの終了などを行う。
    コマンドモードでは文字入力はできず、編集モードに切り換え、読み込んだテキストの編集を行う。
    起動直後はコマンドモード。
  • コマンドモードと編集モードの切り換え
    コマンドモード → 編集モード i(カーソル位置からの文字入力)
    編集→コマンド [esc]
  • コマンドは一文字以上のキー入力
    ここがviの偉いところですが、この入力に使われるキーは標準のキーのみで、ファンクションキーとか Windowsキーといったヤクザなキーは使えません。[BackSpave]、[Delete]も使えません。 矢印キーとページアップ、ダウンキーのみOK)。
    これはviがどんな環境でも使えるエディターという位置付けなのでこういう仕様ということですが、 不便なのは確か。
  • コマンドモードのコマンド
    編集に直接かかわる操作は一文字か二文字の入力で操作できます。
  hjkl	:	カーソルの移動(左、下、上、右) 
  x	:	一文字の削除
  X	:	後退
  yy	:	一行コピー
  dd	:	一行カット
  p	:	コピーした内容を挿入
  [ctrl]+f	:	前ページ
  [ctrl]+b	:	次ページ

ファイルの操作にかかわるコマンドは画面最終行に「:」文字を入力したところでガイドが出るので、あとのコマンド文字を入力し改行キーを押せばよい。

  :w[enter]	:	ファイルの保存
  :q[enter]	:	エディターの終了
  :q![enter]	:	変更内容を保存せず強制終了

従って、編集モードで何かやっていて、どうにももとに戻せない。もう一度やり直したいという時には、あわてず騒がず、[esc]キーを押して、:q![enter]とすればよいです。これは非常に重要。

編集モード中に矢印キーとページアップ、ダウンキーは使えます。本来のviの設計思想からいうとルール違反なのかもしれないけど、これは便利。あと、削除、後退キーを編集中にできるようにしてくれると楽なのだけど、ダメなようですね。

ファイルシステム

Linuxはマルチユーザが前提のUNIXベースのシステムですので、Windowsとはファイルシステムの考え方が大きく異なります。

  • ドライブが存在しない
    Windowsのように記録媒体(ハードディスクやUSBメモリ)単位にドライブという仕組みで管理するのでなく、全てのデバイス(記録媒体)はルートの下にマウントして使います。デバイスのマウント用に /mnt というディレクトリが用意されています。たとえばNTFSフォーマットのUSBメモリは /dev/sda5 というような名前をもちますので、これを
    mount -t ntfs /dev/sda5 /mnt/win
    という具合にマウントして使います。/mnt/winは「mkdir /mnt/win」であらかじめ作成しておく。
  • 全てのディレクトリ、ファイルは所有者名をもち、所有者は誰がそのディレクトリ、ファイルにアクセス可能か指定できる
    これはWindowsの勝手きままなファイルシステムに慣れた身には面倒な仕組みですが、マルチユーザの環境を意識すれば当たり前の話ですね。
    ただし、ルートでログインすれば、なんでもできます。アクセス権の変更はchmod、所有者の変更はchownです。
  • ディレクトリ名、ファイル名は大文字と小文字を区別
  • 主な操作コマンド
  cat   オペランドの内容を表示 
  mkdir ディレクトリの作成 
  cp    ファイル、ディレクトリのコピー、ディレクトをコピーするときは -r を指定、-R を指定すれば再帰的に(一番下のディレクトリまでまとめて)処理できます 
  rm    ファイル、ディレクトリの削除、-r でディレクトの指定、-rfでディレクトリ内にファイルが存在していても強制的に削除 
  mv    ファイル、ディレクトリの移動 
  ls    ファイル名、ディレクトリ名の表示、-l で所有者やアクセス権を表示 
  df    ファイルシステムの状態の表示 

なお、cdでディレクトリの移動が出来て、./や../でカレントディレクトリ、親ディレクトリが指定できるのはDOSといっしょですね。

本題に入る前に、大分長くなったのでMPDのセットアップ方法は次回。

(PC_Audio)   2010/12/12

コメントする

Voyage MPDの使い方(1)

プライベートな事情で一年間サイトの更新を中断していましたが、再開します。
「RubyでMIDI」の記事も再開するつもりですが、ただいまパソコンを使ってオーディオを聴くことに熱中していて、しばらくはそちらの話題で書きます。

タイトルの「Voyage MPD」というのはLINUXを使ったオーディオ専用のシステムですが、内容については以下のサイトに詳しいので、そちらをリンク。

手持ちのCDは全部パソコンのHDに放り込み、オーディオ装置をパソコンに繋いで聴いているので、これは面白そうだなぁと思い、試してみました。
CUIのLINUXは10数年前に試したことがあるだけ。まったくの初心者レベルですが、どうにか動いたので、以下その方法を忘備録用のメモとして残しておきます。

基本的にはVoyage OneのREADMEとVoyage MPDのサイトの情報通りの操作で、インストール、動作させることができます。操作もCUIと英語という点を除けば、かなりの部分は自動化されていてインストールそのものに関してはほとんど改行キー押すだけで済みます。
Voyageは組み込み用のLinuxなので、軽量ですからインストールは5分もかかりません。とりあえず立ち上げて音を出すだけなら30分もあれば十分です。ただREADMEやサイトの情報に書かれていない難所がいくつかあって、ここにひっかかると、途方にくれて、手も足も出ないということになります。以下この難所を中心に紹介します。

準備するもの

  • 音楽再生用のパソコン
    性能は要求されないので、使わなくなったパソコンで十分です。音楽専用にはなるべく静かなPCがいいです。 僕はAtom組み込みのベアボーン(Shuttle X-27D)を使っています。英語キーボード(101型)は神経衰弱状態に ならないためにはあった方がいいです。

    これは今回重宝したPFU社HappyHackingキーボードです。
    クリックして、拡大すると、配列をみることができます。ファンクションキーなど余分なキーは持たない、[tab] キーが大きい、[ctrl]キーが左端中央など完全にUNIX仕様で、Windowsでは不便なので物置にしまっていたのをひっぱり出してきました。Linuxではほんとに便利に使えますね。


  • ALSA対応のオーディオインターフェース
    これがないとVoyage MPDのBootCDで起動もできません。使っているオーディオインターフェースがALSA対応 しているかどうかはこちらでチェックできます。僕はUSB接続のフェーズテックのHD-7Aを使っています。
    音源がAlsa対応しているのに、Voyage MPDのBootCDの起動が途中で止まってしまうこともあります(僕の場合 はパソコン部屋のメインのデスクトップ機がONKYO SE200Limitedを使っていますが、これで発生しました)。 この場合の対応方法は後述。
  • Voyage MPDをインストールするディスク
    トラブルを回避するには、専用のもの用意した方がよいでしょう。Voyage MPDは250MB位ですので、BIOSが 対応していれば、USBメモリでもOKです。
    パソコンに内蔵されたハードディスクにインストールするには注意が必要です。Voyage MPDのsnapshot (Live CD)版は何故か内蔵のハードディスクを認識しません。Voyage OneのBoot CDは認識しますので、 これとVoyage MPDのtarボールを使ってイントールは可能です。この方法についても後述します。上記した Voyage MPDのBootCDで起動が止まってしまう場合もこの方法を使います。
  • ISOイメージファイルのダウンロード
    Voyage MPDのサイトにあるsnapshot版の Live CD をダウンロード。 snapshotというのはLinuxのバックアップをとる仕組みのことで、ここを参照。
    上に書いたVoyage OneとVoyage MPDのtarボールを使ってイントールする場合は Voyage One の Live CD と Voyage MPDのtarボールをダウンロードして下さい。
  • Boot用のCDを作成(ISOイメージファイルをCDに焼き付ける)
    ダウンロードしたISOイメージをCD化します。方法はインタネット検索すれば、解説するサイトが山ほどある ので省略。僕はImgBurnを使いました。

Voyage MPDのインストール

  • Boot用のCDでVoyage MPDを起動
    CDをBootの優先順位一番になるようBIOSを設定する必要があります。これもやり方は機種によって違うし、 基本はインタネット検索で調べられるので、省略。
  • Voyage MPDにログイン
    login名はroot、passwordはvoyageです。これはREADMEに書いてありますが、まじめに読んでないと、ここで 立ち往生することになります。

ログインまで問題なく出来れば、あとはREADME通りです。インストールに入る前に

fdisk -l | less

と入力してイントール用のデバイス名を確認して下さい(/dev/xxx)。
xxxの部分はシリアル接続ディスクやUSB接続のディスク(メモリを含む)では、sdn(nはLinuxが認識したディスクの順番にaからアルファベット順に割り当てられる)となります。
「fdisk -l」というのは接続されているディスクデバイスの詳細を表示するコマンド。
「| less」の「|」はパイプという機能で、コマンドの出力結果をその次のコマンドに引き渡す。英語キーボードで「|」は日本語キーボードの改行キー左の「}」となりますのでご注意。
「less」は一画面に納まらない表示内容を複数のページに分けて表示させるコマンドです。
LinuxはUnix互換のOSですので、このようにコマンドを組み合わせていろいろな操作をするのが特徴です。 lessで画面の操作はspaceキーで次のページ、bキーで前のページ、qキーで表示の終了(コマンドラインに戻る)となります。環境しだいですが、上下の矢印キー行で、単位のスクロールもできます。

  • テンポラリーのルートを作成
    mkdirはディレクトリ作成コマンド。
  mkdir /tmp/root 
  • ルートにインストール用ファイルシステム(filesystem.squashfs)をマウント
    squashfsというのはLinux用の圧縮読み取り専用のファイルシステム。loopというのはパソコン上で イメージ・ファイルを操作したい場合に使われるオプション。
    と書いても何のことやらでしょう。詳しくは「linux squashfs」、「linux squashfs」などとして検索して 調べて下さい。
  mount -o loop /live/image/live/filesystem.squashfs /tmp/root 
  • ルートに移動
    cdはChangeDirectoryコマンド。これだけ、たまたまMSDOSといっしょですね。
  cd /tmp/root 
  • インストール用のマウントポイントを作成
    このcfというのはコンパクトフラッシュの意味ですかね。Voyageは組み込み用のOSなのでハードディスクを使う ことが少ないので、こういう名前がディフォルトになっているのでしょうか。
  mkdir /tmp/cf 

以上でイントール元のディレクトリは作成できました。
次にインストール先のディスクをフォーマット

/usr/local/sbin/format-cf.sh /dev/xxx

xxx の部分は先の「fdisk -l」で調べたデバイス名を入れて下さい。ディスク丸ごとフォーマットしてしまいます。都合の悪い時はtarボール版のREADMEにあるように

fdisk /dev/sda
mkfs.ext2 /dev/sda1
tune2fs -c 0 /dev/sda1

というコマンドの組み合わせでやって下さい。

  • インストール用スクリプトの起動
  /usr/local/sbin/voyage.update 

あとはメニューの案内通り操作していけば、OKです。

1 - Create new Voyage Linux disk
2 - Update existing Voyage configuration
3 - Exit

1を選択。次に

1 - Specify Distribution Directory
2 - Select Target Profile
3 - Select Target Disk
4 - Select Target Bootstrap Loader
5 - Configure Target Console
6 - Partion and Create Filesystem
7 - Copy Distribution to Target
8 - Exit

というメニューが表示されます。
入力行にディフォルトの内容が表示されますので、ほとんどそのまま改行でOKです。
ディフォルトでいいのは

「1 - Specify Distribution Directory」は/tmp/root
「4 - Select Target Bootstrap Loader」はgrubとPartion 1
「5 - Configure Target Console」はConsole Interface(メニュー2)
「6 - Partion and Create Filesystem」はPartion Flash Media and Create Filesystem(メニュー1)

以上は改行だけで済みます。 指定するのは

「2 - Select Target Profile」でメニュー6番の generic PC
「3 - Select Target Disk」で先程フォーマットしたデバイス名(/dev/sdx)とパーティション番号(1がディフォルト)とマウントポイン(/tmp/cfがディフォルト)

を指定します。順番に選んでいって、最後に7を選ぶと、実行するかどうか聞いてくるので y でインストールを開始します。
Filesystemの作成中にFile accounting Informationを聞いてきますので、改行でOK。
3~4分で終わりインストルは終了します。

メニューに「6 - Partion and Create Filesystem」があるので、READMEに書かれているフォーマットは必要ないのではないかと思いますが、未確認です。

あとは再起動すれば、めでたくVoyage MPDの開始となります。
再起動は reboot、いったん電源を落としたければ、poweroff とコンソールから入力。

当然、再起動時にはBiosの設定が Voyage MPD をインストールしたハードディスクから起動できるように設定されている必要があります。

長くなったのでここで休憩。

(PC_Audio)   2010/12/11

コメントする

top page     previous page     next page

mail