前回、こんな事を書きました。
「もちろん、Voyage MPDに最新の「gcc」をインストールするという手もありますが、意外なほどにこれが大変です。やってやれないことはないのですが、それだけの手間をかける値打ちが見いだせません。」
ところが、調べてみると、そんな大変な思いをしなくてもVoyage MPDに最新のgcc(gcc 4.7)を組み込む方法が「みみず工房」さんに紹介されていたのです。読んでみると、何時間も苦闘しなくても数分でインストールが可能なようです。当然のことですが、それに対応したyanさんのパッチファイルも配布されています。
ですから、「安定版のStable – 0.17.2を使う」方法だけでなく、gitで最新版のMPDを落としてインストールすることも可能なようです。
というわけで、「安定版のStable – 0.17.2を使う」方は慎重にバックアップをとっておいて、試しにgcc 4.7を組み込んで最新版のMPDをインストールしてみました。やってみると、実にあっけなくインストールできてしまいました。詳細はみみず工房さんの方を見てもらえればと思うのですが、自分なりに気づいた点もありますので簡単に紹介しておきます。
最新のgcc(gcc 4.7)を組み込む
新しいヴァージョンのgccをソースコードからコンパイルしてインストールをするのは大仕事です。ですから、ふつうは「apt-get」でインストールできるまで待つのが一般的です。しかしながら、Voyage MPDはヴァージョンはgcc 4.4のままで止まっています。
だから、無理はしないで「安定版のStable – 0.17.2を使い」ましょう、というのが前回のお話だったわけです。
ところが、世の中には「裏技」というものがあるもので、公開していない「gcc 4.7」が「apt-get」でインストールできてしまうのです。
# sources.listを編集する
この裏技のポイントは「/etc/apt/sources.list」というパッケージのダウンロード元設定ファイルにあります。
これは中味を見てみれば分かる話ですが、パッケージのダウンロード元のアドレス(http://ftp.jp.debian.org/debian/)が記載されています。
# less /etc/apt/sources.list
deb http://ftp.jp.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/debian-security squeeze/updates main contrib non-free
ポイントはこの中の「squeeze」という記述でして、実はこれは「安定版」のパッケージリストを意味しています。そして、これ以外に「開発版」を意味する「wheezy」というリストが存在するらしいのです。これは次期バージョンの「Debian 7.0-Wheezy」のためのリストなので、Debianが次期ヴァージョンにうつるとこれが「安定版」になるという仕組みになっているようなのです。
はい、ここまで書けば、鋭い人は分かった思います。
「squeeze」ではgccは4.4までしか用意していませんが、「wheezy」ならば最新版のgcc 4.7が用意されているのです。ですから、
# vi /etc/apt/sources.list
として、
deb http://ftp.jp.debian.org/debian/ wheezy main contrib non-free
を追記します。
deb http://ftp.jp.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/debian-security squeeze/updates main contrib non-free
deb http://ftp.jp.debian.org/debian/ wheezy main contrib non-free
# 全てのパッケージが「wheezy」と入れ変わらないいための一手間
ところが、ここで一つ問題が発生します。このままupdate upgrade してしまうと全てのパッケージが「wheezy」と入れ変わってしまいます。それはちょっと困りますので、一手間が必要です。
理屈はよく分からなかったのですが、まあお呪いみたいなものだと思って唱えておきましょう。
「/etc/apt/preferences」というファイルを新しく生成することです。
# vi /etc/apt/preferences
以下の内容をコピー&ペーストします。
Package: *
Pin: release n=squeeze
Pin-Priority: 900
Package: *
Pin: release n=wheezy
Pin-Priority: 200
これで、お呪いは終わりです。
# gcc 4.7をインストールする
以下のコマンド一発で組み込みが可能です。
# apt-get update
# apt-get –target-release testing install gcc-4.7 g++-4.7 libstdc++6
わずか数分でインストールは完了します。まさに、感動的なまでに簡単です。
gitで最新版のMPDをインストールする
これで、最新のgcc 4.7が組み込めましたので準備は完了です。
後はいつも通りの手順でインストールするだけです。ポイントだけ掻い摘んでフォローしておきます。
root@voyage:~# cd /usr/src/
root@voyage:/usr/src#
root@voyage:/usr/src# git clone git://git.musicpd.org/master/mpd.git
root@voyage:/usr/src# cd mpd/
gitで最新のMPDを落としてきます。
そして次はこの最新ヴァージョンでも使えるyanさんのパッチファイルを落としてきます。必要なのは今度は「mpd-0.17git-20120819rtopt.diff」の方です。
root@voyage:/usr/src/mpd# wget http://www.symphonic-net.com/kubotayo/cgi-bin/downlog.cgi?edata/mpd-0.17git-20120819rtopt.diff.gz
root@voyage:/usr/src/mpd# mv downlog.cgi\?edata%2Fmpd-0.17git-20120819rtopt.diff.gz mpd-0.17git-20120819rtopt.diff.gz
やはり変な名前でダウンロードされるのでリネームしておきます。
root@voyage:/usr/src/mpd# gzip -d mpd-0.17git-20120819rtopt.diff.gz
root@voyage:/usr/src/mpd# patch -p1 < mpd-0.17git-20120819rtopt.diff
解凍してからいつものようにパッチをあてます。
そして、コンパイル開始です。
root@voyage:/usr/src/mpd# ./autogen.sh
root@voyage:/usr/src/mpd# ./configure -disable-ipv6 -enable-rtopt -disable-sndfile CC=gcc-4.7 CXX=g++-4.7
ここがポイントです。gcc 4.7は組み込んだのですが、安定版のgcc 4.4と入れ替わったわけではなくて2つのgccが共存している状態です。そして、デフォルトで使われるのは安定版のgcc 4.4なので、ここでgcc 4.7を使うことを明示的に示さないといけません。configure の引数の最後についている「CC=gcc-4.7 CXX=g++-4.7」がそれにあたります。
ですから、gcc 4.4でコンパイルできるソースならば何も明示しなければgcc 4.4が使われるという仕組みになっています。
root@voyage:/usr/src/mpd# make
root@voyage:/usr/src/mpd# /etc/init.d/mpd stop
root@voyage:/usr/src/mpd# make install
root@voyage:/usr/src/mpd# /etc/init.d/mpd start
無事にコンパイルエラーが出ることもなく最新版のMPDがインストールできました。
音質的にはこちらの方が少しはいいかな・・・?とも思いますが、このあたりの比較は微妙です。気に入らなければ、「安定版のStable - 0.17.2」をmaku installすれば」簡単に元に戻るはずです。
> やはり変な名前でダウンロードされるのでリネームしておきます。
変な名前をリネーム云々は、以下のように-Oオプションで出力ファイル名を指定すればOKです。あと、URLはダブルクオートで括る方が無難です(今回の例ではなくても大丈夫だけれど、URLに’&’が入ると必要)。
wget “http://www.symphonic-net.com/kubotayo/cgi-bin/downlog.cgi?edata/mpd-0.17git-20120819rtopt.diff.gz” -O mpd-0.17git-20120819rtopt.diff.gz
> -disable-ipv6 -enable-rtopt -disable-sndfile
これらconfigureスクリプトのオプションの最初のハイフンは二つです。それはそれとして、’–disable-sndfile’ は今も必要でしょうか? あと、’–disable-ipv6’するのは何か理由はありますか? VoyageMPD自体はIPv6に対応しているはずです。
早速試しました。ありがとうございます。
今後試す方に一点だけ追加
gzip -d mpd-0.17git-20120819rtopt.diff.gz で解凍後、
git checkout 9cdbde4f5e421b7a1ca28d5268d5c31de9d6ad5d
を実行しないとpatchがあたりません。
私みたいな勘違いを撲滅するため、ちょっと補足します。
make install後は、Voyage MPDのチューニング(最新事情)
にあるように、
# 起動させるmpdを変更する
echo DAEMON=/usr/local/bin/mpd >>/etc/default/mpd
の実行と
# /etc/mpd.conf(設定ファイル)を編集する
root@voyage:/usr/src/mpd# vi /etc/mpd.conf
の変更が必要です。
みなさん、ご注意を。<私だけか。
今日は、初めてメールを出します。
私は、オーディオが好きで、最近PCオーディオでRME400を使いたのしんでいました。
最近voyageMPDを導入しましたが、RME400の設定がうまく出来ません。
以下のコメントが出てしまいます。
root@voyage:~/ffado-svn# ffado-test ListDevices
———————————————–
FFADO test and diagnostic utility
Part of the FFADO project — http://www.ffado.org
Version: 2.1.9999-2264
(C) 2008, Daniel Wagner, Pieter Palmers
This program comes with ABSOLUTELY NO WARRANTY.
———————————————–
Library version mismatch. (required: libffado 2.1.9999-2264, present: libffado 2.999.0-)
Please run this application against the exact corresponding library
it was compiled for. The most common cause for this is having more
than one version of libffado installed.
50659741959: Debug (test-ffado.cpp)[ 190] exitfunction: Debug output flushed…
no message buffer overruns
どう処理をしたら設定できるでしょうか?
恐れ入りますが教えtください。
よろしくお願いします。
「RME400」とはRME社の「Fireface400」のことでしょうか?
もしも、「Fireface400」のことでしたら、
http://www.yung.jp/bony/?p=1356
を参考にしてください。
しかし、とにかく音は出るところまでいきましたがかなり不安定な部分が残っていて「実用にはならない」というのが個人的な結論です。その後、この特殊なドライバは開発も放棄されたようで(本体自身のFireface400の発売が終了したのですから当然と言えば当然ですが・・・)テスト版のまま放置されているようです。ですから、基本的には「使えない」というのが私の結論です。
そんなわけで、私が所有している「Fireface400」はWindowsPCにつながれて、サブシステムの中で余生を送っています。
NuForce u192s DDC
いつも楽しく読ませていただいき、ありがとうございます。
最近、NuForce u192s DDC を購入してvoyage-mpd-0.85(シンサンバージョン)で使用しようとしましたが、接続できませんでした。。。
それで、Ubunts Studio 12.4.2で試したところ、接続できました。
それで、voyage-mpd-0.9-rc2で試したところ、接続できました(^^)v
ドライバもvupで更新されているようです。ご報告まで。
いつもこのサイトをみてvoyagempdのセットアップに役立てています。hifaceevoのドライバをコンパイルして認識できるようになったら、今度はyanさんのパッチを当てたときの音が聞きたくて今回チャレンジしてみました。
手順のとおりに進めていったのですが
apt-get –target-release testing install gcc-4.7 g++-4.7 libstdc++6のところで以下のようなメッセージがでました。
root@voyage:/# apt-get –target-release testing install gcc-4.7 g++-4.7 libstdc++6
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package gcc-4.7
E: Couldn’t find any package by regex ‘gcc-4.7’
E: Unable to locate package g++-4.7
E: Couldn’t find any package by regex ‘g++-4.7’
これは、gcc-4.7とg++-4.7がインストールされていないようです。
この場合どのように対処したらよろしいでしょうか?
linuxはうといので教えてください。
>これは、gcc-4.7とg++-4.7がインストールされていないようです。この場合どのように対処したらよろしいでしょうか?
シンさんのバージョンは徹底的にチューニングされているので、私も残念ながらhifaceevoのドライバを組み込むことに成功していません。
暇があると思い立ったようにチャレンジしてみるのですが、なかなかうまくいっていません。
誰か良い知恵がある人がいれば私も教えていただきたいですね。
YUNG様
すみません、教えてください。
voyage mpd 2.0のスターターキットを購入しました。
WebGUIからIPアドレスを固定しようとして再起動かけたところつながらなくなってしまいました(涙)
TWSNMPをかけても、IPが出てきません。
もちろんtera term等でもつながりません。
Windowsのファイヤーウォールは外しているのですが、、、
コンソールケーブルは持っていませんが、コンソールでつなぐしか手段はないのでしょうか。
おわかりでしたら教えていただけませんでしょうか。
よろしくお願い致します。
どこかで設定を間違ってしまったんでしょうね。この失敗はよくあるようです。
こうなってしまうと、おそらくDHCPサーバーも眠っているでしょうから手も足も出ませんね。基本はコンソールでつなぐか、再インストールです。
個人的には再インストールをお勧めします。
それも、Voyage MPDを再インストールするのではなくて、lightmpdがお勧めです。
lightmpdに関してはこちらを参考にするか、本家のサイトを参考にしてください。
NASのマウントが大きな壁ですが、設定は全てWindowsの側でできますから、固定IPのアドレスを当て間違って手も足も出なくなると言うことはありません。WindoesPCで設定ファイルを書き直すだけですから、何度でもトライが可能です。
さらに、音質面でも最軽量のOSですし、それが全てメモリ上で動作するというメリットは非常に大きいです。
これが良い機会だったと言うことで、lightmpdに乗り換えることをお勧めします。
yung様
お返事ありがとうございます。
やはりコンソール接続か再インストールですか…
当方とりあえずvoyage mpdの音を確かめてみたいと思っていますので、lightmpdはその後になりそうです。
幸い、バックアップをメモリーカードに取ってあります。
最近yung様のブログをはじめ興味を持ち始めたもので、あまり知識がありません。
再インストールとコンソール直接接続どちらの方が敷居が高いでしょうか。
バックアップをメモリーカードに取ってあるのなら、間違いなく再インストールです。無駄な出費もいりませんし・・・。
yung様
こんな素人の私にもアドバイスして頂きありとうございます。
再インストール試してみます。
内蔵のm-SATA SSDを取り出してUSB経由か何かでwindowsへつなぎFAT32でフォーマットしてからバックアップ(# dd if=/dev/sda of=/dev/sdd)したデーターをdd for windowsでm-SATA SSDに移せばよいのでしょうか。
実は昨晩心が折れapu.1c用のlightMPD-v0.08もインストールしてイメージファイルをdd for windowsでメモリーカードへ書き込み、以下のように変更したのですが、windows側からIPを探せませんでした。。。
[network]
interface=eth0
address=192.168.0.55
netmask=255.255.255.0
gateway=192.168.0.1
# nameserver=192.168.0.0
# domain=mydomain.jp
実によく分かります。でも、気長に頑張ってください。
設定は間違っていないと思います。一番考えられるのは、接続するLAN端子に関わる問題です。LAN端子は3つあるのですが、生きているのは一番左側の一つだけです。
シリアルポート側がeth0で、そこだけが生きています。
一度確認してください。
Yung様
なんとかバックアップしていたメモリーのデータから無事mSATA SSDに# dd if=/dev/sda of=/dev/sddで戻すことができました。
やっと元の状態に戻ってホッとしています。バックアップから戻せる方法がわかったので、色々やってみます。
そこで私のような素人なりの教訓を述べさせてください。
・バックアップはかならず最初にとります。
・IP固定はほぼ全てのサイトで推奨していますが、私の環境では固定すると繋がらないので、IP固定しないようにします。
IPアドレスを見失ってもTWSNMPから直ぐ見つけられますし再設定もそんなに面倒ではないかと思います。
無事音だしまで出来ましたが、なぜか曲が数十秒流れた後、次の曲に移ってしまいます。
色々壁がありますが、試行錯誤やっていきたいと思います。
アドバイスありがとうございました。
ちなみにlightmpdのインストールはもうしばらく待ってみようと思います。
理由はDHCP機能が無いことと、NASマウントを推奨していることです。(当方USB SSDを使用しています)