Articles

Voyage MPD 無線LANアダプタ(GW-US300MiniS)の接続

備忘録用のメモです。音は悪くなる方向なので、お勧めするわけではありません。


玄柴MPDシステムを導入したらスイッチングハブの有線LAN端子が足らなくなったので、Atom機をUSB接続の無線LANアダプタ(Planex GW-US300MiniS)を使って無線化してみました(親機は Planex MKZ-W300NH2)。インタネット、情報は山ほどあるのですが、Voyage(Debian squeeze)でどうすればいいのという情報は無かったので、情報を残して置きます。

GW-US300MiniSの場合、ドライバのインストールが必要です(機種によっては最初からVoyageに入っている場合もあるようです)。やり方は簡単で、ドライバのビルドと無線の設定だけ。アダプターに必要なドライバは使っているチップで決まります。GW-US300MiniS の場合は Ralink RT2870 というチップを使っているので、これでドライバを捜します。Ralink のサイトでダウンロードできるらしいのですが、何故かアクセスできないので、ドライバ名 RT2870USB(RT2870/RT2770)で検索。
以下の場所にありました。

というところです。新しい方がよかろうと考え最新版を使いました。

ソースにPlanex GW-US300MiniSのデバイスIDを追加する必要があります。ソースの修正は最新版の20100709の場合は以下の通り。要注意なのは修正するソースの在り処がヴァージョンによりことなること。

/2010_0709_RT2870_Linux_STA_v2.4.0.1/common/rtusb_dev_id.c
	{USB_DEVICE(0x2019,0xED06)}, /* Planex Communications, Inc. */
の下に
	{USB_DEVICE(0x2019,0xAB24)}, /* Planex GW-US300MiniS */
を追加

ダウンロードしたtarボールを解凍、ソース修正して、make、make install でドライバを組み込めます。
インストール完了後、iwconfig で ra0 が認識されていればok。

要注意なのは「apt-get install linux-headers-`uname -r`」と「ln -s /usr/src/linux-headers-`uname -r` /lib/modules/`uname -r`/build」を実行しておくこと。
当然、gcc、make などは install されている必要があります。

あと、暗号化方式をWPAにする場合は以下の二つのパラメータを有効(y)に変更する。僕はWEPにしたので変更していません。

/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/config.mk
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=n

# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n

設定ファイルは /etc/Wireless/RT2870STA/RT2870STA.dat と /etc/network/interfaces になります。 以下のパラメータを設定しました。

/etc/Wireless/RT2870STA/RT2870STA.dat
CountryCode=JP
SSID=(アクセスポイントのSSID)
AuthMode=WEPAUTO
EncrypType=WEP
Key1Type=1 (0:16進数でキーを記述、1:平文)
Key1Str=(パスワード)

/etc/network/interfaces
auto ra0
iface ra0 inet static
wireless-key s:(パスワード、親機の裏に印刷されていました)
wireless-essid (アクセスポイントのSSID、親機の裏に印刷されていました)
        address 192.168.0.33
        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

変更後、ifup ra0 でアクティブに出来ます。案外簡単ですね。
暗号化方式でWPAを撮る場合は、/etc/network/interfaces に「wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf」を追加し、キーを取得するコマンド「wpa_passphrase ssid passphrase」でキーを取得し、/etc/wpa_supplicant/wpa_supplicant.conf を設定する必要があるみたいですが、僕は使っていないので、省略します。wpa_supplicant をキーにしてググれば情報はいろいろ出てくると思います。

(PC_Audio)   2011/04/16

コメントする

玄柴MPD開発日記(2)

X月X日

ついにプルトニウムが漏水から検出される。海外メディアの最初の予測(メルトダウン)が証明されたというでしょうね。まあ、そんなにひどい汚染にはならないだろうというのが救いだけど、まだ、予断は許されない状況。以前の記事で書いたけど「2001年宇宙の旅」HALの逆襲が原子力版になって日本で現実化したということなのだと思います。皆、ボーマン状態。コンピュータのプラグを引き抜くかわりに原子力発電所を止めろと騒ぐ方々が元気付くという感じになっているけど、本当にそれが正解なのかしら。

Debianをインストールした後の処理は簡単でしたね。ネットワークの設定、Emacsのインストール、日本語化、Sambaの設定、AlsaとMPDのインストールというところですが、以下の通り。AlsaとMPDのインストールだけなら、10分もあれば出来ます。ノートラブルでした。
事前に eSATA をマウントし(mkdir /mnt/sdw ; mount /dev/sda1 /mnt/sdw)、/root に samba.conf(玄柴のUbuntuに入っているもの) と mpd.conf(Voyageで使っているもの)を eSATA の /root にコピー(Ubuntuシステムで cp /etc/samba/smb.conf /mnt/sdw/root ; cp /mnt/sdw/etc/mpd.conf /mnt/sdw/root)しておきます。

ipアドレス固定化、nameserverアドレスの変更
nano /etc/network/interfaces
内容は Voyage MPD と同じ
nano /etc/resolve.conf
192.168.0.1
reboot
初期設定
apt-get update
apt-get upgrade
Emacsのインストール
apt-get install emacs
日本語化
apt-get install ttf-kochi-gothic ttf-kochi-mincho ttf-kochi-gothic-naga10 ttf-sazanami-gothic ttf-sazanami-mincho
apt-get install language-env manpages-ja
dpkg-reconfigure -plow locales
user-ja-conf          # ユーザの場合
set-language-env -R   # ルートの場合
.bashrcに追加
LANG=ja_JP.UTF-8 # <<< この行を追加
reboot
mkdir /mnt/sda /music1
chmod 777 /music1
fstabの設定  # 以下は僕の環境の場合です
/dev/sda4       /mnt/sda        ext2    noatime         0       0
//192.168.0.3/cd2 /music1 cifs username=yo,password=,uid=root,file_mode=0644,dir_mode=0755,iocharset=utf8 0 0
Sambaの設定
cp /mnt/sdw/root/smb.conf /etc/samba/
/etc/init.d/samba restart
Alsaのインストール
apt-get install alsa-base alsa-utils
MPDのインストール
apt-get install mpd mpc ncmpc
cp /mnt/sdw/root/mpd.conf /etc
/etc/init.d/mpd restart

nano というのは組み込みのエディターです。Windowsに慣れている怠惰な身にはviよりは操作は楽。
以上僕の環境での操作ですので、適宜変更する必要があります。AlsaとMPDのインストールは apt-getで済みますので楽ですね。
日本語化に関してはここのサイトを参考にしました。

とりあえず出してみた音ですが、素晴らしいです。Voyage MPD と遜色なし。これならチューンアップすれば、問題なく使えそうです。
以前、Vineのパッケージを使って自力でMPDをコンパイルしてレベル3で動かすという方法(ユングさんのサイトで紹介されていたもの)を試したことがあります。なかなかの音でしたが、「Voyage MPD と切り換えて使うという程ではないな」という感想でしたが、「こちらは切り換えていいな」という感じです。深みとゆとりのある音で、繊細さが強調される Voyage MPD に対して十分対抗出来ると思います。チューンアップについては日をおいてやるつもり。


玄柴MPDをセットアップして撮った写真です。手前の真っ黒けの四角い箱が玄柴です。箱の手前はメガネ型の電源ケーブル、左横にSDカードとシリアル接続用のUSBケーブル、後ろにUSB(音源接続、白)、eSATA(外付け2THD、黒)、LAN(緑)のケーブル。

ディスプレイ表示はシリアル接続している Windows 7 の TeraTermの画面です。こんな感じでCUI画面が表示されますので、操作感は Voyage と同じです。

演奏中の Top画面を表示しています。使用メモリは92MBとコンパクト。CPU負荷も1.7%と低いです。拡大すればどんな感じで動いているかご覧頂けるかと思います。チューニング前の設定なのでMPDの優先度は他と同じになっています。

こうやって写すとケーブルだらけ。緊急治療室の患者という感じですね(^^;;。


X月X日

海水も汚染されていたみたいですね。予想されていたことだけど。
まあ、神の火=原子力に手を出した劫罰なのだろうけど、何で日本ばかり爆弾と発電の両方の責め苦を味わう運命なのと言いたくなるなぁ。
ドイツは今回の事故を受けた対策委員会に哲学者と宗教家を参加させているというのだけど、ちゃんと神の怒りを人の全ての知恵を集めて対応しよういう構成にするとは。さすがですね。

ARMはHPTは無い、PCIも無い、USBは見えない、というようなアーキテチュアなので、あまりチューニングの余地はありません。コントロール値、limit値の変更を行ったが変化はなし、優先度の変更(mpd、cics)も変化なし、レイテンシータイマは設定できず、というところです。
OSSはアーキテチュアが不一致ということで、コンパイルエラーになります。

唯一、効果ありかなと思ったのは、MPDのビルド。やり方はほとんど Voyage MPDと同じなのでコードの紹介は省略します。ここにシェルスクリプトを置いておきます(ダウンロードすればそのまま使えます)。
変更点は「libmad mp3 decoder plugin」はARMに対応していないので、インストールしない、最適化の機種指定をカット(ARMはサポートされていないようなので)。
15.0→17.0にすることで、ますます音の透明感が増したかなと思いました。最適化パラメータの値でも変わります。どの値がいいか、試行中です。

チューニングした玄柴MPDの音ですが、クラッシックの大きめの編成の曲ではベストですね。最近、愛聴している2枚のCDの試聴記です。


Mozart- Piano Concertos No. 20 & 27-Mitsuko Uchida- Cleveland Orchestra

内田光子がクリーブランドオーケストラを弾き振りしたモーツアルトのピアノ協奏曲です。とても良い演奏だと思います。特にオーケストラがいい。小編成、古楽器のような原色を強調した音色が特徴的ですが、内田のピアノにピッタリ合っています。オーケストラの演奏はインマゼールとかブリュッヘンのモーツアルトを意識しているのかな。シンプルだけどダイナミック。
20番は短調の曲ですが、あまりそれを強調しない演奏。とても自然です。27番は枯れた味わいの曲と言われますが、こちらもそれを強調しない生き生きとして演奏です。
録音はこのオーケストラの音色がクリアに聞き取れる、素晴らしくハイフィデェリティ。木管やピアノのの強い響きと柔らかい響きが交代する様子がよく分かり、とても印象的です。弦楽器もどういう奏法で演奏しているか目に見えるような録音ですね。ピアノの音色の変化も綺麗に聞き取れます。



SHOSTAKOVICH SYMPHONY Nー.14-MusicAeterna - Teodor Currentzis

「この曲、暗いなぁ」と思っていてあまり聞いたことがなかったのですが、この演奏は凄いです。とても演劇的。シェクスピアの悲劇の上出来の演出を見たような感銘を与えてくれます。
指揮者、歌手とも知らない人だったのですけど、レコ芸の年間大賞をとっているので、試しにと思って聞いたのですが、感心しました。結局、この曲はショスタコービッチの作曲のいろいろな要素を集大成したものだとよく分からせてくれる演奏です。「ショスタコービッチって、ほんとに不思議な作曲家だったのだなぁ」という感想。
CDの解説がとても興味深いです。この曲はショスタコービッチの「シンフォニア・ダ・レクイエム」だということとブリテンの「戦争レクイエム」からの影響を見事に解明していて読みごたえのあるものでした。
録音は非常にクリア。弦楽器、打楽器、声という変則的な編成ですが、バランスがいいです。打楽器のダイナミックレンジがよく録れています。声はおそろしくリアル。歌劇場での録音のようですが、ホールの雰囲気もよく出ているなぁと思いました。


こうやってみると、「Voyage MPD の音の良さの秘密はシンプルなOSの構成だったのだなぁ」とよく分かりました。Topで表示したようにCPU負荷、メモリサイズとも共に軽い。特にメモリサイズは VoyageMPD では150MB位いきますので、随分少ないです。
実は上記の試聴をしながら日本語化のためのapt-get install を平行処理させるという乱暴なことをやったのだけど、僕の耳では音には変化はありませんでした。CPU もネットワークも余裕の状態ということでしょう。
あと、ハードの構成も重要だと思いました。グラッフィックがないというのは大きい。LAN と USB と eSATA とシリアル(USB 1.1)だけというシンプルな構成は強いですね。Atom機と比較してこの優位性はかなりのものです。オーケストラなど大編成の曲をクリアに再現できるのは、これが理由ですかね。
まあ、いずれにしても、もう過剰に高性能なパソコンを使ったシステムとは縁を切るのが良さそうです。
「ファンレスに出来ないパソコンなんてオーディオ用には意味がないなぁ」という感じですね。

(PC_Audio)   2011/04/10

コメントする

玄柴MPD開発日記(1)

X月X日

地震発生n日後。大災害に唖然呆然としてテレビばかり見ているのは精神衛生に良くないと考え、近所のPC Depotに出かける。まだ計画停電前だったので、結構賑わってました。自作パーツの展示コーナーの片隅に「玄柴」と印刷されたこぶりの白い箱を発見。何だろうと思い手にとってみる。裏箱に「本製品は組み込み開発者向けキットを一般販売したものです。SheevaPlug開発キットにeSATAポートを追加したものであり、基本仕様としてはSheevaPlug開発キットに準じます。製品の性格上、開発、使用に関するサポートはございません。」、基本仕様は Kirkwood SoCプロセッサ(1.2GHz)、メモリ512MB/DDR2、NANDフラッシュメモリ512MB、外部インターフェース LAN(1GB)、USB2.0×1、USB1.1×1、SDスロット×1、eSATA×1とあります。お値段は17K円。玄人指向の製品。
「うーむ。面白そうだなぁ。」、あやうく衝動買いしそうになったが、必死にこらえて、自宅に戻り、ググる。

こういう製品ですね。さすがキワモノシリーズという名前をつけるだけあって、情報は山ほどあります。残念ながら Voyage は動かないようですが、いろいろな可能性はありそうです。ファイルサーバとしては問題なく使えそう。組み込み用のDebianをインストールできるみたいだから、Alsa/OSSとMPDを自前で用意すれば、Voyage MPDと同じような環境を作ることもできそう。試してみるかなと思う。

しかし、原発のテレビの報道ひどいですね。爆発が起きていて、どう考えても最悪の事態。まだ大丈夫と強弁する国と東電をとことん追求すべきなのに、曖昧な情報のまま、落ち着いて行動しましょうというばかり。肩書は立派な原子力関係者がコメントするが、まったく信用できない。海外の情報の方がよほどマシだね。

X月X日

地震発生後一週間、SheevaPlugの販売サイト(GLOBALSCALE)でインタネット購入するかまよったけど、結局、近所でget。計画停電が始まり、PC Depot も節電モードで暗い。休日だけど、先週より客も少ない。大変だなぁ。


買って帰って、早速開封。名前の通りかなり大きめの電源プラグという感じですね。ファーストインプレッションは玄柴/最初のセットアップを参照。プロのライタの記事なので、とてもよく書けています。付け加えることは何もなし。
さっそく Windows7マシン と繋ぐ。USBを使ったシリアル接続(JTAGというらしい、ドライバのインストールと設定が必要)となる。接続ソフトはTeraTermを使う(なぜか僕の環境ではPuttyはシリアル接続できませんでした)。TeraTermの設定を行い、起動したら、問題なく接続。Ubuntuが立ち上がっていることを確認。
次に samba の動作を確認。これも samba.conf は最初からセットアップされているので簡単です。Sambaを起動する(/etc/init.d/samba start)だけでWindowsとファイル共用できました。
「なんだ、簡単だなぁ。どこがキワモノなのだろうか。」という感想。しかし、その後が大変だった。


原発問題はようやく事態の重大性が明らかになってきて、水をかけだしたが、自衛隊のヘリコプターの無様な消火映像を何度も繰り返し放映するのには閉口。これじゃ海外メディアにバカにされるよね。あんなヘッピリ腰で戦争になったらホントに国が守れるのだろうか。

X月X日

地震発生後、10日経過。計画停電が続くが、夜、停電されると手も足も出ないですね。ガスストーブも電気でコントロールしているので動かない。暗く寒い夜を過ごすことになり、布団に入って寝るしかなし。まあ被災された方々のことを考えれば呑気な話だけど。

組み込み用のDebianをSDカードにインストールし、MPDを動かすことにする。内蔵のフラッシュに入っているUbuntuを使うという手もありそうだけど、内蔵フラッシュは容量が500MBと小さいのが問題。VoyageはDebianベースなので、容量の大きいSDカードを使い、Debianを起動する方がよかろうと考えました。
8GB CLASS10のSDカードを購入。1.3K円なり。安くなったものですね。昔20K以上だったのに。
とりあえず、玄柴/SDカードからブートさせるを参考にして使ってみる。問題なく動作。
この時、printenvでU-boot(ドイツ軍の潜水艦みたいな名前ですが、関係なくて、intelマシンでいうと Bios + BootLoader をかねたファームウェアソフトのことです。まあ普段は深く潜行していて、突然、災厄をもたらすという意味では、ユーボートに似ていないこともないです^^;;;)の環境変数のログを保存しておいた。後でこれでなんとかリカバリできたので、この操作、非常に重要です。
調子にのって、同じサイトの別の記事玄柴/SDカードにdebianをインストールを参考にして、debianをインストール。時間はかかったけれど(3時間)、問題なくインストール完了、ログインもできた。

「よしよし」とfdisk -lで構成を確認。
「あれeSATAディスクが消えちゃった、どうなっているの。そういえば、立ち上げ時に変なメッセージが出ていたな。」と気が付いた。

これが悪夢の始まりでありました(^^;;;。

「まあ、しょうがない。もとに戻すか。」と考え、添付のCDROMからU-Bootソフトを解凍。フラッシュメモリに書き込む(bubt)。ところが、今度は起動しなくなる。25時過ぎ、普段なら寝ている時間。ジタバタしてもしかたがないと思い、寝ることにする。

X月X日

翌日。原発はいよいよ大気に放射能が漏れだす事態。自分のことは棚に上げ(^^;;;、「最初から分かっていることではないか。なんで計画的に対応できなかったのか。」という感想。

起動できなくなった原因はDebianをインストールするため、環境変数を書き換えたためだと気が付く。元に戻す方法はないのかいなと調べ、Debianインストールに参照したサイトに玄柴/U-bootの環境変数をリセットという情報があるのを発見。printenvしたデータと合わせて、なんとかリカバリ。Ubuntuは立ち上がるようになる。しかし、依然、eSATAは認識しない。リセットしても、元に戻らなくなったので、アセル(もっと計画的にやるべきだったなぁ^^;;;)。

U-bootのコマンドプロンプトでU-bootのversionを確認。
「あれ、元のヴァージョンより古くなっている。」
CDROM添付のU-bootは玄柴にインストールされていたU-bootとは違うということに気が付く。
「これって、あんまりではないか。」

キーワードをいろいろ変えてググる。なんと最初にリンクした製品紹介のページに玄柴製品版のU-bootが置いてあるのね。ここここをたどってたどり着きました。さすがキワモノ、苦労をかけさせてくれるね。
なんとか、Ubuntu、eSATA可というフリダシに戻り、ひと安心。さて、これからどうするか作戦を立てることにしました。

ググッた情報では、eSATAを認識するにはインストールしたDebianカーネルのリコンパイルが必要とあったので、やってみました。実は、このコンパイルは不要で、正解はアクセスしたサイトにあったのだけど、見逃して、余計な道草を食ってしまうことになる。
最初、ここの情報をもとに試してみました。ログインできたが、「fdisk -l」。依然、eSATAは認識されず。
しかし、カーネルコンパイルって時間がかかりますね。インストールの倍位の時間が必要。夜はじめるは終わるのは早朝です。今日は時間切れ。明日があるさ(^^~;;;。

X月X日

原発は漏水からも放射能を検出。まあ当たり前だね。最初から予想される結論にたどり着くのに二週間近くかかるとは、おかしいなぁ。日本の原子力関係者、皆、口裏合わせて、不都合な真実を隠していたということなのだろうね。 現場で頑張っている技術者、作業員皆様が可哀相だなぁ。

リコンパイルは最新版でやらないと駄目なのかなと考え、ここの情報を元に再チャレンジ。再び半日我慢の子。次の日、コンパイル完了。
早速、確認。ログインはできるけれど、eSATAは認識できず。ようやく、Debianの問題じゃなさそうと気が付く。

結局、元に戻って前回リンクしたCoDEコミュニティのスレッドに正解があるとわかる。
eSATAをSDカードにインストールしたDebianに認識させるにはこのサイトからダウンロードしたU-bootを使えば、OK。
「なんだDebianカーネルのコンパイルは不要なのか。無駄な時間を使ったなぁ。」ここまでたどり着くのに約一週間。さすがキワモノ。手ごわかったです。

いろいろググって分かったこと。

U-boot
U-bootは機種、仕様条件に合わせてコンパイルして使うのが基本的な考え方。本家のサイトではソースコードのみの配布。
SheevaPlug用には製造元のGlobalscale TechnologiesのサイトからSheevaPlug対応のU-boot(u-boot-3.4.27.zip)をダウンロードできるが、これもソース提供。
U-bootはBiosの役割をもっているので、コンパイル時にハードの認識、起動可能なハードなどの条件設定がされる。コンパイル済で提供されるU-bootを使うとき要注意なのはこの点。たとえば、コンパイル済で玄柴添付のCDROMに入っているものはeSATA対応していない。
ダウンロードできるコンパイル済版は上記のCoDEコミュニティのスレッドに紹介されているもの、Martin Michlmayrさん(ARM版Debianのメインテナー)のサイトからのリンク先にあるもの、PlugComputerのU-bootボード、前回の「玄柴/SDカードにdebianをインストール」で紹介されている「どぶおサイト」に置いてあるもの、前述した玄人指向製品紹介のページにあるものなど。
自分でコンパイルしないのであれば、この中から条件にあったものを捜すしかないです。
uInitrd/uImage
OSのインストーラ兼ブートローダみたいなもの。Debian用のものは公式版joeyh版の二種類ある。
公式版は今年の2月 Debian squeeze の正式リリースに対応したものなので、これを使うのが無難。
要注意なのはuInitrd/uImageはその機能(ローダ)から動作可能なU-bootが限定されること。Biosのバージョンが変わればOSが動かなくなるのと同じ。
CoDEコミュニティのスレッドのU-bootは公式版のuInitrd/uImageを動かすことが出来るのでこれを使う。

以上、だらだらと書きましたが、手順を以下に。uInitrd/uImageの転送にはtftpdを使っています。「—」の部分は改行キーを乱打してU-bootのコマンドライン(というのかしら)を出力させます。

初期値に戻す
resetenv
reset
-----
setenv bootargs console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none
setenv bootcmd 'nand read.e 0x800000 0x100000 0x400000; bootm 0x800000'
setenv ethaddr=00:50:43:01:94:75
saveenv
reset
-----
ブートファームの変更
setenv serverip 192.168.0.3
setenv ipaddr 192.168.0.35
setenv netmask 255.255.255.0
bubt uboot.bin
saveenv
reset
-----
Debianのインストール
setenv mainlineLinux yes
setenv arcNumber 2678
saveenv
reset
-----
tftpdを使ってuInitrd(ファイルシステム)とuImage(ブートローダ)を読み込む
setenv serverip 192.168.0.3
setenv ipaddr 192.168.0.35
tftpboot 0x01100000 uInitrd
tftpboot 0x00800000 uImage
setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most
bootm 0x00800000 0x01100000
インストール処理開始
インストールパッケージはファイルサーバとSSHを指定
再起動後
setenv bootargs_console console=ttyS0,115200 root=/dev/mmcblk0p2 rw
setenv bootcmd_mmc 'mmcinit; mmcinit; ext2load mmc 0:1 0x01100000 /uInitrd; ext2load mmc 0:1 0x00800000 /uImage'
setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_mmc; bootm 0x00800000 0x01100000'
saveenv
reset

僕の環境での操作ですので、環境に合わせて適当に変更する必要があります。
ここから先は簡単でした。長くなったので分けます。

(PC_Audio)   2011/04/09

コメントする

シェルスクリプトで Alsa と OSS の切り換える

シンさんがマルチブートで対応する方法を書いていらっしゃいますが、シェルスクリプトで行うこともできます。以下その内容を解説します。

本題に入る前に OSS のビルドを自動化するシェルスクリプトです(内容は以前の書き込みと同じですが、最後にsed を使い mpd.conf を書き換える処理を追加しています)。

#!/bin/bash
# OSSビルドスクリプト
#     build_oss.sh
#
########################################################################

# 必要なパッケージの導入
apt-get install -y binutils libgtk2.0-0 sed gcc libc6
apt-get install -y build-essential linux-headers-`uname -r` gawk libtool libgtk2.0-dev
apt-get install -y libesd0 libsdl1.2debian-oss
# OSS ソースのダウンロード
apt-get install -y mercurial
cd /opt
hg clone http://opensound.hg.sourceforge.net:8000/hgroot/opensound/opensound oss-devel
# ビルド用のディレクトリを作成
cd ~/
rm -rf oss42build
mkdir oss42build
cd oss42build/
# OSSのビルド(configure と make)
NO_WARNING_CHECKS=yes /opt/oss-devel/configure --enable-libsalsa=NO
make
make deb
# OSSのインストール
mv ./oss-linux-4.2-2004_i386.deb ../
cd ..
ln -s /usr/src/linux-headers-`uname -r` /lib/modules/`uname -r`/build
dpkg -i oss-linux-4.2-2004_i386.deb
dpkg-reconfigure linux-sound-base
# mpd.conf の編集
cat <./scr.sed
/^#\(audio_output .\)$/{
N
s/#\(audio_output .\n\)#\(\t\+type\t\+\"oss\"\)/\1\2/
}
s/^#\([^#]\+\"My OSS Device\"\)/\1/
s:^#\([^#]\+\"/dev/dsp\).*\(\".\+\)$:\10\2:
/^#\tmixer_control\t\"PCM/{
N
s/#\(.\)$/\1/
}
EOF
sed -i -f ./scr.sed /etc/mpd.conf

OSSとAlsaの切り換えはこのスクリプトの後半の部分を利用します。
linux-sound-baseで設定された内容をチェックし、それに合わせて、OSSをインストールまたはリムーブし、sed を使い /etc/mpd.conf を書き換えているだけです。/dev/dspの機番を指定している正規表現(\10\2)は環境に合わせて変更する必要があります。\1と\2の間の数字が機番になります。
sedと正規表現はLinuxなどのUnix系OSを使いこなすには非常に便利なツールですね。ググれば、情報はいくらでもあるので、説明は省略します。

#!/bin/bash
# Alsa-OSS切り換えスクリプト
#     xoa.sh
#
########################################################################

dpkg-reconfigure linux-sound-base

if [ -e /etc/modprobe.d/linux-sound-base_noOSS.conf ] ; then
  # OSSをリムーブ
  apt-get remove oss-linux
  # mpd.conf の編集
  cat <./scr.sed
/^\(audio_output .\)$/{
N
s/\(audio_output .\n\)\(\t\+type\t\+\"oss\"\)/#\1#\2/
}
s/^\([^#]\+\"My OSS Device\"\)/#\1/
s:^\([^#]\+\"/dev/dsp\).*\(\".\+\)$:#\1\2:
/^#\tmixer_control\t\"PCM/{
N
s/\(.\)$/#\1/
}
EOF
elif [ -e /etc/modprobe.d/linux-sound-base_noALSA.conf ] ; then
  # OSSをインストール
  dpkg -i oss-linux-4.2-2004_i386.deb
  # mpd.conf の編集
  cat <./scr.sed
/^#\(audio_output .\)$/{
N
s/#\(audio_output .\n\)#\(\t\+type\t\+\"oss\"\)/\1\2/
}
s/^#\([^#]\+\"My OSS Device\"\)/\1/
s:^#\([^#]\+\"/dev/dsp\).*\(\".\+\)$:\10\2:
/^#\tmixer_control\t\"PCM/{
N
s/#\(.\)$/\1/
}
EOF
else
  echo "Select Alsa or OSS"
  exit 1
fi
sed -i -f ./scr.sed /etc/mpd.conf
reboot

毎回、OSSをインストール・リムーブすることになり、あまりスマートでないのですが、回避方法が分からないのですよね。ご存じの方、教えて下さい。まあ、アームにカートリッジを付け替える手間を考えれば簡単かなと考え(^^;;;、ご紹介しました。
なお、Windows 環境でシェルスクリプリストを編集する時は日本語の文字コードを UTF-8、改行コードを LF に設定する必要があります。

(PC_Audio)   2011/04/02

コメントする

コパチンスカヤ「ラプソディア」

帯(というのかしら)の台詞が凄い。

天使か、魔女か、巫女か、
    はたまた異次元からの使者か----

一目見て聴いたら忘れられない
    パトリシア・コパチンスカヤが
  音楽で描く目も眩むような自画像

天使→魔女→巫女→異次元
その通りで、次元がくるくる変わる。
自画像というのは、このアルバムがコパンチスカヤの生い立ちを描く音楽を集めたものだから。共演者は家族や同じ郷里の仲間たち。

一曲目「ヒバリ」という民謡ベースの即興曲ではじまるのですが、凄い迫力。いきなり次々と繰り出されるパンチにノックアウトされるという感じ。父親のツィンバロン演奏も素晴らしい。
両親とのアンサンブルによる「ドイナとホラ・マリタ」もいいです。ロマ(ジプシー)音楽の魅力をあますところなく開示する。
エネスコのヴァイオリンソナタとリゲティのデュオはビックリ。この二人の作品がこんなにも土着の音楽だったとは気が付かなかったなぁ。
ツィンバロンとの共演のクルタークとラベルも面白い。ラベルのツィガーネは「ええ、こういう曲だったのか」とビックリ。クルタークは作曲家への共感がよくわかる演奏です。
ホラ・スタカートのスタカート演奏のテクニックは唖然呆然という世界。
そしてクリンは異次元の世界ですね。
最後のカルシャリ。なるほど、全てはここから始まっているのねと分かる。

CDのブックレットのカバーの裏にパトリシアの幼少のころの両親との写真があります。ごく普通の女の子。「なんでこの子が異次元の使者になっちゃったの ?」と感嘆しました。

(review)   2011/03/27

コメントする

ネット・バカ


家族が帰宅難民となり電話での連絡がとれずメールで安否確認、翌日は快晴の日だったけどゴルフの予定は中止、買い出しにいったらものはなし、計画停電でローソクをつけながら食事、などいろいろありましたが、被災地皆様方の大変さを思えば、長閑な話でしょうね。こういう時はジタバタしてもしょうがなかろうと考え、地震と原発と停電の騒然たる環境下で、「ネット・バカ」という本を興味深く読みました。

タイトルで誤解されそうですが、インタネット及びコンピュータが我々の思考(行動)に与える影響に関して真面目に論じた本です。著者は英文学(!)を専攻したコンピュータジャーナリスト。
原題は「The Shallows: What the Internet Is Doing to our Brains」。Shallowsというのは浅瀬のことですが、ここでは我々の思考が浅く、散漫になった状態を表す。著者は、サブタイトルにあるように、インタネットが我々の脳を注意散漫にして、深く物事を考える習慣を奪いとっていると主張する。

と書くと、著者はネット嫌いのアンチインタネットの原理主義者かと思われるかもしれませんが、逆です。第一章で著者の履歴が紹介されていて、「読書人間として成長し、パソコンとの付き合いは、20代後半アップル社マックの初期モデルに出会ってから。しかし、どんどん深みにはまって、パソコンとインタネット無しでは日常生活も、仕事も出来ない身」となってしまっている生活が紹介されています。

「身につまさせられるなぁ。」という感想

そして、第一章の終わりで
『ところが2007年のいつかの時点で、わたしの情報の楽園に、疑惑のヘビが滑りこんできた。一台で孤立していた昔のPCよりも、はるかに大きな影響を、ネットが自分にもたらしていることにわたしは気づき始めたのだ。・・・脳の働き方自体がが変わりつつあるように思えたのだ。ひとつのことに数分かそこらしか集中できなくなっていることを、不安に思い始めたのはそのころだった。最初わたしは、脳の年齢的な衰えのせいだろうと考えた。だが気づいた。わたしの脳は、単にふらふらさまよっているだけではない。飢えていたのだ。ネットが与えてくれるのと同じだけの量を食べさせてくれと、それは要求していた—-そして与えられれば与えられるほど、さらに空腹になるのだった。コンピュータから離れているときも、わたしはメールをチェックしたり、リンクをクリックしたり、ググってみたりしたくてたまらなかった。接続していたかったのだ。・・・インタネットはわたしを、高速データ処理機械、いわば人間版HALへの変えたのだとわたしは気が付いた。
以前の脳が恋しくなった。』

「やっぱりそうか。変だと思っていたのは自分だけじゃなかったのね」という感想


著者は第二章以降でこのテーマを丁寧に論証する。人の脳組織仕組み、道具を使うことがそれにどう影響するかの歴史的考察、本(読書)が人の思考にどう影響したかの論述、コンピュータの特質を解説、本を読む時の思考方法(深く直線的)とコンピュータ、ネットを使った思考方法(浅く、注意散漫)の違いを分析、グーグルの経営者達は何を勘違いしているかの明快な記述、などなど。

二つ引用します。まず、グーグルの経営者の思い違いについて。
『それにしてもペイジの見方は極端だ。彼にとって、脳はコンピュータに似ているというだけではない。コンピュータそのものなのだ。彼の前提は、グーグル社が知性とデータ処理効率とを同等のものと見なしていることの理由とも取れるだろう。脳がコンピュータであるならば、知性は単なる生産性の問題になる—-頭蓋骨のなかで、どれだけ多くのデータのビットを、どれだけすみやかに集積回路に流せるか。人間の知性は機械の知性と見分けのつかないものになる。』

「なるほどもっともだなぁ。でもグーグルなしでは何もできなくなった我が身をどうしよう。」という感想

もう一つ。人がパソコンとネットに頼りすぎることによる問題点について。
『・・・ソフトウェアプログラムの明確なガイダンスに頼れば頼るほど、作業に集中できなくなり、最終的に学習される内容も少なくなる。・・・論争家であればもっと辛辣にこう言うだろう。ソフトウェアが賢くなれば、ユーザはバカになる。
・・・われわれは助けてくれるフレンドリーなソフトウェアを欲している。そうしないわけがあるだろうか。だが、骨の折れる思考作業をソフトウェアに譲り渡すにつれて、われわれはみずからの脳の力を、微細だが大きな意味を持つかたちで減じているようなのだ。溝堀人がシャベルを掘削機と交換すれば、作業効率は上がるだろうが彼の筋力は弱まる。同様のトレードオフが、われわれが心的作業を自動化する際にもおそらく起こるだろう。』

「ウィンドウス・バカ(^^;;;という本も書けそうね。」という感想


そしてエピローグは極めて印象的に次のような記述で終わります。
『「2001年宇宙の旅」の世界では、人間はきわめて機械的になっていて、登場人物のほとんどは機械も同然になっている。それこそが、キューブリックの予言の核心である—-コンピュータに頼って世界を理解するようになれば、われわれの知能のほうこそが、人工知能になってしまうのだ。』

「人口知能じゃなくて、人口無能かもね。」という感想


僕がこの本を読んでいて思い浮かべたのは、同じ映画のエピローグの部分で、「ツアラツストラはかく語りき」の冒頭をバックミュージックにサルが石を使って牛の骨を砕くシーン。骨が飛び散り、道具を発見したサルの得意そうな表情。
人は様々な道具を発明したが、同時にその発明した道具支配されているということでしょう。

この地震も我々がどんなに道具(インフラ)に依存した生活を送り、それなしでは生きていけなくなっているか実感させてくれますね。原発騒ぎは、まさに コンピュタHALの反乱のようなもので、今、日本は国をあげてボーマン役をやっているということなのでしょうね。

(review)   2011/03/18

コメントする

メモリファイルで MPD 再生する

今回のTIPSはリスクなしで試すことができます。効果の程は環境次第ですかね。ただしメモリを盛大に消費します。CD一枚分まとめて聴くとなると、2GB位必要です。
掲示板でimaszok さん、yan さんとやりとりしていて気がつきました。お二人に感謝します。こういうノウハウがネットワークのやりとりで見つけられるというのは PCオーディオの面白さですね。

理屈はこのページ(容量が動的に変化するRAMディスクを使うには)を参照。
Voyage MPDでは上記記事の「tmpfs専用のマウントポイント(/dev/shm)」が最初から作成されています(dfコマントで確認できます)。

root@voyage:~# mkdir /dev/shm/music_mem
root@voyage:~# ln -s /dev/shm/meusic_mem/ /music
root@voyage:~# cp -r /music/BIS\ Sampler\ 1992 /dev/shm/music_mem
root@voyage:~# sync;echo 3 > /proc/sys/vm/drop_caches

(/musicは音楽用ディレクトリ)
これで音楽ディレクリにある「BIS Sampler 1992」(試聴用の愛聴CD)をメモリにもってくることが出来ます。
メモリ、SSD、LAN、USBディスクに置いてある音楽ファイルを比較試聴してみましたが、メモリ再生が一番いいかなと思いました。ただ、僕の環境ではUSBディスク以外の音の差はごく僅かです。

メモリ(tmpfs)再生 >= SSD = LAN >>> USBディスク 

という感じです。

「sync;echo 3 > /proc/sys/vm/drop_caches」でキャッシュをクリアしています。
キャッシャをクリアしてあるか、してないかで微妙に音が変わるのも不思議ですねぇ。
キャッシュとは何かについては、このページを参照して下さい。掲示板での yanさんと僕のやりとりも参考になるかと思います。 また、キャッシャと tmpfs の関係についてはこのページの説明が興味深いです。

要注意なのは tmpfs は特に指定しないと、Linuxカーネルは実装メモリの50%を最大容量として制限していることです。mount時に(or fstabで)容量の指定はできますが、メモリ容量との兼ね合いであまり大きくするとスワップだらけ、システムハングということになりそうです。rebootすると消えてしまうファイルですから、CD一枚分のデータを毎回デリート(rm)&コピー(cp)して使うということになると思います。

問題点はコピーに関する手間と時間。時間の方はハードを速くする他ありませんが(ディスクからメモリであれば、許容範囲だと思います)、手間は Emacs dired、elisp、シェルスクリプトを組み合わせることで簡単に出来ます。
まず、以下のシェルスクリプトをホームディレクトリ(この場合は /root)に用意します。

#!/bin/bash
# キャッシュクリア、演奏開始
#     mpc_start.sh
#
sync;echo 3 > /proc/sys/vm/drop_caches
mpc clear
mpc update music_mem
mpc ls music_mem | mpc add
mpc play

次に、.emacsに以下を追加(.emacsがなければ、ホームディレクトリに作成)。

; zキーを音楽ファイルコピーに割り当て
(add-hook 'dired-mode-hook
  (lambda ()
     (define-key dired-mode-map "z" 'dired-cp-music)))
; 音楽ファイルコピー
(defun dired-cp-music ()
  (interactive)
  (let ((file (dired-get-filename)))
    (message "file copy start")
    (setq buf (get-buffer-create "copy_music_file"))
    (with-current-buffer buf
    (erase-buffer))
    (call-process "rm" nil buf nil "-r" "/dev/shm/music_mem")
    (call-process "cp" nil buf nil file "-r" "/dev/shm/music_mem")
    (call-process "ls" nil buf nil "-l" "/dev/shm/music_mem")
    (call-process "/root/mpc_start.sh" nil buf nil)
    (display-buffer buf)))

後は、「emacs /music」(/music は音楽ディレクトリ)で dired を立ち上げ、カーソルキーを使い聴きたい音楽ディレクトリに移動し、z キーを押せば、指定したディレクトリの一曲目からMPDの再生をスタート出来ます。簡単でしょ。

シェルスクリプトにした部分は elisp で書けるのではないかと思うのですが、「>」と「|」の処理の仕方が分からないのですよね。ご存じの方、教えて頂けると幸いです。

Emacs は楽をするのに便利なエディター(というか環境)ですね。紹介したいと思っているのですが、ググれば、 情報だらけなので、「どう書くかな」と思案中です。

03/15 追記
上記方法に関して、追加、訂正します。

起動したら音楽ディレクトリを指定して Emacs dired を起動するだけで選曲するには /etc/rc.local に以下を追加しておく必要があります。

mkdir /dev/shm/music_mem
mpc clear
mpc update music_mem

また、シェルスクリプトは mpc と mpd の処理が非同期であることを考慮すると、以下の通り修正が必要です。

#!/bin/bash
# キャッシュクリア、演奏開始
#     mpc_start.sh
#
sync;echo 3 > /proc/sys/vm/drop_caches
mpc clear
mpc update music_mem
sleep 1
mpc ls music_mem | mpc add
sleep 1
mpc play

タイマー値は環境に合わせて適当に修正して下さい。

(PC_Audio)   2011/03/10

コメントする

MPDの最新版をビルド

今回の内容は効果は絶大ですが、かなりリスクがあります。トライされる方は at your own risk でお願いします。
詳しい解説はシンさんのサイト(「voyage MPD — 備忘録: MPDビルド方法 ー追加11/02/28」という記事)にあります。コメント欄(記事の最下段にリンクがいくつかあり、その一番左のボタンをクリックすると見ることができます)に僕がトライして、ドタバタした履歴が残されていますので、こちらも参考になるかと思います。
なお、シェルスクリプリトというアイディアは上記コメントのやりとりで yanさんから頂戴しました。
お二人に感謝します。
ということなので、解説は省略し、実行するためのシェルスクリプリトのみ紹介します。環境に合わせて、手を入れてお使いください。

#!/bin/bash
# build_mpd.sh  MPD 最新版(17.0) インストール用スクリプト

# mpdを停止
/etc/init.d/mpd stop
# 基本ライブライリのインストール
apt-get install aptitude wget
apt-get install git binutils gcc make subversion autoconf automake autotools-dev libtool pkg-config
apt-get install build-essential libncurses5-dev libncursesw5-dev linux-headers-`uname -r` libglib2.0-dev

# 個別機能ライブラリを選択して、インストール
# ここから、必要なものはコメントイン、不要なものはコメントアウト
#apt-get install libmikmod2 libmikmod2-dev                  # disable modplug decoder plugin
#apt-get install libfaad2 libfaad-dev                       # disable AAC(MP4/AAC) support (default: enable)
apt-get install libflac8 libflac-dev                       # enable flac support (default: enable)
apt-get install libogg0 libogg-dev  libvorbis0a libvorbis-dev  # enable Ogg Vorbis support (default: enable)
apt-get install libid3tag0 libid3tag0-dev libmad0 libmad0-dev  # enable id3 support (default: enable)
apt-get install libcue-dev libcue1                         # enable support for libcue(cue sheet) support
apt-get install libasound2 libasound-dev libasound2-dev    # enable ALSA support
#aptitude install libpulse-dev libpulse0 libpulse-ocaml libpulse-browse0 libpulse-mainloop-glib0  # enable pulse support
#aptitude install libjack-0.116 libjack-dev libjackson-json-java   # disable jack support
#aptitude install libgme0 libgme-dev                        # disable Blargg's game music emulator plugin(gme)
#aptitude install sqlite3 libsqlite3-dev                    # disable sqlite
#aptitude install libao-dev                                 # disable ao
#apt-get install libwavpack-dev libwavpack1                 # disable WavPack support
#apt-get install libmikmod2-dev libmikmod2 libmikmod-dev    # disable the mikmod decoder (default: disable) コメントイン時は --enable-mikmodも必要
apt-get install libsamplerate0 libsamplerate-dev           # enable libsamplerate(sample rate) support
apt-get install libshout-dev                               # enables the shoutcast streaming output
apt-get install libavformat52 libavformat-dev libavcodec-dev libavcodec52 libavutil49 libavutil-dev  # enable FFMPEG(mp3,ape etc) support
apt-get install libaudiofile0 libaudiofile-dev             # enable audiofile support (WAV and others)
apt-get install libavahi-client-dev libavahi-glib-dev      # enable avahi
# apt-get install libsndfile-dev libsndfile1                # disable sndfile support
#apt-get install libcdio-cdda0 libcdio-dev libcdio-paranoia0 libcdio10 libcdio-paranoia-dev  # CDIO_PARANOIA
aptitude install libcurl-dev libcurl4-openssl-dev          # enable support for libcurl(CURL) HTTP streaming (default:auto)
apt-get install libmms-dev libmms0                         # enable the MMS protocol with libmms
#apt-get install libtwolame-dev libtwolame0                 # disable the TwoLAME mp2 encoder
# LAME: http://debian-multimedia.org/pool/main/l/lame/lame.php   enable libmad mp3 decoder plugin
wget http://debian-multimedia.org/pool/main/l/lame/libmp3lame0_3.98.4-0.0_i386.deb
wget http://debian-multimedia.org/pool/main/l/lame/libmp3lame-dev_3.98.4-0.0_i386.deb
dpkg -i libmp3lame0_3.98.4-0.0_i386.deb libmp3lame-dev_3.98.4-0.0_i386.deb
# ここまで(機能選択終わり)

# mpdの最新版をgit
git clone git://git.musicpd.org/master/mpd.git
cd ./mpd
# configureスクリプトの自動生成
./autogen.sh
# 最適化オプションをO2に設定、ipv6は無効に
CFLAGS="-O2 -mtune=`uname -m`" ./configure --disable-ipv6 --disable-sndfile
make
make install
# mpdディレクトリの変更設定
echo DAEMON=/usr/local/bin/mpd >>/etc/default/mpd
# mpdを起動
/etc/init.d/mpd start

再度、条件を変えてビルドしたい場合は

  • カレントディレクトリの./mpd以下を削除(rm -rf ./mpd)
  • /etc/default/mpdの最終行(DAEMON=/usr/local/bin/mpd)を削除
  • 個別機能ライブラリの選択をしないのであれば、「apt-get remove」に変更するか、configureにdisableオプションを設定

して下さい。三番目は基本・個別ライブライリの設定部分を全てコメントアウトし、必要な部分のみコメントイン/再設定するのが正しい作法です(^^;;;。
configure の設定方法は「./mpd/configure –help」で参照できます。

音の感想ですが、シンさんのサイトへの投稿をそのまま引用します。
『という次第で、謎はますます深まるばかりですが(^^;;、とりあえず音は聴けるようになりました。
悪戦苦闘したブラシボ効果だと思いますが(^^;、 音は素晴らしいです。特に、0.17+OSS+Phase_techの組み合わせがとても良くて、0.16ではこの組み合わせは多少不安定なところがあって敬遠していたのですが、その部分がクリアされ、ヴォーカルなど目の前に人がいるのじゃないかと思われるほどですね。これだけのヴォーカルの再生音は、昔、QuadのESL63というスピーカを使っていたことがありまして(ご存じかもしれませんが、このスピーカ、迫力はサッパリですが、人の声のリアルさは素晴らしいかったです)、それに匹敵する音ですね。』

なお、もとに戻したい場合は echo で書き込んだ最終行を削除 or コメントアウトすればいいです。

root@voyage:~# pkill mpd
root@voyage:~# emacs /etc/default/mpd
#DAEMON=/usr/local/bin/mpd
root@voyage:~# /etc/init.d/mpd start

稼働しているMPDのヴァージョンは「mpc version」で確認できます。

(05/03) 追記
0.17+Alsa+Phase_techの組み合わせでwavファイル再生できない件が解決したので、スクリプトを修正。

(PC_Audio)   2011/03/04

コメントする

ブラジルへの郷愁


ダリウス・ミヨーの管弦楽曲じゃなくて、レヴィ・ストロースの「悲しき熱帯」と対になる写真集。
1935年~1937年にレヴィ・ストロースがブラジル奥地の調査を行った時の180点ほどの写真が集められています。
とても興味深い本でした。

印象に残ったのは、現地の人々の表情がとても生き生きしていること。どの人も素晴らしい顔をしていますね。
せっかくだから何枚かの写真をストロースの序文と合わせて引用します。
『この写真集をひもとく読者は、もう一つの幻想に対しても警戒すべきだろう。・・・読者は彼らが人類の未開の姿を表していると思いこまないようにすべきなのだ。・・・中部ブラジルその他の地方の住民は、内陸地域へ逃れたり、もとの土地に置きざりにされた、より高度でより多数の文明の残滓なのだ。』



『 最近の発掘で、土器が最初に作られたとされていたペルーやエクアドルの最も古い土器よりさらに、おそらく数千年古い土器が、発見されている。それゆえ、もし影響関係があったとすれば、それは逆の方向に働いたものなのであろう。つまり、アマゾン地域はアンデス諸文明が由来する揺籃の地だったかも知れないのである。』




『それゆえ、これらのインディアンのなかで、われわれの目には最も物質的に貧しいと思われる人々のうちにも、数千年のあいだ奇跡的に保存されてきた古い生活様式の生きた証を見るべきではない。そうではなく、彼らは、彼らの先祖にとって大異変であった「白人による」「発見」とそれにつづく侵略の被害を免れた、最後の人たちなのである。規模の違いはあるが、核による地球全体におよぶ破滅のあとで、あるいは恐竜滅亡の原因となったような大隕石の落下のあとで、あちこちに散在して生きのびている人の群れを想像してみるといい。』




『・・・西洋文明は過去に数知れない文化を破壊したが、それら諸文化の多様性が、人類の豊かさをつくっていたのだ。この集合的な豊かさの一片でしかないものの所有者であり、外からも内からもくる危険によって弱められた西洋文明は、その遺産を忘却か自然消滅に任せているのだが、この遺産は、他の文化の遺産と同じくらい、慈しまれ、尊ばれるに値したのだ。』

「悲しき熱帯」の愛読者は必見じゃないかと思いました。

(review)   2011/02/25

コメントする

ネット革命 - 中東のゆくえ

というNHKの番組を見ました。 何で日本のマスコミは中東情勢を真面目に取材しないのだと思っていたので、感心しました。

あれだけの人を動員するにはやっぱりインタネットだったのね。権力の妨害にどう対応したか、綺麗に謎解きされていて、なるほど、そうだったのかと納得。とても良く分かりました。

フェースブックは日本ではまだまだだけど、とりあえず、に登録しないといけないなぁと思いましたね(グーバルにはフェースブックのIDをもっていないと、サル以下だと思われるようです^^;;)。

(others)   2011/02/20

コメントする

Ncmpc(ターミナルで動作するMPDクライアント)

今回は最初からインストールされているプログラムを使うだけなので、簡単です。
こういう便利なプログラムが何の解説もなしに最初から用意されている(sambaクライアントとか、sshとか、rsyncとか)というのが Voyage MPD の特長(?)なんですかね(^^;;;。ディフォルトで用意されているプログラムは「dpkg -l」で調べることができます。

CDの選択に居間とパソコン部屋を往復するのは面倒なので、コンソールモードで動作するクライアント探しをしました。

これ(Ncmpc)がお勧めですね。多国語対応しているので、日本語のファイル・ディレクトリを表示できて、cursesベースなので軽く、操作性がとてもいいです。
Voyage MPD に最初から組み込まれています。

ncmpc -?

で起動方法のヘルプが表示されます。

ncmpc -c -m

というオプションを付けて立ち上げれば、カラー表示され、マウスが使えるようになります。


上の画面は立ち上げた直後の画面で、プレイリストが表示されます(configで変更可能)。
画面の一番上の行がメニューコマンドのガイドで、数字の1から8でメニューを選べます。3(データベース)でCDを選んで、2(プレイリスト)で演奏させるという使い方になります。
データベース画面ではディレクトリを指定できますので、CD単位に選ぶことが出来てとても便利。プレイリストはc(クリア)キー一発で消去できるので、CDの入れ換えも簡単です。

1でヘルプ画面を表示させることができます。これで、だいたいの使い方は分かると思います。



ディフォルトのキーバインドは英語キーボードが前提ですので、日本語キーボードだとちょっと使い辛い部分があります。Kでキーバインドは簡単に変えることができますので、適当に変更した方がいいでしょう。

config ファイルをホームディレクトリにおけば、動作方法を好みの設定に変えることができるようです。詳しくはリンク先からソースをダウンロードして調べて下さい。

タグエディット機能は無く、プレイリストの編集機能もシンプルですので、

  • CD単位にディレクトリを作成し音楽データを保存している。ディレクトリの指定でCDを選択したい
  • プレイリストは演奏するためのバッファ、編集したり、保存することはない
  • 日本語の表示は必須、ディレクトリもファイルも日本語だらけ
  • 見てくれは気にしない、軽くて操作性のいいクライアントがよい

という方にお勧めです。

特長の一つに LIRC support というのがあるので、リモコンでの操作も可能みたいですね。機能が多くなり、テンキーだけの操作では無理なので、どうしたものかなと思案しています。

なお、ssh 接続でなく、コンソールから直接 ncmpc を起動する場合、日本語表示させるには jfbterm をインストールし、起動しておく必要があります。

root@voyage:~# apt-get install jfbterm
root@voyage:~# jfbterm         # 当たり前だけど、ここから先はコンソールから操作する必要があります
root@voyage:~# ncmpc

Voyage MPD は20110208で確認しました。
以前(「Voyage MPDの使い方(10)」を参照して下さい)はjfbtermは上手く動かなくて、fbtermだとOKだったのですが、逆になっていますね。何か変わったのですかね。日本語のフォントの設定かな ?

面白かったのはこのソフトの日本語の紹介サイト

ncmpcは)デーモン(MPDのプレーヤーです呪いのクライアントのための音楽。 
ncmpcのは、接続にローカルで警視庁実行しているマシン上のネットワークと
触発コントロールをインターフェイス。
(このプロジェクト概要は機械翻訳されたものです)


原文も簡単にチェックできるので、確認しました。

ncmpc is a curses client for the Music Player
Daemon (MPD). ncmpc connects to a MPD running on a
machine on the local network, and controls it with
an interface inspired by cplay.


凄い訳だねぇ。
curses が「呪い」になったのはわかるけど、警視庁はMPDから出てきたのですかね。inspiredは触媒になっちゃったわけね。「うーむ」。笑うのを通り越して、感心しちゃうなぁ。

(PC_Audio)   2011/02/19

コメントする

Voyage MPD インストールリファレンス(追補)–OSSを導入

シンさんがサイトの情報「OSS ビルド vs ダウンロード」でOSSをビルドする方法を解説され、OSS ビルドが大変に効果的という指摘をされています。追試をして、同感です。これは Voyage MPD の音を良くする究極のチューニングだと思いました。ちょっと手ごわいですが、お勧めです。

シンさんのサイトの情報とこの情報をベースに前回のインストールリファレンスを追補します。

OSSのビルドによる導入は通常のインストールと比較すると、ソースをコンパイルし、ビルド、インストールすることになり、必要なパッケージを自力で用意する、ソースをダウンロードする、ビルド環境をととのえるなと、多少敷居が高いです。そのあたりをコメントしながら説明します。
尚、Voyage MPD のヴァージョン(という言い方はまだできないのかもしれませんが)は2011年1月のもの前提にしています(12月版ではエラーになってしまいます)。ISOイメージはここからダウンロードできます。
チェックしたら、もう1月版はなく、2月版になっていますね。アップデートのペース速いですね。

必要なパッケージの導入

root@voyage:~# apt-get install -y binutils libgtk2.0-0 sed gcc libc6
root@voyage:~# apt-get install -y build-essential linux-headers-`uname -r` gawk libtool libgtk2.0-dev
root@voyage:~# apt-get install -y libesd0 libsdl1.2debian-oss

一番目と二番目のビルドのための必須パッケージです。導入済のものがあるかもしれないが、エラーで無視されるだけなので、実行。
三番目のものの必要性はよくわからないのですが、悪さはしないだろと考え、実行。
なお、/etc/apt/sources.list は

# /etc/apt/sources.list

deb http://ftp.tw.debian.org/debian/ squeeze main contrib
deb http://ftp.jp.debian.org/debian/ squeeze main contrib
deb http://security.debian.org/ squeeze/updates main contrib

deb http://www.voyage.hk/dists/experimental/ ./

となっています。
一番下のアドレスはVoyage開発の実験用サイト(多分不要だと思いますが、未確認)。

OSS ソースのダウンロード

root@voyage:~# apt-get install -y mercurial
root@voyage:~# cd /opt
root@voyage:/opt# hg clone http://opensound.hg.sourceforge.net:8000/hgroot/opensound/opensound oss-devel

mercurial についてはここを参照して下さい。Pythonで実装されているパッケージのヴァージョン管理システムです。hg コマンドでダウンロードを行います(水銀だからコマンドは hg というのは面白いですね)。
なお、情報元のリンク先のページには実験版のタールボールをダウンロード、展開する部分がありますが、実験中の版は不要なので、無視します。

ビルド用のディレクトリを作成

root@voyage:~# cd ~/
root@voyage:~# rm -rf oss42build
root@voyage:~# mkdir oss42build
root@voyage:~# cd oss42build/

これは解説不要ですね。場所はどこでもかまわないはずです。rm -rf は初めての時は不要です。

OSSのビルド(configure と make)

root@voyage:~/oss42build# NO_WARNING_CHECKS=yes /opt/oss-devel/configure --enable-libsalsa=NO
root@voyage:~/oss42build# make
root@voyage:~/oss42build# make deb

これも解説不要かと思います。
結構な時間がかかります。特に二番目の make は多量のメッセージを出力し、僕の環境で10分位かかります。

OSSのインストール

root@voyage:~/oss42build# ls -l ./
root@voyage:~/oss42build# mv ./oss-linux-4.2-2004_i386.deb ../
root@voyage:~/oss42build# cd ..
root@voyage:~# ln -s /usr/src/linux-headers-`uname -r` /lib/modules/`uname -r`/build
root@voyage:~# dpkg -i oss-linux-4.2-2004_i386.deb
root@voyage:~# dpkg-reconfigure linux-sound-base

一番最初のlsコマンドはoss-linux-4.2-2004_i386.debが作成されていることを確認するためのもの。二番目と三番目のコマンドによるホームディレクトリへの移動は、不要ですが、頻繁にAlasとOSSを切り換えるのならやっておいた方が楽です。最後のreconfigureはこういう画面が出ますので



OSSを選択。OKボタンにはタブで移動できます。

OSSの動作確認とMPDの設定とリブート

root@voyage:~# ossinfo
root@voyage:~# osstest
root@voyage:~# emacs /etc/mpd.conf
audio_output {
       type            "oss"
       name            "My OSS Device"
       device          "/dev/dsp0"      # optional
#       format          "44100:16:2"    # optional
#       mixer_device    "/dev/mixer"    # optional
#       mixer_control   "PCM"           # optional
}
root@voyage:~# reboot

osstestでエラーになったら、確実に音は出ません。
僕の環境では居間の PhaseTech HD-7A は問題なく動作し、パソコン部屋の PS Audioの Digital Link はちゃんと認識されるのですが、osstestではエラーになってしまいました。同じUSB接続のDACなのだけど差があるみたいですね。

この場合の回避方法はちょっと乱暴な方法なのですがここここに情報があります(4Frontのフォーラムです)。
要するにデバイスがサンプルレートの指定を受け付けない時、無視して、正常終了させようということです。
二つ目のリンク先にコードの修正方法が記述されていますが、「return 1;」は ossusb_audio.c の write_control_value 関数定義の直後に置く必要があります(僕は変数の設定した後に置きました)。ossusb_audio.c のありかは上記の手順をとった場合、/opt/oss-devel/kernel/drv/oss_usb/ossusb_audio.c にあります。
もちろん、この修正は configure の前に行っておく必要があります。

mpd.conf の設定はシンさんのサイトでは、Alsa側をコメントアウトすることが推奨されていますが、Alsaはブラックリスト登録され、起動されないようになっているので、上記だけでもエラーにはなりません。もちろん、正しい作法はコメントアウトです。あと、Alsaのremoveは不要のようです。これもお行儀のよいのは remove です。
device “/dev/dsp0”はossinfoの情報に合わせます。

Alasに戻す

root@voyage:~# apt-get remove oss-linux          # ALSAに戻す
root@voyage:~# dpkg-reconfigure linux-sound-base
root@voyage:~# reboot

以上、凄いTipsを発見されたシンさんと素晴らしいソフトをオープンソースとして提供されている皆様に感謝します。

以下、掲示板でのシンさんとのやりとりの要約です。

パッケージのサイズですが、僕のAtom環境で両者の差は

-rw-r--r--  1 root root 2182980 2011-02-07 21:23 oss-linux-4.2-2004_i386.deb  ビルド版
-rw-r--r--  1 root root 2460804 2011-01-06 03:10 oss-linux-4.2-2004_i386.deb  ダウンロード版

となりました。
シンさんのAlix環境ではビルド版が 2130818。Alixとの差は50Kb位ですが、ダウンロード版と比較すると十分に小さいので、効果はあります。
以前のoss-linux-4.2-2003_i386.deb ダウンロード版で試した時、差はあるなと感じたのですが、「まあ、切り換える程じゃないか」と思い、Alsaに戻していたのですが、今回は無視できないレベルの差だと思いました。
シンさんのアドバイスで「“aptitude remove libgtk2.0-dev” を実行してから再コンパイルすれば20K程度減る」だろうということです。

Alsaと比較して、OSSの音はより密度の高い音ですね。ただ、その分、シビアな動きになるようで、僕の居間の環境(PhaseTech)では MPD のaudio_buffer_sizeが1024、buffer_before_playが100%では不安定になり、2048、50%位にしないとダメですね。シンさんの環境ではこのような現象は発生していないようですし(buffer_sizeが320、buffer_before_playが90%)、僕のパソコン部屋の環境(PS Audio)でも発生していないので、音源に起因しているのかなと思っています。もうちょっと原因を追求する必要がありそうです。

2/14 追記
居間の環境で動作が不安定になる件はチューニング不足に起因していたようです。top画面を見ながら、プロセスの優先度など調整したら解消しました。安定した状態では、audio_buffer_size 320、buffer_before_play 90% がいいようですね。

いずれにしても、音は素晴らしいです。ルネサンスのポリフォニーの声楽曲が各声部きれいに分離しながら、協和して聞き取れます。これは、いままでのオーディオ装置で経験できなかった世界ですね。分離がよくなるとバラバラ、ハモるとダンゴ状態というのが普通だから。生(ライブ演奏)でしか聴けなかった音が鳴っているなという気がします(まあ、幻想なのだろうけど)。

Voyage MPD というプレーヤーに優秀なカートリッジを一つ付け加えたという感じですかね。「Alixマシンをgetし、OSS専用機にして、AlsaのAtom機と、聴く音楽に合わせて切り換えたらどうだろうか」という邪(よこしま)な考えにとらわれ、悩んでいます(^^;;;。

(PC_Audio)   2011/02/11

コメントする

Voyage MPD インストールリファレンス

ファンレスパソコン導入時に用意したリファレンスです。基本的にはこのサイトの書き込こんだ内容を集約したものですが、一部、シンさんのサイトの情報を頂戴しています。
「Voyage MPD インストールの全操作解説」のコマンド部分とエディターで入力する行を集めたものをベースにチューニング処理操作を追加しました。長めのコマンドや編集入力行はSSH接続でコピー&ペースト処理すれば、導入作業を楽に進めることができると思います。
作業の順番は「全操作解説」から多少修正を加えています。具体的には

  • apt-get update/upgrade をインストール完了後直ちに行っておく(Linuxインストールの通常の手順)
  • その直後にマルチブートが必要なら、GRUBを2.0に更新
  • Emacsも update/upgrade 直後にインストール(viを使いたくないから^^;;;)
  • オーディオインタフェースの機番の固定化を MPD 設定前に行う(この方が合理的)
  • 電源ボタンでオフを MPD 設定前に行う(この方が合理的)
  • テンキーボードの設定とSamba Hostの設定も MPD 設定前に行う(まとめて処理)

というところです。

Voyage MPD のインストール

root@voyage:~# fdisk -l
root@voyage:~# mkdir /tmp/root /tmp/cf
root@voyage:~# mount -o loop /live/image/live/filesystem.squashfs /tmp/root
root@voyage:~# cd /tmp/root
root@voyage:/tmp/root# mkfs.ext2 /dev/sda1
root@voyage:/tmp/root# tune2fs -c 0 /dev/sda1
root@voyage:/tmp/root# /usr/local/sbin/voyage.update
root@voyage:~# reboot

初期設定

root@voyage:~# remountrw
root@voyage:~# apt-get update
root@voyage:~# apt-get upgrade
root@voyage:~# apt-get install grub              # マルチブート
root@voyage:~# apt-get install os-prober         #
root@voyage:~# os-prober                         #
root@voyage:~# update-grub                       #
root@voyage:~# apt-get install emacs             # Emacs
root@voyage:~# dpkg-reconfigure tzdata
root@voyage:~# passwd
root@voyage:~# emacs .bashrc 
remountrw
alias mpdr='/etc/init.d/mpd stop;/etc/init.d/mpd start'
alias mpcs='mpc update;mpc listall|mpc add;mpc play'

root@voyage:~# emacs /etc/network/interfaces
iface eth0 inet static
        address 192.168.0.31
        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

root@voyage:~# cat /proc/asound/cards                 # インタフェース確認
root@voyage:~# emacs /etc/modprobe.d/alsa-base.conf   #
options snd-atiixp-modem index=2
options snd-usb-audio index=1

GRUB2にした時はここでリブート。
また、ここから先、「MPD環境の設定」までの必要性は使い方で判断して下さい。

root@voyage:~# upgrade-from-grub-legacy           # マルチブート
root@voyage:~# chmod 744 /boot/grub/grub.cfg      #
root@voyage:~# emacs /boot/grub/grub.cfg          # GRUB2
root@voyage:~# emacs /boot/grub/menu.lst          # GRUB1 マルチブートでない時はここからスタート
clocksource=hpet nomodeset vga=785                # hpet対応、640x480

または(というかこちらが正しい)
root@voyage:~# emacs /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet clocksource=hpet nomodeset vga=785 maxcpus=1 threadirqs"
GRUB_DISABLE_LINUX_RECOVERY="true"

root@voyage:~# emacs /etc/apt/sources.list        # 日本語キーボード、Loadkeys
#deb http://ftp.tw.debian.org/debian/ squeeze main contrib non-free
deb http://ftp.jp.debian.org/debian/ squeeze main contrib non-free

root@voyage:~# apt-get update                     # 日本語キーボード、Loadkeys
root@voyage:~# apt-get install dialog             #
root@voyage:~# apt-get install console-common console-data  #
root@voyage:~# dpkg-reconfigure console-data      #
root@voyage:~# apt-get install locales            # 日本語表示
root@voyage:~# dpkg-reconfigure locales           #
root@voyage:~# apt-get install jfbterm
root@voyage:~# apt-get install acpid              # 電源ボタンでオフ
root@voyage:~# emacs /etc/acpi/events/power       #
event=button/power (PWR.||PBTN)
action=/sbin/poweroff

root@voyage:~# root@voyage:~# emacs /etc/mykey    # ボタン一つで電源オフ
keycode 119 = KeyboardSignal                      # Pause

root@voyage:~# emacs /etc/inittab
#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
kb::kbrequest:/sbin/shutdown -t1 -h now

root@voyage:~# emacs /etc/rc.local               # ボタン一つで電源オフ
/usr/bin/loadkeys /etc/mykey

root@voyage:~# emacs /etc/mykey                  # テンキーボード使用
string F78 = "mpc toggle\n"
keycode 78 = F78
string F74 = "mpc stop\n"
keycode 74 = F74
string F98 = "mpc prev\n"
keycode 98 = F98
string F55 = "mpc next\n"
keycode 55 = F55
string F83 = "mpc play "
keycode 83 = F83

root@voyage:~# emacs /etc/rc.local               # テンキーボード使用
/usr/bin/loadkeys /etc/mykey

adduser hoge                                     # テンキーボード使用
root@voyage:~# emacs /etc/shadow                 #
hoge::14995:0:99999:7:::

root@voyage:~# emacs /etc/inittab                # テンキーボード使用
#1:2345:respawn:/sbin/getty 38400 tty1                                                            
1:2345:respawn:/bin/login hoge /dev/tty1 2>/dev/tty1

root@voyage:~# apt-get install samba smbfs       # Samba Host
root@voyage:~# emacs /etc/samba/smb.conf
   workgroup = ・・・                            # Global
   hosts allow = 192.168.0.

   map to guest = bad user                       # Authentication

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

#;[homes]                                        # Share Definitions
#;   read only = yes
#;   create mask = 0700
#;   directory mask = 0700

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

root@voyage:~# adduser ・・・
root@voyage:~# pdbedit -a ・・・
root@voyage:~# /etc/init.d/samba start
root@voyage:~# /etc/init.d/samba status

root@voyage:~# reboot

MPD環境の設定

外付けのディスク(/dev/sdb)に音楽用ファイルを置いてあるという前提です。

root@voyage:~# mkdir /mnt/sda /mnt/sdb
root@voyage:~# emacs /etc/fstab
/dev/sda2        /mnt/sda       ext2      noatime         0       0
/dev/sdb1        /mnt/sdb       ext2      noatime         0       0
root@voyage:~# mount -a
root@voyage:~# mkdir /music
root@voyage:~# mkdir /music/playlists
root@voyage:~# ln -s /mnt/sdb/AB /music
root@voyage:~# ln -s /mnt/sdb/BB /music
root@voyage:~# chmod -R 777 /music
root@voyage:~# emacs /etc/mpd.conf
music_directory         "/music"
playlist_directory      "/music/playlists"
#bind_to_address         "localhost"
audio_buffer_size              "1024"
buffer_before_play             "100%"
mixer_type                      "disabled"
#mixer_type "software"

audio_buffer_size 以下はチューニング用パラメータ。ユングさんのサイトに詳細な説明があります。

music関連のディレクトリーをディフォルトのままにして、NASを使う場合の設定です。

root@voyage:~# mkdir /music
root@voyage:~# emacs /etc/fstab
//192.168.0.35/CD /music cifs username=yo,password=,uid=root,file_mode=0666,dir_mode=0766,iocharset=utf8 0 0
//192.168.0.37/share/sacd /sacd cifs username=yo,password=mario113,uid=mpd,file_mode=0666,dir_mode=0766,iocharset=utf8,rsize=130048,wsize=4096 0 0
root@voyage:~# mount -a
root@voyage:~# ln -s /music /var/lib/mpd/music/

最後にmpdをリスタート。

root@voyage:~# /etc/init.d/mpd restart
root@voyage:~# mpc update
root@voyage:~# mpc listall|mpc add
root@voyage:~# mpc play

チューニング設定

優先度とレイテンシータイマー値は環境に合わせる必要があります。

root@voyage:~# emacs /etc/sysctl.conf            # コントロール値の変更
fs.inotify.max_user_watches = 524288
vm.swappiness = 10

root@voyage:~# emacs /etc/security/limits.conf   # limit値の変更
@audio - rtprio 99
@audio - memlock unlimited
@audio - nice -19

root@voyage:~# cat /sys/devices/system/clocksource/clocksource0/current_clocksource  # クロックソース
root@voyage:~# lsusb                             # 優先度
root@voyage:~# cat /proc/interrupts              #
root@voyage:~# ps aux                            #
root@voyage:~# emacs /etc/rc.local               #
chrt -f -p 53 `pgrep sirq-timer/0`
chrt -f -p 53 `pgrep sirq-timer/1`
chrt -f -p 51 `pgrep irq/23-ehci_hcd`
chrt -f -p 52 `pgrep irq/16-uhci_hcd`
chrt -f -p 48 `pgrep mpd`

root@voyage:~# lspci -nn                         # レイテンシータイマー値
root@voyage:~# lspci -v                          #
root@voyage:~# emacs /etc/rc.local               #
setpci -v -d 8086:27cb latency_timer=ff
setpci -v -d 8086:27cc latency_timer=ff

yanさんの patch 対応の追加

調べる

cat /proc/interrupts
ps -eLo pid,lwp,rtprio,priority,cmd
ps -eLo pid,rtprio,priority,cmd | grep irq
ps -eLo pid,lwp,rtprio,priority,time,cmd | egrep "irq/16|irq/23|mpd|cifsd"

設定する

emacs /etc/mpd.conf

realtime_option {
    memlock              "yes"
    stack_reserve        "1024"
    heap_reserve         "10240"

    main_priority        "OTHER:0"
    player_priority      "FIFO:50"
    decoder_priority     "OTHER:0"
    update_priority      "OTHER:0"
}
audio_output {
        type            "alsa"
        name            "My ALSA Device"
        device          "hw:0,0"        # optional
        priority        "FIFO:52"
#       format          "44100:16:2"    # optional
#       mixer_device    "default"       # optional
#       mixer_control   "PCM"           # optional
#       mixer_index     "0"             # optional
}


emacs /root/chrtset.sh

setpci -v -d 8086:27cb latency_timer=ff
setpci -v -d 8086:27cc latency_timer=ff
chrt -f -p 53 `pgrep irq/23-uhci_hcd`
chrt -f -p 53 `pgrep irq/23-ehci_hcd`
chrt -f -p 52 `pgrep irq/44-eth0`
chrt -f -p 50 `pgrep cifsd`

emacs /etc/rc.local

sh /root/chrtset.sh


これ以降はシンさんのサイトのチューニング記事に関連するものです。

root@voyage:~# apt-get remove pptpd              # メモリリーク
root@voyage:~# apt-get install sysv-rc-conf      # サービスの停止
root@voyage:~# sysv-rc-conf                      #

停止させるサービス
cron, dnsmasq, hostpapd, klogd, lirc, lighttpd, nfs-common, pptpd, portmap, sysklogd, watchdog, wd_keepalive

nas関連のチューニング
emacs /etc/fstab
//192.168.0.35/CD /music1 cifs username=yo,password=,uid=root,file_mode=0666,dir_mode=0766,iocharset=utf8,rsize=130048,wsize=4096 0 0

emacs /etc/sysctl.conf

net.core.rmem_max=12582912
net.core.wmem_max=12582912
net.ipv4.tcp_rmem= 10240 87380 12582912
net.ipv4.tcp_wmem= 10240 87380 12582912
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_no_metrics_save = 1
net.core.netdev_max_backlog = 5000

vm.overcommit_memory = 2
vm.overcommit_ratio = 50

root@voyage:~# sysctl -p

root@voyage:~# emacs /etc/apt/sources.list        # カーネルのアップデート
deb http://ftp.tw.debian.org/debian/ squeeze main contrib
#deb http://ftp.jp.debian.org/debian/ squeeze main contrib
deb http://www.voyage.hk/dists/experimental/ ./  # 追加

root@voyage:~# apt-get update
root@voyage:~# apt-get install linux-headers-`uname -r`

root@voyage:~# apt-get install build-essential libgtk2.0-0  # OSSのインストール
root@voyage:~# wget http://www.4front-tech.com/release/oss-linux-4.2-2004_i386.deb

または、http://www.4front-tech.com/download.cgi から
oss-linux-4.2-2003_i386.debをダウンロード
cp /media/usb0/oss-linux-4.2-2003_i386.deb ./

root@voyage:~# ln -s /usr/src/linux-headers-`uname -r` /lib/modules/`uname -r`/build
root@voyage:~# dpkg -i oss-linux-4.2-2004_i386.deb
root@voyage:~# dpkg-reconfigure linux-sound-base
root@voyage:~# ossinfo
root@voyage:~# osstest
root@voyage:~# emacs /etc/mpd.conf
audio_output {
       type            "oss"
       name            "My OSS Device"
       device          "/dev/dsp0"      # optional
#       format          "44100:16:2"    # optional
#       mixer_device    "/dev/mixer"    # optional
#       mixer_control   "PCM"           # optional
}
root@voyage:~# reboot

root@voyage:~# apt-get remove oss-linux          # ALSAに戻す
root@voyage:~# dpkg-reconfigure linux-sound-base
root@voyage:~# reboot
(PC_Audio)   2011/02/06

コメントする

Atomファンレスパソコンを get

芸がないなぁと思いますが、ユングさんが購入された機械を僕も get。

ファンレスパソコンとして、他にもいろいろな選択肢はあるのですが、この機種(Genius GS-L1)を選んだのは、産業用スペックというのが気に入ったからです。放熱性の高いアルミケースを使用し、0℃~40℃までのホコリが多い環境で継続的に使えるということは、消費電力と発熱を抑え、密封度を高くするという作りになっているはずで、オーディオ用に向いているかなと思いました。サイズも無理に小さくしたのではなく、無駄なものを全部そぎ落としたら、小さくなったという感じですね。
過剰なグラフィックとか、無線LANなど余分なものが無く、ATOM中でも低スペックという点も、音楽専用とするには好都合かなと考えました。

ユングさんは内蔵の大記憶をハードディスクにされているようですが、僕はSSDにしました。理論的には騒音、消費電力、発熱などで、SSDの方が有利なはずだから。耐久性の問題はありますが、Voyage MPD 専用であれば、ほとんどリードオンリーだから問題にならないはずです。
メモリは無駄かなと思いましたが、2GBにしました。まあ、3000円の差だったら、大きいにこしたことはなかろうという判断です。

サーバらしく見せるために、小型ディスプレイとテンキーボードとセットで写真をとりました。ディスプレイとメンテナンス設定作業が終わったら撤去し、アンプを上段に戻すつもりです(ボリュームの調整で手をのばすのが大変なので)。
なんでテンキーなのといわれそうですが、マルチブートのOSの選択とMPDのコントロール用(直前の記事参照)です。こんな構成でマルチブートしてる理由は Voyage MPD の更新が頻繁なので、その対応のためです。
移行トラブルで音楽が聴けなくなるのはいやなので古いヴァージョンを残して、新しいヴァージョンを入れることが出来るようにしました(Windowsの移行でよくやる手口ですね)。

写真の画面に表示されている Linux ペンギン、はじめは「へえー」と面白がったけど、邪魔だなぁ。どうやったら消せるのですかね ?


音は僕がこれまで使ったパソコンの中で一番いいかなという感じです。

写真に写っているのがスピーカを除いた全てのオーディオ装置で、USBDACはPS-Audio Digital Link、アンプはユニゾンリサーチ UNICO-P、スピーカは ETBT Terra、というシンプルな構成です。総額0.5メガ円位だと思いますが、この値段でこれだけの音がするなら、高い機械はいらないなと思います。
居間の音楽専用機もAtomベアボーン+SSDという構成ですので、ハードの差はマザーとファンの有無とケース位。音の差は僅かだと思いますが、ちょっとこっちの方が透明度が高く感じます。ただし、USBDAC以下の構成が違うので、今度、居間に持ち込んで、同じ環境で比較してみるかなと思っています。

同じ条件で聴き比べられる、Voyage MPDのノートパソコン、Windows7のデスクトップとの比較では差はかなり大きいです。WIndows7 のパソコンは乾いた、奥行きのない音、Voyage MPD のノートパソコンは解像度が高く、雰囲気のある音、Voyage MPDファンレスPCはさらに奥行きが出てきて、自然な音。という感じです。ともかくファンレスは余分なノイズが減って、静かになり、平板な感じが消え、自然な音になりますね。例をあげると、人の声の口の大きさが Win7デスクトップ → Voyageノート → Voyage ファンレス という順番に小さくなり自然な感じになります。
まあ、僕は、最近、音にあまりこだわらなくなり、アンプなどは高い機械を使う気がしないのですが、このパソコンと音楽ソフト(OSを含む)の差は無視出来ないですね。これで、WindowsデスクトップPCで音楽を真面目に聴こうという気はなくなりました(^^;;;。

しかし、入り口の部分でこれだけ大きく音が変わるというのはアナログプレーヤと一緒ですね。昔、音楽に合った音を出したいと考え、カートリッジをとっかえひっかえしたことを思い出します。こうなると、シンさんや yanさんが使っていらっしゃる Alixボードも試したくなりますね。際限のない泥沼にハマルりそうなので、とりあえずはパス(でも、そのうちやるだろうなぁ^^;;;)。

インストールは最新版(20110124)のVoyage MPDで問題なくできました。Voyage MPD のイメージはUSBメモリを使いました。インストール用USBメモリの作り方はVoyage MPDの使い方(12)を参照して下さい。

トラブルは一つだけ。
Voyage MPD を shutdown -h 0 または poweroff した後、電源を投入すると必ずBIOSでハング。この状態から電源ボタンを長押しして電源断させ、再投入すると問題なくスタートできる。何故か、作業中の reboot または shutdown -r 0 ではこの現象は発生しない。
原因がサッパリ分からず、購入先のOLIOSPECにも問い合わせたが、「Linuxはサポート対象外だけど、そんな変な現象は知らないよ」というつれないご返事(とても丁寧な対応でした)。
いろいろ、いじり回して、原因が判明しました。
写真の下にある外付けのUSBディスクを繋いでいますが、これが悪さをしていたようです。USBディスクをはずしたら、問題は解消しました。USBディスクはOS起動する機能のない、データ用のものですが、BIOSでは起動可能とディスクと認識されて、BIOS動作に影響を与えたということのようです。何故、電源ボタンの長押しして電源オフすると上手くいくのかは不明。
しかし、このディスクは音楽データ用なのですよね。困ったなぁ。どう対応するか思案中です。

(PC_Audio)   2011/02/05

コメントする

top page     previous page     next page

mail