一般的にはほとんど興味のない情報でしょうが、個人的にはガッツポーズを天に突き上げるほどの値打ちがありました。
掲示板の方にも少し書いておいたのですが、「近いうちにLinuxにも対応」と謳っていたM2TECHの「hiFace Evo」がついに動き出したのです。実は、この「HiFace Evo」のLinux対応には因縁があって、当初は日本語のサイトでもはっきりと明示していたのがいつの間にかこっそりと削除されていて、さらには巷でも「諦めたらしい」という噂も流れてきたりしました。そんなわけで、これまた私も含めた一部では「詐欺だ~!」という声も上がったりしたのですが、唯一の救いは本家のサイトでは「近いうちにLinuxにも対応」という記述が生きていたことです。
ただし、イタリアのことですから、やる気もないのに削除するのを忘れているだけだろう・・・というさめた声もありました。まあ、イタリアですからね・・・(=。=)ふ~…しかし、メーカーのサイトに記述が残っているという事に一縷の「希望」をつないでいました。
そんな99%諦め気分の中に、突然「hiFaceTWO」がリリースされました。これが、何と「Linux対応」のDDコンバーターだったのです。しかし、日本語のサイトを見ても「hiFace Evo」に関する新しい動きは一切アナウンスされていませんし、何よりも「hiFace Evo」の転送方式とそれに対応したドライバは特殊なものなのでLinuxに対応させる難しさは理解していました。
そんなこんなで、「近いうちにLinuxにも対応」を信じて導入した「hiFace Evo」はメインシステムに一度も参加することもなく、ずーっとサブシステムの中で塩漬けにされていました。それが、11月の中頃に、何気に「hiFace Linux」と検索をかけると、「snd-usb-asyncaudio Linux compliant」という記述を発見し、どうやらそれが「hiFace Evo」のLinux対応のドライバらしいことに気づきました。さらに調べてみると、こちらで「snd-usb-asyncaudio」のソースコードが配布されていて、インストールの仕方も解説されています。
おぉ、これは凄い、「まあ、イタリアですからね・・・(=。=)」などといって済まなかった・・・などと思いながら、早速に紹介されている手順でインストールにチャレンジしてみたのですが、案の定、それほど簡単にはいきません。
とは言え、この情報が提供されていると言うことは、間違いなく何らかの環境で「hiFace Evo」をLinuxで認識していると言うことですから、頑張れば間違いなく道が開けるはずです。
ということで、この2ヶ月ほどは暇を見つけては情報を探り、あれこれのチャレンジを繰り返してきたのですが、ついに「Voyage MPD」で「hiFace Evo」を認識させることに成功しました。一般的にはほとんど意味のない情報ですが、もしも私と同じように「近いうちにLinuxにも対応」を信じて「hiFace Evo」を導入したもののどうしようもなくて塩漬け状態になっている人にとっては極めて貴重な情報でしょうから、あえて報告することにしました。
音質的には、現在メインで使っているフェーズテックの「UDIF7」を間違いなく上回ります。「UDIF7」は電池駆動、「hiFace Evo」は付属のスイッチング電源での駆動ですから条件的には圧倒的に「UDIF7」の方が有利なのですが、それでも「hiFace Evo」の優位は明らかです。これで、専用の強化電源を追加してやればさらに一皮むけるでしょうから、これはもう望外の結果です。
実にもって、いい年の暮れになりました。(^^v
それほど簡単じゃない・・・(-_~-)
件のサイトでは、以下の要領でいとも簡単にインストールできるように書かれています。
「In order to build the driver you need to install your kernel-headers, the build-essential package and git-core:」
なるほど、開発環境とgitを入れて、kernel-headersを準備すればいいらしいです。
#apt-get install kernel-headers-$(uname -r)
#apt-get install build-essential
#apt-get install git
あとは、gitで「snd-usb-asyncaudio」のソースコードを入手して、「make」と「insmod」で完了というわけです。
#git clone git://github.com/panicking/snd-usb-asyncaudio.git
#cd snd-usb-asyncaudio
#make
#insmod snd-usb-asyncaudio.ko
しかし、やってみると初っぱなの
#apt-get install kernel-headers-$(uname -r)
から躓きます。調べてみて分かったのは、「Voyage MPD」は「kernel-headers」を提供していないと言うことです。なるほど、提供していないものがインストールできるはずもなくエラーになるのは当然です。
このエラーを回避するために
#apt-get install linux-source-3.2.17-voyage 11.0-1
#cd /usr/src/
#tar xvjf linux-source-3.2.17-voyage.tar.bz2
#ln -s linux-source-3.2.17-voyage linux-headers-3.2.17-voyage
#cd /lib/modules/3.2.17-voyage/
#ln -s /usr/src/linux-source-3.2.17-voyage build
#cd /usr/src/linux-source-3.2.17-voyage
#make oldconfig
#make prepare
#make modules_prepare
#cd /root/snd-usb-asyncaudio.git/
#make
というような手段を使うといいらしいことが分かりました。これは、提供されていない「kernel-headers」の代わりに「linux-source」を使って乗り切ろうという手段です。
そして、この後
#git clone git://github.com/panicking/snd-usb-asyncaudio.git
#cd snd-usb-asyncaudio
#make
でコンパイルができるところまでこぎ着けることができました。
しかし、最後に
#insmod snd-usb-asyncaudio.ko
でインストールしようとすると、「Invalid module format」と叱られて頓挫します。
どうやら、「linux-source」からビルドしたものが必要なヴァージョンとずれているようなのです。
なかなか敷居が高いのですが、感じとしてはもう一歩というところできている雰囲気です。そこで、一度原点に返って「Voyage MPD 0.85」をインストールし直して再チャレンジしてみることにしました。
何と有り難い情報が・・・!!
12月に入ってからは、定期的に「hiFace Linux」と検索をかけては新しい情報も探していました。そうすると、最近になって実に有り難いサイトを発見しました。
タイトルもズバリ「Voyage MPD 0.9にM2TECH hiFaceのドライバをインストールする方法」です。早速アクセスして内容を確認すると、まさに「これだ!!」という感じです。
ですから、私が以下述べる方法の大部分はこのサイトの情報に頼っています。もっと詳しい情報が欲しい人はそちらのサイトを訪れた方がいいかと思います。
ただ、「Voyage MPD 0.9」はテスト版という雰囲気が強くて音質面でも疑問が呈されているので、私の場合は音質面で評価の高い「Voyage MPD 0.85」でチャレンジしました。
まずは、開発環境とgitをインストールします。
# apt-get install build-essential
# apt-get install git
なお、「シンさんヴァージョンのVoyage MPD」では開発環境をビルドするとここでもエラーとなってしいます。
このエラーは最新版の「gcc」をソースコードからビルドすれば回避できそうなのですが、考えただけでも面倒くさいし、果たしてそれで全てのエラーが回避できるのかの保障もないので、普通は素直に「Voyage MPD 0.85」もしくは最新版である「Voyage MPD 0.9」を使った方がいいでしょう。
これは問題なく通過できると思います。
「kernel-headers」の代わりに「linux-source」を使う。
# apt-cache search linux-source
linux-source-3.2 – Linux kernel source for version 3.2 with Debian patches
linux-source – Linux kernel source (meta-package)
linux-source-2.6 – Linux kernel source (dummy package)
linux-source-3.2.17-voyage – Linux kernel source for version 3.2.17-voyage
恥ずかしながら、この「apt-cache search」に思い至りませんでした。なるほど、これで必要なヴァージョンを確認するんですね。ここを闇雲にやってしまうと、最後のところで「Invalid module format」と叱られて頓挫してしまうわけです。
ここで、「Linux kernel source for version 3.2.17-voyage」と確認してから
# apt-get install linux-source-3.2.17-voyage
ちなみに、「Voyage MPD 0.9」の場合は「Linux kernel source for version 3.4.4-voyage」が必要となるようです。
次に落としてきたVoyage Linuxのソースコードを解凍します。
# cd /usr/src
# tar xvjf linux-source-3.2.17-voyage.tar.bz
この解凍にはかなりの時間(5分前後)を要しますが気長に待ちましょう。
いよいよhiFaceドライバを作成します。
# git clone git://github.com/panicking/snd-usb-asyncaudio.git
gitを使って「snd-usb-asyncaudio」のソースコードをダウンロードします。
次に、Voyage Linuxソースコードのディレクトリにリンクを作成します。
# ln -s /usr/src/linux-source-3.2.17-voyage /lib/modules/3.2.17-voyage/build
# ls /lib/modules/3.2.17-voyage/build
きちんとリンクが張られているか確認しましょう。何も表示されなければNGです。
そして、Voyage Linuxソースコードでコンパイルの準備をします。
# cd linux-source-3.2.17-voyage/
# make oldconfig
# make prepare
# make modules_prepare KERNELRELEASE=$(uname -r)
ここで、念のために「cat include/generated/utsrelease.h」として「#define UTS_RELEASE “3.2.17-voyage”」と表示されれば大丈夫です。
そして、いよいよ「hifaceドライバをコンパイルします。
# cd ../snd-usb-asyncaudio/
# make
# insmod snd-usb-asyncaudio.ko
ここでエラーが出なければおおむね成功です。
念のために
# lsmod
として、組み込まれたドライバの一覧を表示します。
Module Size Used by
fuse 47798 1
(省略)
snd 34345 9 snd_usb_asyncaudio,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore 3483 1 snd
snd_page_alloc 4817 1 snd_pcm
(後略)
みたいな感じで「snd_usb_asyncaudio」が表示されていれば大丈夫です。
さらにもう一押しして、
# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: hiFace [hiFace], device 0: hiFace [AsyncAudio USB]
Subdevices: 1/1
Subdevice #0: subdevice #0
ALSAでhifaceドライバが認識しされていれば万歳三唱しましょう。
なお、本家サイトではこれで「reboot」すれば完了となっているのですが、私が参考にしたサイトでは
「hifaceドライバファイルをkernelディレクトリへコピー」
# cp snd-usb-asyncaudio.ko /lib/modules/3.2.17-voyage/kernel/sound/usb/
「ドライバ登録情報を更新」
# depmod -a
すべしと書いていますので、素直に従っておきました。
ただし「Voyage MPD 0.85」には「/lib/modules/3.4.4-voyage/kernel/sound/usb/」というディレクトリは存在しないので、「/lib/modules/3.2.17-voyage/kernel/sound/sound/」にコピーしておきました。それで問題なく認識してますし、もしかしたらそんな作業は不要なのかもしれません。(私の環境では、これをしないと認識しませんでした。)
最後にOSを再起動して完了です。
# reboot
再起動後、hifaceドライバが組み込まれているか確認します。
# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: hiFace [hiFace], device 0: hiFace [AsyncAudio USB]
Subdevices: 1/1
Subdevice #0: subdevice #0
「card 0: hiFace [hiFace], device 0: hiFace 」となっていますので、一般的には「 /etc/mpd.conf」の編集は不要と思いますが、別のサウンドカードが刺さっている場合はそれぞれの環境に合わせた編集が必要になるかと思います。
その辺の詳しい説明も上記サイトで説明されていますので、情報が必要な方はそちらをご覧ください。
最後にもう一度、かくも貴重な情報を提供していただいたFake H’Imagine様にはあらためて感謝を申し上げます。
こんにちは。
Voyage MPD Starter Kit(Voyage Version:0.9)でのインストールでつまづきましたので、教えてください。
最初のapt-get install build-essentialでエラーが出たときは、apt-get updateを実行すれば、OKでした。その後順調にインストールできていたのですが、
root@voyage:/usr/src/snd-usb-asyncaudio# insmod snd-usb-asyncaudio.ko
Error: could not insert module snd-usb-asyncaudio.ko: Unknown symbol in module
となりました。すみませんが、Unknown symbol in moduleの解決方法を教えてください。
私もようやくにして認識に成功させることができた段階ですので、個々のエラーに関してあれこれできるほどのノウハウはありません。
ただし、一般的に言えば「Unknown symbol in module」というのは、「そんなモジュール読み込めないよ!」と言うことですから、果たして本当にきちんとコンパイルができて「snd-usb-asyncaudio.ko」が生成できてるのでしょうか?
一度、
# ls /usr/src/snd-usb-asyncaudio
で、中味を確認してください。
yungさん。
ご返事ありがとうござます。
makeは
root@voyage:/usr/src/linux-source-3.4.4-voyage# make oldconfig
scripts/kconfig/conf –oldconfig Kconfig
#
# configuration written to .config
#
root@voyage:/usr/src/linux-source-3.4.4-voyage# make prepare
scripts/kconfig/conf –silentoldconfig Kconfig
make[1]: Nothing to be done for `all’.
make[1]: Nothing to be done for `relocs’.
CHK include/linux/version.h
CHK include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
root@voyage:/usr/src/linux-source-3.4.4-voyage# make modules_prepare KERNELRELEASE=$(uname -r)
make[1]: Nothing to be done for `all’.
make[1]: Nothing to be done for `relocs’.
CHK include/linux/version.h
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
root@voyage:/usr/src/linux-source-3.4.4-voyage# cat include/generated/utsrelease.h
#define UTS_RELEASE “3.4.4-voyage”
ように進んでいますが、最初の方のmake[1]: Nothing to be done for `all’.行はmakeがうまくいってないということでしょうか。
また、ls でみると
root@voyage:/usr/src/snd-usb-asyncaudio# ls -al
total 268
drwxr-xr-x 4 root root 4096 Jan 2 11:31 .
drwxr-xr-x 4 root root 4096 Jan 1 13:04 ..
-rw-r–r– 1 root root 35952 Jan 2 11:31 .chip.o.cmd
-rw-r–r– 1 root root 31970 Jan 2 11:31 .control.o.cmd
drwxr-xr-x 8 root root 4096 Jan 1 13:04 .git
-rw-r–r– 1 root root 33635 Jan 2 11:31 .pcm.o.cmd
-rw-r–r– 1 root root 306 Jan 2 11:31 .snd-usb-asyncaudio.ko.cmd
-rw-r–r– 1 root root 25009 Jan 2 11:31 .snd-usb-asyncaudio.mod.o.cmd
-rw-r–r– 1 root root 236 Jan 2 11:31 .snd-usb-asyncaudio.o.cmd
drwxr-xr-x 2 root root 4096 Jan 2 11:31 .tmp_versions
-rw-r–r– 1 root root 248 Jan 1 13:04 Makefile
-rw-r–r– 1 root root 0 Jan 2 11:31 Module.symvers
-rw-r–r– 1 root root 7623 Jan 1 13:04 chip.c
-rw-r–r– 1 root root 804 Jan 1 13:04 chip.h
-rw-r–r– 1 root root 6112 Jan 2 11:31 chip.o
-rw-r–r– 1 root root 703 Jan 1 13:04 common.h
-rw-r–r– 1 root root 2063 Jan 1 13:04 control.c
-rw-r–r– 1 root root 1152 Jan 1 13:04 control.h
-rw-r–r– 1 root root 1736 Jan 2 11:31 control.o
-rw-r–r– 1 root root 205 Jan 1 13:04 dkms.conf
-rw-r–r– 1 root root 57 Jan 2 11:31 modules.order
-rw-r–r– 1 root root 13906 Jan 1 13:04 pcm.c
-rw-r–r– 1 root root 1658 Jan 1 13:04 pcm.h
-rw-r–r– 1 root root 6092 Jan 2 11:31 pcm.o
-rw-r–r– 1 root root 13745 Jan 2 11:31 snd-usb-asyncaudio.ko
-rw-r–r– 1 root root 1381 Jan 2 11:31 snd-usb-asyncaudio.mod.c
-rw-r–r– 1 root root 2676 Jan 2 11:31 snd-usb-asyncaudio.mod.o
-rw-r–r– 1 root root 11689 Jan 2 11:31 snd-usb-asyncaudio.o
となっており、うまくできているようです。
丁寧な情報ありがとうございます。
>最初の方のmake[1]: Nothing to be done for `all’.行はmakeがうまくいってないということでしょうか。
私の乏しい知識から言うと、この「Nothing to be done for `all’」というのは、一度makeした後に、もう一度何の変更も加えていない状態でmakeすると、こういうメッセージがよく出ます。
意味としては、「一切コンパイルのコマンドは実行しなったぜ!」というような雰囲気だと思いますので、はじめからこのコマンドがでているとするとコンパイルされていないと言うことになりますね。
lsコマンドを見る限りでは、「snd-usb-asyncaudio.ko」はきちんと生成されているので、snd-usb-asyncaudioの方は大丈夫なような気がします。となると、問題はやはりkernel-headersの方でしょうね。
疑ってかかるのは
# ln -s /usr/src/linux-source-3.4.4-voyage /lib/modules/3.4.4-voyage/build
がうまくいっているかどうかでしょうか。
何とも力足らずで申し訳ないです。おそらく私より、Fake H’Imagine様に問い合わせた方がいい結果が得られるのではないでしょうか?
yungさん。
ご返事ありがとうございます。
いままではapt-get updateしか実行していませんでしたが、 apt-get upgrade
も実行して再びmakeをしました。make prepareまではmake[1]: Nothing to be done for `all’.もなく、順調にいきましたが、
root@voyage:/usr/src/linux-source-3.4.4-voyage# make modules_prepare KERNELRELEASE=$(uname -r)
make[1]: Nothing to be done for `all’.
make[1]: Nothing to be done for `relocs’.
CHK include/linux/version.h
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/sumversion.o
HOSTLD scripts/mod/modpost
HOSTCC scripts/kallsyms
HOSTCC scripts/pnmtologo
HOSTCC scripts/conmakehash
となり、残念ながら、makeできませんでした。
もうすこし、何かが足りないような気がしますが、linuxは疎く、検討もつきません。
今回はわたしの力不足であり、ここまでで断念(give up)とします。
いろいろお世話になり、ありがとうございました。
yungさん、hiface evoの認識おめでとうございます!
詳しい音質レビューなどご期待しております。
Linuxの、ましてやドライバをソースから作ってインストールすることは、なかなか難しいことでして、私もエラーに悩まされながら苦労してようやく出来ました(hiface proです)。
Linuxは、コマンド一つ、手順一つ違っても上手くいかないし、いろいろカスタマイズできるので個々人によって環境が異なることが、うまく作成できない理由の一つではないかと思います。
どうしても失敗される方は、思い切って現環境を捨てて(バックアップなどして)、yungさんのようにOSクリーンインストールで試されるのが成功への近道だと思います。
今後、いろんなサイトに成功した方の手順が掲載されるといいですね。
長文失礼いたしました。では。
>OSクリーンインストールで試されるのが成功への近道だと思います。
確かに、それは言えそうですね。私も、取りあえず極めてシンプルな状態でドライバを組み込んでから、yanさんのパッチファイルを適用したりして音質のチューニングに勤しんでいます。
>詳しい音質レビューなどご期待しております。
hiFacd Evoを認識させることに成功した時点で、すぐに強化電源の「Evo Supply」とクロックジェネレーターの「Evo Clock」を注文しました。このあたりの合わせ技でどの程度まで音質が追い込めるか楽しみです。
ある程度めどが立てば、またゆっくりと報告したいと思います。
突然失礼いたします、2年程前になると思いますがvine5.0のmpd関連で投稿させて戴きました坂本です。ユング様に質問が御座います。(昔の話であり又、全くの場違いでの質問で申し訳ありません。)
以前vine5.0でのやり取りの中で、最終的にvoyage mpdを構築するつもりでおりましたが、どうしてもvoyageではmpdを構築する事が出来ず、結局vine5.0でmpdを構築する事になってしまいました。なぜにvineなのかと言えば、GUIが使え、viコマンドも必要なく、65を過ぎた老いぼれジジイでもwidows感覚で容易にmpdを構築出来ますし、音質も文句なく良いと私は思っていますのでvineを使わない手はないと思っております。(これはユング様が以前発表されたvineでmpd構築の記事がなければ、私はmpdに出会えなかったと思っており、ユング様には感謝以外の何者でもありません。)
前置きが長くなり恐縮です。質問と申しますのは、今般、vine6.1でmpdを構築して見た所vine5.0よりも音質がかなり向上したと感じております。又、vine5.0ではUSB-DDCやDACに使用されているUSBコントローラーチップがTENOR社製のTE7022L迄しか認識しませんでしたが、vine6.1ではTENOR社製TE8802L迄認識してくれます。(他社製のチップでは試していませんが。)従いまして私もユング様と同じ様に塩漬けになっていたエルサウンドのEDD-192(DDC)が使用可能になり、音質もそれなりに向上したと思っております。
この様にvine6.1は良い事ずくめなのですが、ひとつだけ困った事があります。それは、vine5.0ではPCの電源ONだけでmpdが立ち上がってくれますが、vine6.1では電源ON後何もしなければlogin待ち状態のままでmpdは立ち上がってくれません。従いましてPCをON後、必ずキーボードよりrootと入力し、リターンとしないとmpdが立ち上がってくれません、出来ればvine5.0と同様に電源ONのみでmpdが立ち上がる様にしたいと考えております。
私なりに色々試行錯誤して見ましたがうまく行きませんでした。linuxにお詳しいユング様に何か良いアイデア、ご助言等戴ければと思い投稿させて戴いた次第です。お忙しい中、誠に勝手なお願いで恐縮ですが、もし解決策等あればご教示戴きたく宜しくお願い申し上げます。
最近は全くVineを使っていませんので、詳しいことは全く分かりません。
ただ、一般論として言うと、mpdをソースコードからインストールしているのであれば、mpd本体は「/usr/local/bin/mpd 」にあるかと思います。
これをVine起動時に同時に起動したいのならば、あまりお洒落ではありませんが、
# vi /etc/rc.local( /etc/rc.d/rc.local・・・かもしれない)
/usr/local/bin/mpd ←追記する
これで保存して再起動してもmpdは起動しないでしょうか?
*ただし、このrc.localは古いlinuxの残存物みたいな存在ですので、将来的には消えてなくなるかもしれませんし、もしかしたらVineの最新版では上手く動作しないのかもしれません。
早速ご教示戴きありがとうございます。
/etc/rc.d/rc.local に /usr/local/bin/mpd と追記してみましたが変わりませんでした。
vine5.0 では電源ONのみで [root@localhost~]# と表示され自動的に login し mpd が起動しますが、vine6.1 では以下の様になります。
Vine Linux 6.1 (Pape Clement)
Kernel 3.0.38-1vl6 on a 4-processor x86-64
llocalhost login:
となり、この状態のままで自動では login してくれません。つまりランレベル3になっていない(OSが立ち上がる手前待っているのかな)と思われます。その為、以下の操作が必要になります。
localhost login: root → rootと入力し、リターンでランレベル3にlogin
Last login: Fri Jan 4 15:44:29 on tty1
[root@localhost~]# → この表示が出て初めて mpd が起動します。
この様になりますので、やはり vine6.1 では自動ログインさせるのは無理な様です。ユング様には、お手数をかけまして大変失礼致しました、これに懲りず今後とも宜しくお願い致します。
こんにちは。
Voyage MPD Starter Kit(Voyage Version:0.9)で
insmod snd-usb-asyncaudio.ko
で、エラーとなって困っていました。
ユング様のVoyage MPD 0.85を参考に、そのVersionで行ったところうまくいきました。助かりました。ありがとうございました。