一週間位使いましたが、素晴らしい音ですね。旧alixは軟弱な音なので、不満という方にお勧めです。インテルアーキテクチャですから、安定度は申し分なし。そのうちサイトの方に書き込むつもりですが、備忘録代わりに、rtカーネルへの変更方法とrtoptパッチ対応のmpdのビルド方法をメモしておきます。その前にボードについて紹介すると、ここ
http://store.voyage.hk/KMPD3a.php?id=103" target="_blank">http://store.voyage.hk/KMPD3a.php?id=103
で購入しました。ボードの内容はこれ
http://pcengines.ch/apu.htm" target="_blank">http://pcengines.ch/apu.htm
です。届いたものは上記サイトの内容とちょっと変わっていて、esata接続で外部ディスクをつなげることもできました。以下はそちら(esata接続外部ディスク)で確認しています。
まず、rtカーネルへの変更方法
remountrw
apt-get update
apt-get upgrade
apt-get install aptitude libncurses5-dev
aptitude install kernel-package fakeroot lzma
apt-get install bc
wget --no-check-certificate https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patch-3.10.22-rt19.patch.bz2" target="_blank">https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patch-3.10.22-rt19.patch.bz2
wget --no-check-certificate https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.22.tar.xz" target="_blank">https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.22.tar.xz
tar -Jxvf linux-3.10.22.tar.xz
cd linux-3.10.22
bzcat ../patch-3.10.22-rt19.patch.bz2 | patch -p1
cp /boot/config-3.10.11-voyage .config
make menuconfig
change to rt-kernel
make-kpkg --initrd kernel_image kernel_headers
cd ..
dpkg -i *.deb
nano /boot/grub/menu.lst
title Debian GNU/Linux, kernel 3.10.22-rt19
root (hd0,0)
kernel /boot/vmlinuz-3.10.22-rt19 root=UUID=b665a4c4-bc41-43b9-bc48-2657489bf83a ttyS0,115200n8
initrd /boot/initrd.img-3.10.11-rt19
次にmpdビルド方法
apt-get install libflac-dev libogg-dev libvorbis-dev libid3tag0-dev libmad0-dev libcue-dev libasound2-dev
apt-get install libsamplerate0-dev libshout3-dev libaudiofile-dev libresample1-dev libsamplerate0-dev
apt-get install libavformat-dev libavcodec-dev libavutil-dev
apt-get install libsndfile1-dev libmms-dev libavahi-client-dev libavahi-glib-dev
aptitude install libcurl-dev libcurl4-openssl-dev
apt-get install git autoconf automake autotools-dev libtool
git clone git://github.com/lintweaker/mpd-dsd.git
git clone git://github.com/lintweaker/mpd-dsd-018
cd mpd-dsd
patch -p1 < ../buffer.c.diff
patch -p1 < ../mpd-0.17.x-rtopt20131118.diff
patch -p1 < ../mpd-0.18.x-rtopt20131118.diff
nano ../my-config
CFLAGS="-O3 -march=native"
CXXFLAGS="-O3 -march=native"
pkill mpd
./autogen.sh
sh ../my-config
make && make install
echo DAEMON=/usr/local/bin/mpd >>/etc/default/mpd
gccのオプションについてはこのページ
https://wiki.gentoo.org/wiki/GCC_optimization" target="_blank">https://wiki.gentoo.org/wiki/GCC_optimization
が参考になります。
このボード、bbbなどと比較すると、はるかに使いやすいですが、ヘッドレスですので、いじるには、ある程度のLinux知識が必要です(もちろん、インストール済のvoyageのままでOKということであれば、まったく問題はありません)。旧alixとの最大の相違点はシステムの置き場所がssdだということです。新alixの方がusbブートに対応していますので、対応は楽だと思います。
上記コマンドを試して、インストール済のシステムが起動できなくなっても、責任を持ちませんので、よろしくです。
ところで、
Hi Punky,
Thank you for your quick delivery. New alix works fine.
But I tried rt-kernel 3.12,5 it does not work. It stops here
[ 0.396827] ACPI: Using IOAPIC for interrupt routing
[ 0.402005] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 0.411482] ACPI: No dock devices found.
in serial console. Config is almost same config-3.10.11-voyage which works well to build 3.10.22 kernel.
Do you know the reason.
お年玉、満喫されてるようですね。
正月にx86で3.12.6-rt9の実験をしていたんですが、こっちでも途中でPanicでした。
PCはhttp://www.symphonic-net.com/kubotayo/cgi-bin/read.cgi?mode=all&list=topic&no=3534" target="_blank">http://www.symphonic-net.com/kubotayo/cgi-bin/read.cgi?mode=all&list=topic&no=3534でDebian7.3 64bit。
biosが悪いのかとbiosをupしましたが関係なさそうでした。
その時調べたのですが、情報が少ないですね。
1.grubにacpi=offを付けるとboot出来るのもあるらしい
こちらでは3割位の確率でboot出来ました。
2.rt-userで、3.12.xがboot出来ないって言ってる人がいたような・・・(先月か先々月くらい)
3.次のrt patchに入ると思いますが、以下のpatchが出ています。
http://marc.info/?l=linux-rt-users&m=138875736128236&w=2" target="_blank">http://marc.info/?l=linux-rt-users&m=138875736128236&w=2
acpi関連のモジュールを全てオフにしたらあっさり解決しました。またオンの状態でpreemptにしても、問題なくブートできます。rtカーネルとacpiが関連する障害のようです。まあ、既知の障害のようなので、次の版では直っているのですかね。
ところで、rtカーネルで44KHzWavを再生中のtop -Hですが
top - 06:37:13 up 58 min, 1 user, load average: 0.05, 0.06, 0.05
Threads: 89 total, 1 running, 88 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.3 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem: 2043028 total, 783464 used, 1259564 free, 704 buffers
KiB Swap: 0 total, 0 used, 0 free, 685716 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1217 root -51 0 0 0 0 S 2.0 0.0 1:25.31 irq/17-ehci_hcd
1220 root -51 0 0 0 0 S 1.7 0.0 0:45.70 irq/17-ehci_hcd
2876 root -51 0 0 0 0 S 1.0 0.0 0:21.75 irq/40-eth0
3711 mpd -47 0 93084 89m 23m S 0.7 4.5 0:05.14 mpd
4115 root 20 0 2920 1188 828 R 0.7 0.1 0:00.13 top
1057 root 20 0 0 0 0 S 0.3 0.0 0:01.70 kworker/0:1
1230 root -51 0 0 0 0 S 0.3 0.0 0:05.54 irq/17-ehci_hcd
空きメモリが大きくなるというarmの結果はこちらでも同じようです。
あと面白いのはirq/17-ehci_hcdプロセスが三つ動いていることです。マルチコアの威力を示しているということですかね。ただ、プロセス個別に優先レベルを指定するのは大変ですね。
3.12は音の比較では3.10と大きい差は感じられませんでした。このあたりはarmアーキテクチャとは異なるようですね。まあarmの場合は3.8と3.12の比較なので、同じ条件ではありませんが。
>irq/17-ehci_hcdプロセスが三つ動いていることです
うちのは1個しか動いてないです。intelとamdの違いなんでしょうかね。
>3.12は音の比較では3.10と大きい差は感じられませんでした
それだったら、longtermの3.10.xのほうが良いかもですね。
> But I tried rt-kernel 3.12,5 it does not work. It stops here
I have built a real-time kernel here.
http://www.voyage.hk/dists/0.9/linux/linux-image-3.10.11-voyage-rt-rt7_13.0-1_i386.deb" target="_blank">http://www.voyage.hk/dists/0.9/linux/linux-image-3.10.11-voyage-rt-rt7_13.0-1_i386.deb
It did boot but not quite stable. After a few days, I got usb output not working at all. Sound get completely distorted and require a reboot. But please try first if it boots .
Regards,
Punky
The booting problem is solved by setting acpi functions off. So far it (kernel 3.12.6-rt9) works well in my environment. I think RT-kernel's stability mainly depends on ddc(firmware). In the experiment of bbb, some ddc cannot play well in the RT-kernel(3.8.13 and 3.12).
比較したカーネルが3.10.22-rtと3.12.6-rt9でしたので、時期的には一月位のずれだったから、あまり差を感じなかったのかもしれませんね。
rtカーネルについていうと、Punkyさんのところでは不安定だったということなのですが、僕のところでは安定しています。このあたりは音源の差によるのかもしれません。
rtカーネルとnone-rtカーネルの比較で音の差はあまり感じられません。インストール済の3.10で十分だなという感じですね。bbbなどではかなりの差があるので、ボードによるのですかね。
mpdはdsd版に入れ換えた方がよさそうですが。
1週間位、CDリップを24/96にアップサンプリングして連続再生していましたが、3.10.17も安定してましたよ。
まっ、voyageみたいに多くの人が使うもののデフォルトは、少しの差のために無理するより、超安定志向で良いと思いますけどね。
> まっ、voyageみたいに多くの人が使うもののデフォルトは、少しの差のために無理するより、超安定志向で良いと思いますけどね。
だと思います。rtカーネルであれやこれやというのはアマチュアの特権ですね。
ところで、このボードのusbブートですが、かなり複雑ですね。これを使って、ssdをメンテするのは難しそうです。
ssdでusbの両方からマルチブートできるのですが、/boot/grub/menu.lstをいじりまわす必要が有り、簡単でないです。ssdとesataの場合は比較的分かりやすいのですが。
ssdを壊してしまったら、usbメモリを使ってリカバリするのは容易でないです。まあ、cf方式(別のlinuxハードでインストール)という手はありますが。
BBBでrt13の話題が出ていたので。
3.12.9+rt13はACPIをいじらなくても、正常にboot出来ました。
音は・・・DACに繋がっていないので分かりません。
(普段は元から入ってる3.2.xを使ってます)
> 3.12.9+rt13はACPIをいじらなくても、正常にboot出来ました。
情報ありがとうございます。試してみます。
ところで、rootfsをarchに変更しようと試しているのですが、vmlinuzとinitrdをvoyage(debian)で使っているやつに入れ換えると、カーネルパラメータのセットでinitrdがセグメンテーションフォルトになってしまうのですよね。archってarchのrootfsを使って作成したinitrdでないと動かないなんてことがあるのですかね。変だなぁ。
>archってarchのrootfsを使って作成したinitrdでないと動かない
どうなんでしょう。そういう使い方をしたことがないので分かりません。
いっその事、Tiny coreでの運用を期待しています^^;
これは大いに興味がありますが、まだ手を出せていません。以前、ロシアの方から「やらない」とお誘いを受けているので、アドバイスを頂けそうなのですが。x86だと案外簡単かもしれませんね。どんどん泥沼だけど....(^^;;;。
実は同じようなコンセプトのLightMPDのbbb版を試したことはあるのですが、僕の環境では変なノイズがのってしまって、「ちょっと使えないなぁ」という感じでした。カーネルをチューニングしすぎると同じようなことが発生するので、単純に軽くすればいいものじゃないのかなと思っています。もちろん、「LightMPD、とてもいいよ」というレポートもあるので、
http://ama-audio.seesaa.net/article/385474157.html" target="_blank">http://ama-audio.seesaa.net/article/385474157.html
環境次第ではありますが。
以前BBBのところにちょっと書いたのですが、LightMPDはVer0.01の時に試してみましたが、遊べないので・・^^;;目的からすれば遊べなくっていいんですが。
軽くすことのメリットも多いと思いますが、やり過ぎると”張り”みたいなものはなくなる感じがします。
やりすぎて、いつも私がsyuさんにたしなめられるような感じですかね。
うちにもNew Alixが届いて、触り始めてます。
電源が急に動作しなくなったため、ちょっと停滞気味になってしまいました。
m-sataを追加で横に刺してみましたが、認識しなかったりよくわからないです。
ハードの情報があまりないので、連載に期待しています。
LightMPDは環境によっていろいろあるんですね。
私は楽で結果がよかったら、なんでもありです。
タヌキ以下ですね。
mSataがつなげるのは一番左側の差し込み口だけだと思います。後二つは「2 miniPCI express」のようです。ボードにもそのように印刷されています。e-sataについては僕のサイトの写真で右上に二つあり、一つは差し込み口が実装されています。実装されている差し込み口にeSataディスク(2回目の記事に写真があります)をつないで、問題なく動作することを確認しています。画像部分をクリックすると大きい画面を表示でき、更にクリックすると、拡大できますので、確認してみて下さい。
arch linuxはなんとか動きました。なかなかいいです。「毒食わば皿まで」だから(^^;;;、Tiny Linuxもやってみるかなと思っています。
usbメモリを使ってブートする方法が分かったので、このあたりの実験は簡単にできますね。
mSataの2枚刺しできないんですね。
usbメモリでブートするんですね、そうなるとクロスケーブルも必須ですね。
こちらもe-sataの差し込み口が実装されていましたので、変換基板で認識するか確認してみます。
こちらも、もう少し触ってみたくなりました。
eSataですが、実装されている差し込み口は通常のsataの形状なので、ご注意ください(eSata用ではありません)。eSata端子のアダプタとつなぐには、eSata-Sataという特殊なケーブルが必要になります。
電源が供給できれば、内部で二枚差しになるということですね。
http://store.voyage.hk/" target="_blank">http://store.voyage.hk/
基本モデルで189ドルだから、多少値上げされたようです(以前は175ドル)。消費税アップに対応したということはないだろうから(^^;;;。
ATOMですが、こんなのも出るみたいです。
http://gigazine.net/news/20140413-minnowboard-max/" target="_blank">http://gigazine.net/news/20140413-minnowboard-max/
TDP 6Wでx86が動くのであれば、ARMの板は、BBBくらいの値段のものしか売れないかもですね。
情報ありがとうございます。面白そうですね。New AlixもTDPは6W程度ですので、同じようなものですね。価格はこっちの方が優位がありそうですね。ただ、ssd接続はちょっと苦しいかなと思います。pcieのssdって、ほとんど製品がありませんから。
New Alixのarm機に対する圧倒的優位性は安定度ですね。普通に再生して、再生中断なし、音飛びなしの世界は一度経験すると、もうarm艱難辛苦の世界には戻れないです。軟弱ですが(^^;;;(^^;;;。
>pcieのssdって、ほとんど製品がありませんから
確かに。私のところには、eeepc 901x用のssdが何枚か転がってるんですが、ものが少ないので割高でした。
別スレのほうがいいのかと思いますが、分かれば教えて下さい。
mpd0.19はdlnaが使えるらしいんですが(ガセかも)、組み込むライブラリーは何になるんでしょうか?
--enable-upnpなのかなって思うのですが、my-configでエラーになります。
> 確かに。私のところには、eeepc 901x用のssdが何枚か転がってるんですが、ものが少ないので割高でした。
ほんと、pcie用のssdって割高なのですよね。あと、New Alixの場合はサイズの関係でpcieポートに刺せないということもあるかもしれません。
> mpd0.19はdlnaが使えるらしいんですが(ガセかも)、組み込むライブラリーは何になるんでしょうか?
0.19はフォローしていないので、分かりません(^^;;;。dlnaが使えるとなると、面白そうですね。
パージョンは以下のように表示されます。
Linux voyage 3.10.11-voyage #1 SMP Mon Sep 16 10:53:01 HKT 2013 i686
Version: 0.9.2 (Build Date 20131219)
教えていただきたいのは、リアルタイム関係のことです。
インストールされているMPD(0.18)の設定ファイルをみたところ、なんの記述もないので、リアルタイム動作にはなっていないということなのでしょうか? ちなみにリアルタイムオプションを記述してみたところ、とくにエラーとはならず、動作はしています。
NewAlix倶楽部にようこそ。ようやくVoyageStoreで再販売が開始されたようですね。
NewAlixの最大のメリットは安定性でしょうね。音はもちろん良いのですが、その上で安定しているというのは大きな強みだと思います。内蔵のSSDにシステムはセットアップ済で手がかからないというのも良いですね。ただこれは課題もあって、何かいじるにはちょっとノウハウが必要かもしれません。
それで、mpdですがリアルタホムオプションに対応するパッチはかかっていないはずです。
> Linux voyage 3.10.11-voyage #1 SMP Mon Sep 16 10:53:01 HKT 2013 i686
とあるようにカーネルもRTカーネルではないので、パッチもかかっていないということです。
> ちなみにリアルタイムオプションを記述してみたところ、とくにエラーとはならず、動作はしています。
これはエラーになるはずですが、具体的にどうな操作をされましたか。
realtime_option
{ memlock "yes" stack_reserve "1024" heap_reserve "10240" main_priority "OTHER:0" player_priority "FIFO:32" decoder_priority "FIFO:31" update_priority "OTHER:0"
}
失礼しました。rtoptパッチはかかっているようですね。以前の版ではかかっていなかったので、勘違いしていました。
ただ直前のメッセージに書きましたが、rtoptパッチの優先度の指定はrtカーネルでないとあまり意味はありません。という次第でコメントアウトされたのが正解かと思います。
僕が嵌まったのと同じ罠につかまっているようですね。
NewAlixでUSBからブートするには、このページに書いてある方法で
http://wiki.voyage.hk/how_do_i_install_voyage-current_on_a_usb_flash_drive_with_extlinux.txt" target="_blank">http://wiki.voyage.hk/how_do_i_install_voyage-current_on_a_usb_flash_drive_with_extlinux.txt
ブートローダをextlinuxに変更して下さい。ただし、リンク先の記述は一箇所間違えていて、extlinuxのインストール時のオプション-iが抜けています。修正して試して下さい。
ssdを外すとブート出来るというのは知りませんでした。なんでですかね。ALSAデバイスが認識されないのは、configの内容か/libの設定を疑った方がいいと思います。
不思議ですね。インストールする環境が違うからでしょうか。僕はVoyageMPDをインストールした直後にイメージディスクのままでブートローダを変更しています。この場合は-iが必要です。
> しかし、ALSAデバイスが認識されない状態は変わりませんでした。
多分、usb-audio関連のモジュールがロードされていないのだと思います。lsmodの結果で確認して下さい。
カーネルのビルドはどういう手順でやっていますか。
CuboxにVoyage Muboxをインストールした環境がとても安定していて、弄ることもなく使い続けています。(音楽を美しい音で聴くという意味では、文句無しということになりますが)
ここに来て、AtomマシンにVoyage MPDをインストールして使っていたサブマシンの側を少しバージョンアップすることにしました。現在メインで使っているCuboxをサブの方に持って行くことにして、メインの方に新しくNew Alixを入れることにしました。
先日、Voyage Storeの方で注文をし、届くのを待つばかりの状態です。
皆さんの書き込みを拝見すると、音楽データーが入っているサーバーのディレクトリーのnfsマウント設定くらいで動作しそうな感じで、あまり弄るところはないかも分かりませんが、新しいマシンなので楽しみです。
また、到着して設定が終わったら、報告させて頂きます。
New Alixへの参戦?のご挨拶まで
最近I2Sに嵌まってしまい(^^;;;、NewAlixはちょっとごぶさたですが、愛用しているのはこちらですね。
> 皆さんの書き込みを拝見すると、音楽データーが入っているサーバーのディレクトリーのnfsマウント設定くらいで動作しそうな感じで、あまり弄るところはないかも分かりませんが、新しいマシンなので楽しみです。
その通りです。あまりいじる必要はないと思います。ディフォルトの状態で音がして、安定して使えるといのがとてもいいですね。僕はカーネルのrt化、arch linux、TinyCoreなどを試してみましたが、Cuboxで経験したような大きな差は感じません。ディフォルトでお使い頂いて十分じゃないかと思います。
音に関する、チューニングとしては、タイマーはhpet化できるので、これはやっておいた方がいいと思います。
New Alixは、まだ到着していませんが、情報ありがとうございました。
hpet化の情報ありがとうございました。ブート時点でにオプションを渡してやればいいのかな?と推測しています。
New Alixはx86系なので、ブートローダーはGrub系だとしたら、grub.confに記載することになるのかな?…
などなど、到着前から、想像たくましくしております。
来週頭くらいには到着しそうですので、また、動作報告させて頂きます。
/boot/grub/menu.lst を編集し、kernel の行の末尾に、clocksource=hpet を追加
確認は、
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
今日、New Alixが夕方に到着し、設定を終えて動作を確認しているところです。
時々、つないでいるUSB/DDCが見えなくなる症状が出ています。(後ほど詳述します)
設定自体は小一時間くらいで終わりました。
当初ボードが上手くケースに収まらずに悪戦苦闘しましたが、D-Sub9端子の両端についているネジを外し忘れたためでした。(マニュアルを後から見るとremove hex nutsと書いてあったのですが、早く設置をしたくて慌てて作業したためです。急がばまわれですね)
マシンの物理的な設置が終わってからは、いつものネットワーク周りの設定や、マウントやmpd.confの編集くらいですので、15~20分くらいで終わると思います。
備忘録をかねて、以下、進めたことを記しておきます。
・クライアントマシンとシリアル接続をした上で、起動
・音楽データーのマウント用のディレクトリー作成と/var/lib/mpd/music下にリンク
・音楽を保管しているサーバーのディレクトリーをnfsマウントするように、fstabに記述
・aplay -l でサウンドカードが認識されているか確認
(上記の結果から、mpd.confのサウンドカードはデフォルトのhw:0,0のままで認識されることを確認)
・アルバムアート表示用に、ウェブサーバー nginx-lightがインストールされていることを確認(リンクの作成等の設定も済んでいました)
※いったん、再起動をかけて、音が出ることを確認
・hpet化のために、grubの設定ファイルのカーネルのパラメーター欄にclocksource=hpet
を記述
・DHCP接続になっているので、固定アドレスになるように/etc/network/interfaceを変更
※再び、再起動をかけて、sshで入れるかの確認、hpet化の確認
ということで、一連の基本的な設定作業が完了しました。
まだ、mpd.confの設定をはじめ、細かなチューニングはこれからというところです。
それで、1時間くらい色々なファイルを再生してみましたが、Cuboxの持っていた力強さに加えて、鮮明さが加わった感じで、好みです。
ただ、24bit/192kのデーター再生のところで時々チリチリとノイズが入るので、mpd.confのaudio_buffersの辺りをいじって様子をみています。
これまで再生していて、2回程、音が出なくなりました。USBにつないでいるDDCが認識されなくなるようで、USBケーブルを抜いて指し直せば、再認識されて動作は再開されます。
dmesgを確認すると、音が出なくなるまでに、
usb_set_interface failed (-71)
とのメッセージが5回程出ているようです。
この時点で、aplay -lでみてみると、使えるサウンドカードはないとの表示になります。
エラーメッセージで検索をかけて調べたりしていますが、まだ、よく分かっていません。
たまたま、24bit/192khzのデーターを再生していた時に起きたのですが、CDから取り込んだFlacでも同様に起きるのか、再現する状況をみてみたいと思います。
ということで、設定と動作確認、並びに未解決の症状報告まで。
また、使い続けてみて、何か分かったら、追加報告をします。
思わぬエラーが出ましたが、やはり、システムを変えて音が良くなると楽しいですね。
参考までに、当方の環境は、
・USB/DDC=Hiface Two Pro-同軸接続-DAC=Lux DA-100という構成です。
再び、エラーが出て、止まりました。
dmesgを追いかけながら、再生ファイルを切り換えたりしていたのですが、先程の
usb_set_interface failed (-71)
のメッセージに続いて、今度は、
mpd[3531]: segfault at 14 ip 0806cf86 sp b45140d0 error 4 in mpd[8048000+86000]
とのエラーが出て止まりました。
CDから取り込んだファイルでは今のところ起きておらず、ハイレゾのファイルを再生して、手動で次の曲に進めたりした時にエラーが出ることが多いようです。(これまでのところ)
僕の環境は NewAlix -> uda3 -> aitlabo dac ですが、ご指摘のようなエラーは発生したことがありません。ただし、普段の再生はほとんどが172KHz-diffと44.1KHz-flacです。
Hifaceのドライバは特製だから、そのあたりが怪しいかもしれませんね。ddcを変えることができるなら、それで試せば切り分けられると思います。
早速のリプライ、どうもありがとうございました。
やはり、DDC等の機材由来の問題なのでしょうね。
残念ながら、今のところ、DDCは、これしか持ち合わせがありません。
LuxのDA-100は、USB接続だと96khzまでしか対応していませんので、192khzのデーターはダウンコンバートする形になってしまい、ハイレゾ再生の挙動を確かめることはできませんね。
ひょっとすると、driverを差し替えると解決の糸口が見えるかなと思い、M2TECHのウェブサイトをみてました。ただ、下記のように記されていて、専用のドライバーではないみたいで、現状のままでは打つ手がないみたいです。
No drivers are necessary with either Mac and Linux computers
ダメ元で、新しいカーネルソースからコンパイルしてみようかなと思います。
Debianベースなので、debファイルで作成され、Grub関連のファイルも設定されると思いますので、カーネルの切り換えは比較的簡単かなと期待しています。
DAC、DDCともに、Voyage MPDを知る前に、WindowsやMac環境での使用を想定して購入したものですので、そろそろ買い換え時期かな?とも(と、自分で自分の背中を押しつつあります(^_^; )
> ダメ元で、新しいカーネルソースからコンパイルしてみようかなと思います。
この手はあるかもしれませんね。おっしゃるようにNewAlixでのカーネルビルドは実機を使えば、楽です。Hiface用のドライバも voyageMPD 9.02用のコンフィグを使えば、オンになっていると思います。
ビルドのやり方はサイトの方に書き込んでありますので、よろしければご参照ください。どのカーネルを選ぶかは難しいですね。奇数版はテスト版ですので、最新(3.14)、一世代前(3.12)などが候補かと思います。
あとこの手のエラーはソースが原因ということはよくあります(僕の経験ではかなりの確率でそうでした)。別の192KHzソースでも発生するかどうかで切り分けられますので、まだであれば、確認された方がいいと思います。
> DAC、DDCともに、Voyage MPDを知る前に、WindowsやMac環境での使用を想定して購入したものですので、そろそろ買い換え時期かな?とも(と、自分で自分の背中を押しつつあります(^_^; )
どうせ変えるならI2S接続とか(^^;;;。冗談ですよ、もちろん。
カーネルパッケージ等を入れようと思い、とりあえず最新の状態に…と思い、
apt-get upgrade
したところ、カーネルイメージの最新版が提供されていました。
(バージョンナンバーはかわらず、作成日付が今年1月14日になっていました)
まずは、このバージョンを使ってみようと考えて、思い当たるところをいじってみました。
今のところ、mpd.confの中のaudio_buffer_sizeを大きくするのが多少効果があるようです。
これまで、2048を指定していたのですが、8192にしてみました。
それで、今朝、出かける前にリピートプレイにして、先程帰って来て様子をみたところ、無事再生が続いていました。
ただ、時々、チリッというノイズは(前ほどではないにせよ)入りますね。
環境次第なのでしょうがaudio_buffer_sizeの値はどれくらいが適切なのでしょうね?
後、I2S接続への誘いありがとうございます。まだ、あまりよく分かっていないのですが、別のスレッドで盛り上がっているものですよね(^_^)
BBBも面白そうだなと(特に、ハード的な部分もいじれそうなので)思うのですが、まずは、New Alixを安定して使えるところまで何とかしてやろうと思います。
将来I2S接続にも対応できて、New AlixにつなげるDDCというのはあるのでしょうか?(もう、I2Sへの興味津々状態です(^_^; )
3.12や3.14も順次試してみたいと思います。また、挙動が分かれば報告します。
カーネルを3.14に変えて、他にいくつかのポイントを調整したところ、USB/DDCが見えなくなることは回避できるようになってきました。(ただ、時々、チリッというノイズはのるのですが)
・カーネルの作成に当たっては、Voyage MPDオリジナルのカーネルのconfigを元に作成しました。
・mpd.confのaudio_buffer_sizeの値を16384にしてみました
・後、fstabは、nfs接続の上で、rsize=8192のパラメーターを与えていましたが、これを外しました。
(rsize=8192は、Cuboxを使っていた時に出ていた、cannot submit urb… というエラー対策のために入れていたものです)
USB/DDCが見えなくなるというエラーが発生する条件が分からないまま、手探りの調整ですが、一応、効果があったようです。
しばらく、この状態で使ってみながら、ゆくゆくはyoさんお勧めのI2S接続の沼にはまってみたいと思います(^_^)
New Alixにも使えて、将来I2S接続に発展させれそうなDDCがあれば、購入検討をしようかなと
> (ただ、時々、チリッというノイズはのるのですが)
という部分が気になりますね。192KHzの再生だけで発生するとすれば、容量が大きいことと他の要因(例えば、ドライバ)の組み合わせで発生する問題ですかね。ということで
> ・後、fstabは、nfs接続の上で、rsize=8192のパラメーターを与えていましたが、これを外しました。
可能なら、cifs接続だとどうなるか試してみるという手はあります。一般論ではnfsの方が効率は良いはずですが、こればかりは、やってみないと分からない世界ですので(^^;;;。
> ゆくゆくはyoさんお勧めのI2S接続の沼にはまってみたいと思います(^_^)
いやーー。泥沼なので(^^;;;、お勧めしているわけじゃないです。
まあ、ハードをレベルアップするのであれば、I2S接続可能なdac(例えば、buffalo III)を使い、ddcはI2S出力可能ものを選び(例えばArmanero)、とりあえず、ddcとdacはI2S接続して使うという方法はありますね。初歩的レベルのハンダ付けの腕と多少の電子回路の知識は必要ですが。もっとも後半のスキル不足は関連するスレッドになきこむという解決策はありますが(僕の得意技です^^;;;)。
ちなみにArmaneroの情報はここにあります(Combo384という基板です)。
http://www.tec-sol.com/products/elec/amanero/index.php" target="_blank">http://www.tec-sol.com/products/elec/amanero/index.php
今朝はありがとうございました。
先日、ようやくNEW ALIXが届きました。
まずは、starter kitのままで、手っ取り早くUSBメモリで音を確認しようとしたのですが、音がでません。
デバイスも認識され、GMPCで楽曲も認識されているので、不思議に思いyoさんに聞いてしまったのですが、DDCをUDA2からDIYIHKのDXIOPRO2に変えたらすんなり音が出たので、UDA2の問題であることがわかりました。
それで思い出しました。2011年5月頃に話題になった量子化ビット問題。「MPDビルド時にlibsndfileがインストールされていると、24ビット(S24_3LE)対応のハードでwavファイルが再生できなくなるので、明に-disable-sndfileを設定する必要がある」でした。すっかり忘れていました。
まさにDXIOPRO2はS32_LEでUDA2はS24_3LEです。ですが、今時Voyage MPD Starter Kitがこれに対応していないとは思われないのですが。
My-configに-disable-sndfileが設定されているかどうか確認するのはどうすればよかったでしょう?(すみません。すっかり忘れてしまいました。)
それと、どなたかUDA2で音出しできた方はいらっしゃいませんか?
手っ取り早くがそうでなくなり、結局、自分でインストールし直した方が早そうな気がしてきました。
ただし、USB-CDdriveからの起動ができないのは困りますよね。今のSSDに上書きしてしまうのもちょっと怖いので、バックアップも含めた方法を考えないといけませんね。eSATAならOKということですが、TBのHDDにvoyageのみというのもどうかと思いますし。
なお、当方では、USBメモリ(USB-HDD)を付けたまま、再起動すると、ネットワークが認識しなくなります。USBメモリを抜いて再起動すると認識されます。何かが変です。
> それと、どなたかUDA2で音出しできた方はいらっしゃいませんか?
NewAlixにつないでいるdacはaitlaboでddc部分はuda3ですが、問題なく接続出来ています。最初の音だしはスターターキットを使いましたが、何も特別なことはしなくても、一発で音が出たと思います。uda2とuda3の違いは録音機能があるかどうかだと思いますので、不思議ですね。
> -disable-sndfileが設定されているかどうか確認するのはどうすればよかったでしょう?
/usr/bin/mpd -V
で表示されるサービスの中に入っていなければ、設定されていないと思います。
あと、設定されていても、mpd.confでプラグインをdisableすれば対応出来ます。
decoder {
plugin "sndfile"
enabled "no"
}
と追加すれば、OKです。
> なお、当方では、USBメモリ(USB-HDD)を付けたまま、再起動すると、ネットワークが認識しなくなります。USBメモリを抜いて再起動すると認識されます。何かが変です。
これはUSBメモリから起動され、起動が上手くいかず、どこかでハングしているということです。多分OS(grub)の問題だと思いますが、NewAlixは完全にディスプレイ機能がないヘッドレスなのでusb媒体+grubでは上手く起動できないようです。syslinuxを使うしか解決策はありません。やり方はこのスレッドの#4378を参照して下さい。
> ただし、USB-CDdriveからの起動ができないのは困りますよね。今のSSDに上書きしてしまうのもちょっと怖いので、バックアップも含めた方法を考えないといけませんね。eSATAならOKということですが、TBのHDDにvoyageのみというのもどうかと思いますし。
USB-CDDriveも起動出来ない理由はブートローダがgrubだからです。逃げ方としてはメインマシンでVoyageシステムをusbメモリに作成し、そのブートローダをsyslinux(extlinux)に変えるしかなさそうです。
あとは外部でマイクロssdを読める環境があれば(変換アダプタという手もあります)、そちらでシステムを作ればいいです。
あと、このあたりいろいろ試されるのであれば、シリアル接続は必須です。僕の場合、Windowsではどうやってもつながらないので、Linux minicomを使ってつないでいます。asoyajiさんのところでも駄目だとなると、つなぐには何か魔法の呪文があるのですかね。空いているLinuxマシンをお持ちでしょうから(旧alixでよい)、それでつないでみることをお勧めします。インストールは
apt-get install minicom
です。
/usr/bin/mpd -V の中にwavもflacもありました。sndfile enable no もだめでした。そちらでUDA2,UDA3ともに問題なく音が出ているとすれば、何か別の問題ですね。
設定は旧ALIXにmicroSSDを繋いでインストールし、NEW ALIXに戻せばいいですね。
シリアル接続はyoさんのところでもwindowsはだめなんですか。どうしたんでしょうね。旧ALIXでやってみます。
NewALIXをシリアルでWindowsにつなげられましたので、ご参考まで。
USBシリアルケーブルをそのままではつながらなくて、リバースアダプタをかませたら繋がりました。
自分は、以下のような感じになっています。
Putty or Teraterm(115200N)
|COMx
Windows7
|USB
USBシリアル BSUSSRC06
|9P
シリアルリバースアダプタ D-Sub9ピンオス - D-Sub9ピンメス
|9P
D-Sub9ピンメス - D-Sub9ピンメス
|9P
NewALIX
以上、どうぞよろしくお願いします。
root@voyage:~# cat /proc/asound/cards
0 [EZUSBUDA3 ]: USB-Audio - EZ_USB(UDA3)
Cypress EZ_USB(UDA3) at usb-0000:00:12.2-1, high speed
root@voyage:~# cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S24_3LE
subformat: STD
channels: 2
rate: 88200 (88200/1)
period_size: 11025
buffer_size: 44100
root@voyage:~# cat /proc/asound/card0/pcm0p/sub0/sw_params
tstamp_mode: NONE
period_step: 1
avail_min: 11025
start_threshold: 33075
stop_threshold: 44100
silence_threshold: 0
silence_size: 0
boundary: 1445068800
root@voyage:~# cat /proc/asound/card0/pcm0p/sub0/status
state: RUNNING
owner_pid : 3587
trigger_time: 212.726274063
tstamp : 284.010897729
delay : 40385
avail : 3793
avail_max : 43588
-----
hw_ptr : 6288047
appl_ptr : 6332147
と、S24_3LEでも問題なく音は出ています。
I2S実験でNewAlixはご無沙汰だったのですが、久しぶりにつなぎなおしたら、Lanの差し込み口を間違え、バタバタしました。立ち上がらないのには、焦りましたね(^^;;;。
ストレートケーブルをリバースに変換するアダプターですね。早速買ってきます。ありがとうございます。
yoさん
うちのもUDA3かもしれません(帰ったら調べてみます)。PC直結のfo0bar2000ではちゃんと音がでますし、DXIOPRO2(XMOS)でも出るので、不思議です。
$ git clone git://github.com/panicking/snd-usb-asyncaudio.git
$ cd snd-usb-asyncaudio
$ make
$ ls
Makefile chip.c chip.o modules.order pcm.h snd-usb-hiface.ko snd-usb-hiface.mod.c snd-usb-hiface.o Module.symvers chip.h dkms.conf pcm.c pcm.o snd-usb-hiface.ko.unsigned snd-usb-hiface.mod.o test-rates.sh
# insmod ./snd-usb-hiface.ko
insmod: error inserting './snd-usb-hiface.ko': -1 Unknown symbol in module
となってしまいます。どうすれば良いか教えていただきたく
お願いします。
> insmod: error inserting './snd-usb-hiface.ko': -1 Unknown symbol in module
このエラーは初めてみましたが、その前のビルドは正常に終わったのでしょうか。
あと、hiface対応のモジュールは新しい(多分3.8以降?)カーネルだとビルドしなくてもconfigの設定で組み込むことが出来るようになっています。CentOSを使ったことがないので、なんとも言えませんがこちらで対応することは出来ませんか。
$ make
make -C /lib/modules/2.6.32-431.3.1.el6.x86_64/build SUBDIRS=/home/kkuma/Downloads/snd-usb-asyncaudio-master modules
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-431.3.1.el6.x86_64' に入ります
CC [M] /home/kkuma/Downloads/snd-usb-asyncaudio-master/chip.o
CC [M] /home/kkuma/Downloads/snd-usb-asyncaudio-master/pcm.o
/home/kkuma/Downloads/snd-usb-asyncaudio-master/pcm.c:72: 警告: initialization discards qualifiers from pointer target type
/home/kkuma/Downloads/snd-usb-asyncaudio-master/pcm.c: In function ‘hiface_pcm_open’:
/home/kkuma/Downloads/snd-usb-asyncaudio-master/pcm.c:385: 警告: passing argument 4 of ‘snd_pcm_hw_constraint_list’ discards qualifiers from pointer target type
include/sound/pcm.h:792: note: expected ‘struct snd_pcm_hw_constraint_list *’ but argument is of type ‘const struct snd_pcm_hw_constraint_list *’
LD [M] /home/kkuma/Downloads/snd-usb-asyncaudio-master/snd-usb-hiface.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/kkuma/Downloads/snd-usb-asyncaudio-master/snd-usb-hiface.mod.o
LD [M] /home/kkuma/Downloads/snd-usb-asyncaudio-master/snd-usb-hiface.ko.unsigned
NO SIGN [M] /home/kkuma/Downloads/snd-usb-asyncaudio-master/snd-usb-hiface.ko
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-431.3.1.el6.x86_64' から出ます
一応エラーは出ない状態で終了します。3.8以降のカーネルだと現実的選択でubuntu or Debian となると思いますがrpm系に慣れているので困っています。Fedoraは安定性で問題外です。とりあえずVirtualBox上でubuntuはエラーが出ない事は確認出来ています。
参考にこのやり方が分かるサイトのご紹介をお願いします。
pcm.cの72行目と385行目のワーニングが原因ですかね。プログラムを読んでみないとこれ以上は分からないです。
カーネルヘッダーのアンマッチが考えられますが、カーネルのバージョンはいくつなのですかね。
> 参考にこのやり方が分かるサイトのご紹介をお願いします。
メニューコンフィグで drivers->siound->alsa->uabaudio-> と選択すれば、hifaceドライバを選択する項目が出てくると思いました。
kernel-devel-2.6.32-431.3.1.el6.x86_64
kernel-doc-2.6.32-431.3.1.el6.noarch
kernel-firmware-2.6.32-431.3.1.el6.noarch
kernel-headers-2.6.32-431.3.1.el6.x86_64
kernel自体に問題があるらしいです。EDO kernel を使えとhttp://www.aysabtu.dk/blog/category/uncategorized/" target="_blank">http://www.aysabtu.dk/blog/category/uncategorized/ ここに書いてありますがEDOって何でしょう。
スレッドを新しくしました。
動作報告です。
arch linuxは現在3.8.13-21-ARCHですが、今まで通りの方法でmake installすれば、botic driverが動きました。
[root@arch-botic ~]# uname -a
Linux arch-botic 3.8.13-21-ARCH #1 SMP Tue Apr 29 18:41:30 MDT 2014 armv7l GNU/Linux
[root@arch-botic ~]# echo BB-BONE-BOTIC3 > /sys/devices/bone_capemgr.*/slots
[root@arch-botic ~]# cat /proc/asound/cards
0 [Botic ]: TPA_Botic - TPA Botic
TPA Botic
top - 23:41:36 up 5 min, 1 user, load average: 0.10, 0.11, 0.05
Tasks: 61 total, 1 running, 60 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 2.7 sy, 0.0 ni, 94.6 id, 1.0 wa, 0.0 hi, 1.0 si, 0.0 st
KiB Mem: 507492 total, 137160 used, 370332 free, 6276 buffers
KiB Swap: 0 total, 0 used, 0 free. 103132 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
182 root 20 0 0 0 0 S 2.3 0.0 0:01.70 cifsd
148 root 20 0 91608 12832 5324 S 2.0 2.5 0:03.00 mpd
15 root 20 0 0 0 0 S 0.3 0.0 0:00.23 kworker/0:1
286 root 20 0 10328 3328 2664 S 0.3 0.7 0:00.30 sshd
external-clock-switchを使えるように(たぶん)am335x-boneblack.dtbを修正しましたので、よろしければ検証お願いします。
ファイルを展開後、am335x-boneblack.dtbを/dtbsにコピーして再起動です。
https://drive.google.com/file/d/0BxnbJHx0_xurUFMyZ3c4dDRZX1k/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurUFMyZ3c4dDRZX1k/edit?usp=sharing
ソースをみるとexternal-clock-switchとして以下の3つ使えるようですが、botic_driver/firmware/am335x-boneblack.dtsでは、external-clock-switchが無効にされてるようです(BOTIC1に相当)
/* external clock switch options */
// 0x184 0x1f /* conf_uart1_txd.GPIO0_15 | OUTPUT | PULLUP */
// 0x180 0x1f /* conf_uart1_rxd.GPIO0_14 | OUTPUT | PULLUP */
// 0x078 0x1f /* conf_gpmc_ben1.GPIO1_28 | OUTPUT | PULLUP */
今回UPしたam335x-boneblack.dtbは、botic_driver/firmware/BB-BONE-BOTIC3-00A0.dtsを参考にして、external-clock-switchが使えるよう以下の部分を変更してみました。
(BB-BONE-BOTIC1-00A0.dtsとBB-BONE-BOTIC3-00A0.dtsのdiffから判断)
--- am335x-boneblack.dts(昨日UPしたもの)
+++ am335x-boneblack.dts(今回変更したもの)
@@ -70,7 +70,7 @@
0x1a8 0x1f /* mcasp0_axr1.GPIO1_27 | OUTPUT | PULLUP */
/* external clock switch options */
-// 0x184 0x1f /* conf_uart1_txd.GPIO0_15 | OUTPUT | PULLUP */
+ 0x184 0x1f /* conf_uart1_txd.GPIO0_15 | OUTPUT | PULLUP */
// 0x180 0x1f /* conf_uart1_rxd.GPIO0_14 | OUTPUT | PULLUP */
// 0x078 0x1f /* conf_gpmc_ben1.GPIO1_28 | OUTPUT | PULLUP */
>;
@@ -192,6 +192,6 @@
* - GPIO set(+1) and number - according the selection above
* - mode: +1 = ext 44k1, +2 = ext 48k, +3 reverse high/low
*/
- external-clock-switch = <&gpio0 15 0>; /* gpio0_15: not used */
+ external-clock-switch = <&gpio1 15 3>; /* gpio0_15: 44k1 and 48k */
};
};
<&gpio1 15 x>で切り替えるようですね。
0:48k(BOTIC1)
1:44k1(BOTIC2)
2:ext 48k
3:reverse high/low(BOTIC3)
>external-clock-switchを使えるように(たぶん)am335x-boneblack.dtbを修正
ありがとうございます。これを期待してました。
早速、今夜にでも、テストに取りかからせていただきます。
>external-clock-switchを使えるように(たぶん)am335x-boneblack.dtbを修正しましたので、よろしければ検証お願いします。
ファイルを展開後、am335x-boneblack.dtbを/dtbsにコピーして再起動です。
上の手順の後、外部クロックをつなぐ、つながないの2バージョンで再起動してみました。
結果は、どちらの場合もBOTIC1で起動します。(Debianです)
取り急ぎ報告でした。
ついでですが、結線状態です。BBBは画鋲のプラスチックの箱に入れてあります。最近、内側に薄い銅版、外側にアルミテープ張りました。外観がますますボロボロです。
これだけの結線で、音が劇的といえるほどグレードアップします。驚きです。
http://mimizukobo.sakura.ne.jp/upload/moct_I2S_01.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/moct_I2S_01.jpg
勘違いしていました。早とちりで申し訳ありません。
am335x-boneblack.dtbをrootfsの方の/boot/dtbsにコピーしてそのつもりになっておりました。
今度こそbootパーティションの方の/dtbsにコピーしました。
root@beagle:~# cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 102
buffer_size: 16384
BOTIC3に変わっているようです。amaneroを接続し再生しようとしますが反応がありません。5秒後ぐらいにmpdが落ちました。今はこんな感じです。
>BOTIC3に変わっているようです。amaneroを接続し再生しようとしますが反応がありません。5秒後ぐらいにmpdが落ちました。
変更箇所は概ね合っている感じですね。
rt_opt無しのmpdでも同じ結果でしょうか?
ソースを眺めても、これ以上変更できそうなところが無いんですよね。
3.13.xに比べてcapeに対するpatchが少ないので、その辺りも関係しているかもしれないですね。
3.13.xなら動くのかなぁ・・・
自分でtest出来る環境を整えられればいいんですが、twlさんから笑い取れるくらい工作ベタなんですよね。
tinkerさん、せっかくお作りになられたカーネルを試す時間がなくお役にたてず申し訳ありません。でもmoctさんのような力強い殉教者(? (^^; )がご参加されているので進捗ははかどりそうですね。
連休も過ぎたあたりからスケープゴートになりたいと思っておりますので、これからも是非素敵なカーネルをお願い申し上げます。
tinkerさん
rt kernelとbotic3ドライバの公開、改めて、ありがとうございます。
https://drive.google.com/file/d/0BxnbJHx0_xurUFMyZ3c4dDRZX1k/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurUFMyZ3c4dDRZX1k/edit?usp=sharing
このファイルをコピーしてみましたが、わたしのところでも動きませんでした。
moctさんの場合と同じで、外部クロックが認識されず、mpdは動いているのにGMPCが接続できなくなります。ssh接続は保たれます。
dtsファイルを復元してbotic1に設定してみました。
# pacman -S dtc
# dtc -I dtb -O dts -o am335x-boneblack.dts am335x-boneblack.dtb
# nano am335x-boneblack.dts
(適切に編集)
------
onboard-clock-enable = <0x43 0x1b 0x1>;
external-clock-switch = <0x2f 0xf 0x0>;
------
# dtc -I dts -O dtb -o am335x-boneblack.dtb am335x-boneblack.dts
# cp am335x-boneblack.dtb /boot/dtbs
(arch linuxです)
が、挙動は同じで音は出ませんでした。
どうも後からのdts/dtbがどこかおかしいようです。
一つ前に戻ってみました。
https://drive.google.com/file/d/0BxnbJHx0_xurQV9mbmtYNmdKVkU/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurQV9mbmtYNmdKVkU/edit?usp=sharing
このdtbファイルからdtsファイルを復元し、以下のように書き換えます。
------
onboard-clock-enable = <0x43 0x1b 0x0>;
external-clock-switch = <0x2f 0xf 0x3>;
------
再度
# dtc -I dts -O dtb -o am335x-boneblack.dtb am335x-boneblack.dts
# cp am335x-boneblack.dtb /boot/dtbs
# sync
# rebt(独自スクリプト)
起動時に外部クロック(D-Clock Neutrino)が認識され、音が出ました。外部クロックを手動で切り換えると、48kHz系も正常な早さで再生できます。mpdは0.18.9-dsd-rtです。
[root@arch-botic ~]# mpd -V
Music Player Daemon 0.18.9-dsd
[root@arch-botic ~]# systemctl status mpd
● mpd.service - Music Player Daemon
Loaded: loaded (/usr/lib/systemd/system/mpd.service; enabled)
Active: active (running) since Thu 1970-01-01 09:00:11 JST; 44 years 4 months ago
Main PID: 258 (mpd)
CGroup: /system.slice/mpd.service
└─258 /usr/local/bin/mpd --no-daemon /etc/mpd.conf
音は最高です。キンキンギラギラが皆無に近く、解像度は恐ろしいほど。美事なハモリ方をします。もう何も要らない印象。
tinkerさん、改めて感謝致します。
しかし、topを表示させようとしたら、表示されなくなっています。なぜでしょう。
onboard-clock-enable = <0x43 0x1b 0x0>;
が影響してるのでしょうか。
まあ、音がもの凄く良いので、鑑賞が先。検証は後回しですね。でも、その前に、皆様おやすみなさいませ。
検証ありがとうございます。
修正されたdtb,dtsをUPして頂いて、moctさんにもtestしてもらえるといいですね。
>どうも後からのdts/dtbがどこかおかしいようです。
ここの修正はいらないってことですね。
-// 0x184 0x1f /* conf_uart1_txd.GPIO0_15 | OUTPUT | PULLUP */
+ 0x184 0x1f /* conf_uart1_txd.GPIO0_15 | OUTPUT | PULLUP */
>onboard-clock-enable = <0x43 0x1b 0x0>;
>external-clock-switch = <0x2f 0xf 0x3>;
16進で書けばOKってっことなんですね。
>しかし、topを表示させようとしたら、表示されなくなっています。なぜでしょう。
これは分からないです。こんな影響が出るんですね。
external-clock-switch = <0x2f 0xf 0x3>;だけにすればどうなるんでしょうか。
>音は最高です。キンキンギラギラが皆無に近く、解像度は恐ろしいほど。美事なハモリ方をします。もう何も要らない印象
capeはいつ出るのかなぁ、早く試してみたいです。
もうすぐrt2が出るので、rt2が出たらkernelの作り方などまとめてみます。
3.14の目玉の一つは、高速化されたDeadlineらしいです。
お久しぶりです。
いまだ、BBB+I2Sでデビュー出来てません(;_;)
syuさん,moctさんに協力して頂いて、なんとか動くようになりました。
時間がとれるときに検証して頂けると助かります。
本当にありがとうございます。
私の方も先ほど、ついに、いや見事に、音だし成功しました。
これは見事いう他にない鳴り方です。曲間が静かで長く感じます。本当にハモリますね。
そして、嬉しいことにamaneroが自動で追従します。普通にUSBにamaneroを接続したまま再起動しました。44.1/16で音が出るのを確認した後、恐る恐る192/24の再生をしました。これが普通に鳴るんです。
ということは、BBBとdacのスイッチを入れるだけでこの音が手に入ります。楽チンでかつ嬉しいことです。tinkerさんsyuさん、改めて感謝します。
debianではtop大丈夫です。
44.1/16 mpd 0185dsd-rt
top - 01:34:59 up 24 min, 1 user, load average: 0.01, 0.07, 0.13
Threads: 110 total, 1 running, 109 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.6 us, 4.2 sy, 0.0 ni, 93.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 501944 total, 496096 used, 5848 free, 2336 buffers
KiB Swap: 0 total, 0 used, 0 free, 408768 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6701 mpd -50 0 82048 78m 23m S 1.3 15.9 0:01.44 mpd
2399 root 20 0 18336 876 648 S 1.0 0.2 0:08.99 cpufreqd
7054 root 20 0 4216 1280 880 R 1.0 0.3 0:00.38 top
13 root -2 0 0 0 0 S 0.3 0.0 0:01.66 rcuc/0
20 root -51 0 0 0 0 S 0.3 0.0 0:08.11 irq/28-edma
92 root -55 0 0 0 0 S 0.3 0.0 0:24.25 irq/57-4a100000
93 root -51 0 0 0 0 S 0.3 0.0 0:08.85 irq/
>16進で書けばOKってっことなんですね。
私の環境では、なぜか普通のdtsからdtcしようとしても失敗するので、動作しているdtbから復元しました。16進でないといけないのかは未検証です。
>ここの修正はいらないってことですね。
-// 0x184 0x1f /* conf_uart1_txd.GPIO0_15 | OUTPUT | PULLUP */
+ 0x184 0x1f /* conf_uart1_txd.GPIO0_15 | OUTPUT | PULLUP */
これも結果的にはそうなんですが、無関係な気もします。
皆様
botic3で動作した am335x-boneblack.dts と dtb です。
onboard-clock:0 = disabled
external-clock-switch:3 = reverse high/low
にしています。
http://mimizukobo.sakura.ne.jp/upload/am335x-boneblack.dts-botic3a" target="_blank">http://mimizukobo.sakura.ne.jp/upload/am335x-boneblack.dts-botic3a
このdtsからdtcで作成したdtb
http://mimizukobo.sakura.ne.jp/upload/am335x-boneblack.dtb" target="_blank">http://mimizukobo.sakura.ne.jp/upload/am335x-boneblack.dtb
onboard-clock:1 = enabled
external-clock-switch:3 = reverse high/low
でも動作します。
http://mimizukobo.sakura.ne.jp/upload/am335x-boneblack.dtb-botic3b" target="_blank">http://mimizukobo.sakura.ne.jp/upload/am335x-boneblack.dtb-botic3b
ご検証よろしくお願いします。
moctさん
音良いですよね。もう最高です。
これでtinkerさんのところにtest環境が整えば、最適化されたconfigで作成されたrt kernelをご提供いただけるようになるかと思うと・・・なにか、こう、胸に迫ってくるものがありますね ^^;;
miero氏にも、最大の賛辞をお送りしたいです。
ご協力ありがとうございました。
3.13.x以降のkernelで動作するっていうのは、個人的には大歓迎です。
3.8.xの音はともかくとして、make中にwarningが沢山出るのが気持ち悪いんです。
時間のある時で結構ですので、RTでない3.14.xの検証をお願いできないでしょうか。
RTにしなくても大丈夫だよねって話になるかもしれません。
*.debですが、以下からmake済みのkernel,modules,headers等を貰ってくることが出来ます(ArchのPKGBUILDを眺めてて発見しました)
3.14.2は試していないのですが、3.14.1は問題なくモジュールの作成が出来ました。
http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/" target="_blank">http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/
必要なのは、
http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/3.14.2-bone2-dtbs.tar.gz" target="_blank">http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/3.14.2-bone2-dtbs.tar.gz
http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/3.14.2-bone2-firmware.tar.gz" target="_blank">http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/3.14.2-bone2-firmware.tar.gz
http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/linux-headers-3.14.2-bone2_1.0wheezy_armhf.deb" target="_blank">http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/linux-headers-3.14.2-bone2_1.0wheezy_armhf.deb
http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/linux-image-3.14.2-bone2_1.0wheezy_armhf.deb" target="_blank">http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/linux-image-3.14.2-bone2_1.0wheezy_armhf.deb
*.debについては、arで展開できます。
展開して出てくる data.tar.gz を更に展開するとArchでも使用することが出来ると思います。
ar vx linux-image-3.14.2-bone2_1.0wheezy_armhf.deb
syuさん
capeの販売が始まったら教えて下さいね。
追記
headersは、展開して出てきたdata.tar.gzを/(ルート)において展開すると、/usr/srcに展開してくれます。
また、kernelはファイル名がvmlinuzになっていますので、zImageに変更してお使いください。
volumioでやってみました。
root@volumio:~# uname -a
Linux volumio 3.14.2-bone2 #1 SMP Mon Apr 28 21:36:34 UTC 2014 armv7l GNU/Linux
RTと遜色がないというか、これが一番好きかも知れません。
音の実体感(発音体がそこにある感じ)が今までで一番のように思います。とにかく音を出したらつい聞いてしまいます。
もうこの世界から戻れそうもないです。
top - 17:15:27 up 1:02, 1 user, load average: 0.17, 0.07, 0.06
Threads: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.7 us, 1.0 sy, 0.0 ni, 97.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 505488 total, 471656 used, 33832 free, 7636 buffers
KiB Swap: 0 total, 0 used, 0 free, 417304 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2338 mpd 20 0 92716 16m 2508 S 1.0 3.3 0:34.00 mpd
3739 root 20 0 2668 1184 808 R 0.7 0.2 0:00.16 top
2339 mpd 20 0 92716 16m 2508 S 0.3 3.3 0:12.09 mpd
1 root 20 0 1688 628 528 S 0.0 0.1 0:03.02 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.82 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
>RTと遜色がないというか、これが一番好きかも知れません。
RTでなくとも良さそうですね。あとは好みの問題なんでしょうね。
早くcape出ないかなぁ。
今回の検証で最も大きな成果は、3.8以外のkernelでも3.8と同等の機能が使えることが確認できたことですね。
好みによりkernelのVerが選べますし、3.14ならRT化も容易です。
3.14.2を想定して、簡単にまとめてみました。
gitをcloneしている場合のクロスコンパイルはtools/rebuild.shで再構築すればいいのですが、cloneしていない場合やBBBでコンパイルする場合は、パッチで済ますほうがサイズが小さいので良いかなと思います。
問題は、RT化した場合のヘッダの構築をどうしようか悩んでます。
カーネルビルドに使ったソースをそのまま持ってくれば大丈夫だと思いますが、サイズが大きいです。
make arch=arm INSTALL_HDR_PATH=../bbb-1402-bone2/hdr/ headers_installしたものを、linux-headers-3.14.2-bone2/arch/arm/includeに上書きすれば使えると思いますが未検証です。
RT化の時に使ったヘッダはdebian流に作ったものですが、これも扱いが面倒です。
DEB_HOST_ARCH=armhf make-kpkg --arch arm --subarch armhf --cross_compile arm-linux-gnueabihf- --revision 0.1 --us --uc kernel_image kernel_headers
と言うことで、RT化の場合のヘッダについては、ペンディングということで今後検討してみます。
1.カーネルソース及びパッチ
cd /usr/src
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.2.tar.xz" target="_blank">https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.2.tar.xz
wget https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/patch-3.14.2-rt3.patch.xz" target="_blank">https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/patch-3.14.2-rt3.patch.xz (必要に応じて)
wget http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/patch-3.14.2-bone2.diff.gz" target="_blank">http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/patch-3.14.2-bone2.diff.gz
wget http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/linux-headers-3.14.2-bone2_1.0wheezy_armhf.deb" target="_blank">http://rcn-ee.net/deb/wheezy-armhf/v3.14.2-bone2/linux-headers-3.14.2-bone2_1.0wheezy_armhf.deb (展開方法等はNo.4358参照)
wget http://mimizukobo.sakura.ne.jp/upload/botic1.diff.gz" target="_blank">http://mimizukobo.sakura.ne.jp/upload/botic1.diff.gz
2.カーネルソースを展開
tar Jxv linux-3.14.2.tar.xz
3.各種パッチ適用
cd linux-3.14.2
zcat ../patch-3.14.2-bone2.diff.gz | patch -p1
xzcat ../patch-3.14.2-rt3.patch.xz | patch -p1 (必要に応じて)
zcat ../botic1.diff.gz | patch -p1
4.botic部の編集(デフォルトはbotic1相当。botic3相当に変更可)
nano arch/arm/boot/dts/am335x-boneblack.dts
5.カーネルビルド(クロスコンパイルの場合)
make menuconfig
make -j3 LOCALVERSION=-bone2 (注1)
make INSTALL_MOD_PATH=../bbb-1402-bone2/ modules_install
make INSTALL_FW_PATH=../bbb-1402-bone2/lib/firmware/ firmware_install (必要に応じて)
make arch=arm INSTALL_HDR_PATH=../bbb-1402-bone2/hdr/ headers_install (必要に応じて)
注1)LOCALVERSION=-bone2を付けることで、uname -rの結果が3.14.2-bone2となり、kernekheadersの流用可。
syuさん、moctさん
上記4について、通常形式の(dtcで逆変換じゃない)am335x-boneblack.dtsを、botic3相当にする場合の編集方法を教えてもらえると助かります。
対応環境を所有する方は少数なので、急いではいません。
よろしくお願いします。
>volumioでやってみました。
それも手なんですが、私の環境ではvolumioが起動失敗する状態が続いていて、試せないんですよね。
volumio forumの下記の記事とほぼ同じ状態です。
どなたでも、何かアドバイスいただけると、有難いです。
sdカードは複数のメーカで試しました。ddする母艦もubuntu12.04と14.04で同じ結果でした。
http://volumio.org/forum/init-respawning-too-fast-disabled-for-minutes-t1145.html" target="_blank">http://volumio.org/forum/init-respawning-too-fast-disabled-for-minutes-t1145.html
私の場合
[ ok ] Starting NFS common utilities: statd idmapd.
[ ok ] Starting NTP server: ntpd.
Starting nginx: nginx.
[ ok ] Starting rpcbind daemon...[....] Already running..
[....] Starting Samba daemons: nmbd smbdWARNING: couldn't create avahi client: Daemon not running!
WARNING: Calling avahi-publish-service failed !
WARNING: Calling mDNSPublish failed !
WARNING: Calling dns-sd failed !
Listening for connections.
2347
. ok
[ ok ] Starting OpenBSD Secure Shell server: sshd.
cat: /run/player_wrk.pid: No such file or directory
[ 64.832770] net eth0: initializing cpsw version 1.12 (0)
[ 64.840562] net eth0: phy found : id is : 0x7c0f1
[ 64.845503] libphy: PHY 4a101000.mdio:01 not found
[ 64.850513] net eth0: phy 4a101000.mdio:01 not found on slave 1
[ 64.862769] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 66.845964] libphy: 4a101000.mdio:00 - Link is Up - 100/Full
[ 66.851965] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
INIT: Id "T0" respawning too fast: disabled for 5 minutes
tinkerさん
arch linuxは3.14.2-2-ARCHになっていますが、これでは make install が通りますので、対応したようです。
No.4363の方法で3.14.2のam335x-boneblack.dtsからbotic3用のdtbを作ろうとしたのですが、dtbが作成できません。
export ARCH=arm
export CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf-
make menuconfig
make -j3 zImage modules dtbs LOCALVERSION=-bone2
とやってみましたが、/arch/arm/boot/dtsにdtbが出来ないのです。
dtcで作ろうとしても、syntax errorが出てdtbが作成できないんですよね。
ubuntu1404/1204でもbbb(3.14.2-2-ARCH)でも同じ結果。
usr/src/linux-3.14.2/arch/arm/boot/dts# dtc -I dts -O dtb -o am335x-boneblack.dtb am335x-boneblack.dts
Error: am335x-boneblack.dts:10.1-9 syntax error
FATAL ERROR: Unable to parse input tree
改めて、3.8.13-22-ARCH(botic3)と3.14.1-rt1を比較してみましたが、私の環境では3.14.1-rt1(botic3)が大差で良好です。
i2s接続でも、rt kernelはかなり高い優位性があると思います。
とりあえず、dtsからdtbを作成する正しい手順など、お教えください。
4342のdtbが動かなかったとのことで、なんかゴミ(2バイト文字とか)が入ってるのかなと思い、今回のpatchはLANG=Cの環境で作りなおしてみたのですが、まだおかしいのかな・・・
diff -aNu file1 file2 > botic1.diff
こちらでは、make dtbsで問題なくdtbができているようです。
こちらの環境は、Debian 64bitに以下をinstallしたものです。
dpkg --add-architecture i386
apt-get update
apt-get install build-essential device-tree-compiler fakeroot lzma lzop u-boot-tools libncurses5-dev libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386
dtsを編集しdtbを作成したところdmesgは以下のようになり、検証は出来ませんが、外部クロックになっているようです。
onboard-clock-enable = <&gpio1 27 0>;
external-clock-switch = <&gpio0 15 3>;
[ 7.636039] snd_davinci_botic: enabling 44100fs modes with external clock
[ 7.643318] snd_davinci_botic: enabling 48000fs modes with external clock
syuさんのところでdtbができない問題ですが、検討がつかないんです。
もしかしたら、以下が該当しているのかもしれません(こちらでは使っていませんが問題なし)
dtcにbugがあるらしく、BBBのページでは以下を使うようにしているようです。
ただwandboardのとこには、この記述はありません。BBBだけの問題なのでしょうか?
http://www.eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-Upgradedistro%22device-tree-compiler%22package" target="_blank">http://www.eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-Upgradedistro%22device-tree-compiler%22package
>i2s接続でも、rt kernelはかなり高い優位性があると思います。
DSDに対応した時に、USB DACの時のような問題が発生しないかとの心配はまだありますね。
また、CFQ(配布されているkernel)とDeadlineの差もあると思います。
使い始めて1年近く経ちましたが、BBBは遊び飽きないですね^^;
別件ですが、もしかしたらrt3おかしいかもしれません。
U3で試しているのですが、起動しません。
>
dpkg --add-architecture i386
apt-get update
apt-get install build-essential device-tree-compiler fakeroot lzma lzop u-boot-tools libncurses5-dev libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386
たずねてみたら、全部最新だそうです。
>Upgrade distro "device-tree-compiler" package
これもやって見たんですよね。
いつだったか、yoさんのところでも、ちょっと似たところのある怪奇現象(コンパイルのトラブル)が発生していませんでしたっけ。
私のpcが腐りかけてるのかな。Phenom II X2 560ですから。
>DSDに対応した時に、USB DACの時のような問題が発生しないかとの心配
bbbの限界は 2.3MB/s data throughputらしいですので、384/32の片チャンネルで1.5MB/sは可能でも3MB/sになる384/32ステレオは動かないそうです。
すると、dsd128(2ch)まで余裕? dsd256は非rtでも無理?。
http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-56.html#post3886617" target="_blank">http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-56.html#post3886617
ubuntu12.04(32bit)でやってみました。
.config持ってきて、
make oldconfig
make dtbs でdtbが出来ました。
環境がおかしくなってるんですかね。
dtsにゴミ入ってるかもなので、nkfに通してからやってみたらどうしょうか?
>bbbの限界は 2.3MB/s data throughputらしいですので、
私の聞いてるものは、384/32なんて音源は出そうもないので無問題です。
せっかくなので、configを少しいじりました。
音は変わっていると思いますが、なんせ環境が整っていないので分かりません。
https://drive.google.com/file/d/0BxnbJHx0_xurcWQ4NVM2Y2ZpS1U/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurcWQ4NVM2Y2ZpS1U/edit?usp=sharing
当たり障りのなさそうなところを変更しました(コメントなきものは削除)
Device Drivers
・Networking support
CAN bus subsystem support
IrDA (infrared) subsystem support
Bluetooth subsystem support
Wireless
WiMAX Wireless Broadband support
NFC subsystem support
・Network device support
PPP (point-to-point protocol) support
SLIP (serial line) support
Wireless LAN
・Ethernet driver support
Texas Instruments (TI) devices関係以外は削除
・Input device support
可能な限り削除
・Graphics support
OMAP2+ Display Subsystem support以外は削除
File systems
・XFS filesystem support
モジュールに変更
・Btrfs filesystem support
モジュールに変更
・Network File Systems
NFS server support
・Native language support
NLS UTF-8 ビルトインに変更
カーネルは2種類用意しています。
デフォルトはDeadlineでBOTIC1です。
またdtbはBOTIC3用も同包しています。
ただし、BOTIC3用のdtbは検証出来ないので、動かない場合はsyuさんがUPされているdtbをお使いください。
使用したソースなどは、No4363を参照してください。
なお今回のものは、LOCALVERSIONを付けずに
make -j3 のみでbuildしています。
syuさん
この先は、環境がないとなんともです。
しばらく3.14.2+rt3で遊んでいてくださいm(__)m
Volumioは、DD for Win 使ってDDです。カードは、SanDiskやKingMax他を使っています。何回かリセット後というのはありますが、完全に起動失敗というのはありません。
後は、起動後IEから操作するとエラーが多いようです。私はSRIronを使って設定を行っています。
tinkerさん
3.14.2+rt3のupありがとうございます。
Debianではこれが最高です。3.14.1rt+Debianだと、声が若くなりすぎるのが唯一の難点でしたが、今回のでは年相応に聴こえます。CFQとDeadlineはもう少し聴いてみないと、まだなんともいえません。
Archの方は3.14.1rtが非常にバランスよく聴こえます。3.14.2+rt3だと、声にドスが利きすぎます。特にDeadline!
I2Sになってから(特にRT以降)、比較試聴をしようと思っても、つい聴いてしまい先に進めなくなってしまいました。聴き始めるとこれでいいと思ってしまいます。
dtbの確認はしていません。
スキル不足でdts.dtbの内容がちんぷんかんぷんです。No4352のsyuさんの書き込みとgoogle先生から教えてもらい生まれてはじめてDevice Tree Compilerの存在を知りました。お役に立てずすみません。
I2S接続でAmaneroを使う場合、blacklist snd-usb-audio で接続したまま起動でき、サンプルレートも追従します。
>I2Sになってから(特にRT以降)、比較試聴をしようと思っても、つい聴いてしまい先に進めなくなってしまいました。
羨ましい悩みですね。こちらではtopを眺めながら、少し負荷下がったかな?とかしか分かりません^^;
>Compilerの存在を知りました。お役に立てずすみません。
試して頂いて正直な感想を書いて頂けると、今後の方針に役立ちます。
RTでないkernelも、configを調整することで良くも悪くも音は変化します。
カーネルソースは公開されていますし、Archなどから提供された状態のまま聞くのは、個人的にはもったいないなぁと思います。
機会があれば、moctさんもカーネルビルドに挑戦してみて下さい。
皆様
ヘッダーの作成ですが、いろいろ試したのですが良い方法が分かりません。
とりあえず今回もdeb形式で作りました。
ただおかしなところがあるようで、BOTICモジュール作成時にエラーが出ます。
そこで、以下を3.14.2-bone2の物に差し替えたものを使用しています。
scripts/basic/*
scripts/mod/*
作成方法は、以下のとおりです。
DEB_HOST_ARCH=armhf CONCURRENCY_LEVEL=3 make-kpkg --rootcmd fakeroot --arch arm --subarch armhf --cross_compile /usr/bin/arm-linux-gnueabihf- kernel_image kernel_headers
(rootで作成する時は、--rootcmd fakerootは不要)
volumio起動時のエラーメッセージに
[....] Starting Samba daemons: nmbd smbdWARNING: couldn't create avahi client: Daemon not running!
ってことは、意味不詳ですが、サーバー側にshairportみたいなものを入れてないと、volumioがcouldn't create avahi clientってことなんでしょうかね。でもQnapもぶら下がってるしなあ。volumio側のshairportが起動失敗してるのかな。
差し当たりこの件は、そのうちあちら側で解決するまで保留ですね。
tinkerさん
試したのはarchだけですが、同梱のdtbでbotic3が動作しました。ありがとうございました。
31402rt3deadline
[root@arch-botic ~]# top
[root@arch-botic ~]# uname -a
Linux arch-botic 3.14.2-rt3 #1 SMP PREEMPT RT Tue May 6 17:51:11 JST 2014 armv7l GNU/Linux
31402rt3cfq
[root@arch-botic ~]# top
[root@arch-botic ~]# uname -a
Linux arch-botic 3.14.2-rt3 #1 SMP PREEMPT RT Tue May 6 18:34:47 JST 2014 armv7l GNU/Linux
31401rt1ddeadline
[root@arch-botic ~]# uname -a
Linux arch-botic 3.14.1-rt1 #1 SMP PREEMPT RT Tue Apr 29 20:43:52 JST 2014 armv7l GNU/Linux
私の環境では、31401rt1、3102rt3deadline、31402rt3cfq、どれも良い音で、甲乙付けがたいですね。
このレベルに達すると、本当に文字通り「僅かな好みの差」でしかなく、どれも文句のつけようがない。
これもあくまで私の環境に限定ですが、あえて好みを言えば、僅差で31402rt3deadlineですかね。
31401rt1deadlineは僅かに曇りガラスな少しだけ平面的な印象。
31402rt3cfqは、31402rt3deadlineよりちょっとだけ硬めかなあ。
でも今日は疲れてるし・・明日は気分が変わるかもです。
過去ログや情報リンク先もあまり読まずにクレクレ君風質問で失礼します。
BBBでのI2S接続について下記3点、どなたかお教えいただけませんでしょうか。
<<44.1k系と48k系との切り替え>>
外部クロックとして22.5792MHz、24.576MHzを用意する前提で、音楽ソースに応じて両クロックを切り替えるための信号は用意されているのでしょうか。
或いは2つのクロック入力PINがあって、両クロックを常時与えっぱなしという仕組みなのでしょうか。
<<I2S上の信号形式>>
I2S信号線上でPCMを送るにはI2S、スタンダード右詰、スタンダード左詰という3種の形式があるのですが、BBBではどの形式なのでしょうか。
<<DSD再生>>
恐らくDSD再生も可能なのではと想像しています。
その場合のPIN配置はどうなっているのでしょう。また、PCM再生とDSD再生とでDACに切り替え指示を行うための信号は出ているのでしょうか。
質問ばかりで申し訳ありません。
PCMとDSDを自動切換えしながら再生できればAmaneroなどのDDC(変換器)が不要となり非常に魅力的だと思っています。
先日はアドバイスありがとうございました。おかげでbotic1の音を出すことが出来ました。
<<44.1k系と48k系との切り替え>>
botic3ではクロックはP9_25に入力します。ソースに応じてP9_24の出力が変化しますので、その信号でクロックを切り替えます。どちらがHだったか忘れました。
私は、過剰かもしれませんが、24.576MHzと22.5792MHzのクロックを高周波リレーで切り替えるべく準備をしています。クロックはDAC側のI2S端子のmclkに直接入れ、そこからアイソレータを介してBBBのP9_25に入れるつもりです。
<<I2S上の信号形式>>
よく知りませんが、そのまま接続しても再生できています。
<<DSD再生>>
BBB向けのドライバ開発者の言では、現在公開されているドライバ(v4)では未対応です。開発者の手元ではDSD再生に成功しているそうです。DSD対応ドライバもいずれ公開されます。
>PCM再生とDSD再生とでDACに切り替え指示を行うための信号
その目的の信号はまだ定義されていません。ait-dacでは、元々自動判定になっていますので気にしていません。ait-dacではDDCの場合もDSD-on/offの信号は使用していないようです。
ドライバの解説はここ↓とDIYAudioのフォーラムしかないようです。
http://bbb.ieero.com/" target="_blank">http://bbb.ieero.com/
> 開発者の手元ではDSD再生に成功しているそうです。DSD対応ドライバもいずれ公開されます。
miero氏が述べていますが、4月17日の時点ではドライバーは未完成、DSDのテストに使える程度で再生に成功している訳ではないようです。
ドライバーの公開も結構先の話かもしれません。というのは、かなり前にも書きましたが、BBB用のI2S capeを準備中のTPAのWhite氏は関連フォーラムの初期段階でリアルなDSD再生を目指すと宣言しているので、DSD再生をDOP形式に依存している現行のMPDでは再生できない可能性もあります。
ま、White氏はそのあたりの問題に気配りする人なので、ハードやソフトの面でなんらかの妥協点が示されるかもしれませんが、MPDが進化しないのであれば、capeのキットが販売された場合にはMPD以外のDSD専用のソフトウェアがそのために準備される可能性もあります。
Volumioの作者が3月ぐらいにAlsa-DSD Playerというのを発表していますが、このあたりがその専用ソフトウェアになるかもしれませんね。
twl
> I2S信号線上でPCMを送るにはI2S、スタンダード右詰、スタンダード左詰という3種の形式があるのですが、BBBではどの形式なのでしょうか。
これは特に決まりはないというか、BBB本体からのシリアルなデジタル信号を引き出す方式は通常のI2Sそのものと認識しています。
ただ、自分のDACに環境をあわせようとする人達は以下の引用例のように、カーネル自体をいじることでハード側を目的に合わせる場合もあるようですね。
KERNEL/sound/soc/davinci/davinci-evm.c:
change the audio format to LEFT_J, which cs4271 recognizes
fix setting of sysclk and clkdiv
change the codec name to cs4271
(from: http://www.element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2013/07/06/bbb--building-a-dac" target="_blank">http://www.element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2013/07/06/bbb--building-a-dac)
TPAのBIIIやBIIISEあるいはWM8741を使ったOpus DACなどではDAC上のディップスイッチで切り替え可能なので、右詰、左詰はむしろDDCやDAC側で調節可能なのではと思われます。
申し遅れましたが、ES9018を使った上記のBIIIやBIIISEでもPCM/DSDは自動切り替えとなっています。
> PCMとDSDを自動切換えしながら再生できればAmaneroなどのDDC(変換器)が不要となり非常に魅力的だと思っています。
Amanero自体はPCMとDSDの自動切換えは可能ですので、おそらくDAC側の問題ではないでしょうか。DSD512およびPCM384kHzの分解能を持つ非常に優れた製品というのが私の印象です。
twl
twlさん
詳しくお教えいただきありがとうございます。
PCMについては完成形に近い様ですね。
DSDは開発途上とのこと、後半年くらい待ってみようと思います。
それまではamaneroをメインで使って凌ぐことにします。
> ドライバーの公開も結構先の話かもしれません。というのは、かなり前にも書きましたが、BBB用のI2S capeを準備中のTPAのWhite氏は関連フォーラムの初期段階でリアルなDSD再生を目指すと宣言しているので、DSD再生をDOP形式に依存している現行のMPDでは再生できない可能性もあります。
・・・
> Volumioの作者が3月ぐらいにAlsa-DSD Playerというのを発表していますが、このあたりがその専用ソフトウェアになるかもしれませんね。
やっぱりそうなのですね。DoP方式を放棄しないと、I2S接続でちゃんとしたDSD再生は出来ないはずだと思っていたので、ようやく謎が解けました。
MPDのDoP方式でのDSD再生はオランダのJurgenさん(公開されているMPD-DSDの作者)という(多分)ソフトウェアエンジニアが開発しているのですが(僕は彼のパッチをこの掲示板に書き込む許可を頂戴するため、メールでやりとりしたことがあります)、彼はハードはあまり詳しくないと思われるので、このあたりどうなりますかね。
あと、MPDのメインテナーの中心人物のKellermannさんは非標準のテクノロジーに辛口の人だから(DoP再生の時もJurgenさんとかなり厳しいやりとりがありました)、そのあたりも懸念されるかな。
ところで、皆様
IrBerryをBBBにつなごうとしていますが、うまくいきません。
BBBのソフトは3.8.13-Bone41 Debianを使い、問題なくBoticドライバ(4.0)を組み込むことが出来るようになりました。ビルド時のtimex.hが無いよというエラーもNelsonさんのパッチをあてて対応しています。
しかしデジタル回路の仕組みがまったく分かっていないので(^^;;;、ハードとの接続が出来ません。
写真のように、BBBとIrBerryを接続し、
http://mimizukobo.sakura.ne.jp/upload/IRBBB.JPG" target="_blank">http://mimizukobo.sakura.ne.jp/upload/IRBBB.JPG
IrBerryとBBB両方の電源を入れboticドライバにハードを認識させようとすると、
echo BB-BONE-BOTIC1 > /sys/devices/bone_capemgr.*/slots
シリアルコンソール側に次のようなメッセージが出力されます。
[ 139.563862] bone-capemgr bone_capemgr.9: part_number 'BB-BONE-BOTIC1', version 'N/A'
[ 139.573212] bone-capemgr bone_capemgr.9: slot #7: generic override
[ 139.579730] bone-capemgr bone_capemgr.9: bone: Using override eeprom data at slot 7
[ 139.587736] bone-capemgr bone_capemgr.9: slot #7: 'Override Board Name,00A0,Override Manuf,BB-BONE-BOTIC1'
[ 139.598032] bone-capemgr bone_capemgr.9: slot #7: Requesting part number/version based 'BB-BONE-BOTIC1-00A0.dtbo
[ 139.608689] bone-capemgr bone_capemgr.9: slot #7: Requesting firmware 'BB-BONE-BOTIC1-00A0.dtbo' for board-name 'Override Board Name', version '00A0'
[ 139.629352] bone-capemgr bone_capemgr.9: slot #7: dtbo 'BB-BONE-BOTIC1-00A0.dtbo' loaded; converting to live tree
[ 139.640895] bone-capemgr bone_capemgr.9: slot #7: BB-BONE-BOTIC1 conflict P9.25 (#5:BB-BONELT-HDMI)
[ 139.650408] bone-capemgr bone_capemgr.9: slot #7: Failed verification
echoコマンドは
-bash: echo: write error: File exists
というエラーになります。
BBBとIrBerryの接続ですが、P9.25=MCK(赤 2番)、P9.28=DIN(緑 8番)、P9.29=LRCK(青 6番)、P.31=BCK(黄 4番)、黒はBBBの10番と20番のピン位置確認用で、IrBerryとは未接続です。設計者のたかじんさんから教えてもらっていますが、IrBerryの6番と8番のシルク文字印刷は逆です。
さて、この状態で、IrBerry側のled表示がまったくされていないことから、IrBerryが動いていなように見えます。
この前のスレッドの#4266 twlさん、#4279 syuさんのメッセージにリンクされている写真と比較すると、P9.3又はP9.4のVDD_3V3Bというやつを使わないといけないようですね。
IrBerryの回路図は下記のリンクの最終ページにあるのですが、
http://nw-electric.way-nifty.com/blog/files/IrBerryDAC_manual3.pdf" target="_blank">http://nw-electric.way-nifty.com/blog/files/IrBerryDAC_manual3.pdf
これを眺めると(僕の場合、回路図は「読む」で無く、「眺める」^^;;;)、外部I2S(WAVE IO I2S IN)の部分は10ピンあり、奇数側はGND、偶数側は上記の通り接続したのですが、10番の3.3V_Dのみ空いたままなのですよね。
この基板はr-piとつながる時は外部からDC5Vを入力して、r-piのP1.2に供給しているようです。どうも、この5Vのr-piへの供給が無いと、マイコンに3.3Vの電源が供給されず、動かない(ledランプが点灯しない)という状態になっているような感じなんですね。
というわけで、IrBerryの外部I2Sの空いている10番ピンにP9.3のVDD_3V3Bをつなげばいいじゃないかという感じなのだけど、回路図不調法の身、3.3Vなんて大電流(?)を勝手に流す勇気は無いので、思案しているという次第です。
まあ、IrBerryの設計者のたかじんさんにメールして確認するつもりですが、強者達のアドバイスよろしくです。
参考までに、P9のBBBのピンの配置図をアップロードフォルダーに置いておきます。出所はhifiduinoです。
http://mimizukobo.sakura.ne.jp/upload/i2spins.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/i2spins.jpg
こんにちは
IrBerryには外部電源から5V供給されているんですね。
でしたら電源系は問題ないと思います。
恐らくIrBerryとBBBのGND同士が接続されていないので信号が伝わっていないのだと思いますが、いかがでしょうか。
ハードは全然わからないので、気になったところだけ書いておきます。
[ 139.640895] bone-capemgr bone_capemgr.9: slot #7: BB-BONE-BOTIC1 conflict P9.25 (#5:BB-BONELT-HDMI)
[ 139.650408] bone-capemgr bone_capemgr.9: slot #7: Failed verification
となっていますが、uEnv.txtの修正はされていますか?
>ビルド時のtimex.hが無いよというエラー
これについては、ヘッダーのarch/arm/include/asm/mach/timex.hがないので出るようですので、timex.hをコピーすればいいようです(arch/arm/include/asm/machがなければディレクトリーも作成)
tinkerさん、遅まきながら#4370で提供されたカーネルについてVolumioおよびBOTIC3の環境でI2S接続を試しました。連休中ちょっと遊びすぎ浦島状態だったので (^^; 、スレッドを眺めながら現状になんとか追いついたかなというところです。
まず結果ですが、無事にI2S接続で良好な再生が得られました。いつもながら本当にありがとうございます。
root@volumio:~# uname -a
Linux volumio 3.14.2-rt3 #1 SMP PREEMPT RT Tue May 6 18:34:47 JST 2014 armv7l GNU/Linux
root@volumio:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Botic [TPA Botic], device 0: ES9018 es9018-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
root@volumio:~# cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 1024
buffer_size: 16384
一昨日Nelson版3.14.3のカーネル(non-RT)をビルドしたのですが、Boticドライバーは問題なくコンパイルでき、moduleとしても認識されるものの、相変わらずboot後にはロードされませんでした。
このスレッドを復習すると、どうもビルド時に生成されるam335x-boneblack.dtbに問題がありそうなので、上記のtinkerさんの3.14.2-rt3で提供されたBOTIC3用のdtb (am335x-boneblack.dtb-botic3) と入れ替えてみました。
入れ替え後bootしてみるとあっけなくBoticドライバーがロードされ、tinkerさんのrt3カーネル同様、良好なI2S接続での再生が得られました。これはと思い、syuさんのam335x-boneblack.dtb-botic3bにも入れ替えてみましたら、同様に問題なくI2S環境が得られました。カーネルのバージョンをあまり気にしなくてもいけちゃうところがいいのか、悪いのか、どうなんでしょうね。私としてはとても嬉しいのですが。(^^)
接続環境は
BBB - I2S (with external clocks) - Otto-II (from TPA) - Teleporter (from TPA) - BIIISE (from TPA)
動作状況は
root@volumio:~# uname -a
Linux volumio 3.14.3_BBB_0511-bone3 #2 SMP PREEMPT Sun May 11 22:41:39 JST 2014 armv7l GNU/Linux
root@volumio:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Botic [TPA Botic], device 0: ES9018 es9018-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
root@volumio:~# top H
top - 11:40:26 up 2 min, 1 user, load average: 0.32, 0.23, 0.09
Threads: 92 total, 1 running, 91 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.7 us, 0.3 sy, 0.0 ni, 95.7 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem: 507140 total, 115848 used, 391292 free, 5576 buffers
KiB Swap: 0 total, 0 used, 0 free, 68324 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2260 mpd 20 0 86360 11m 2872 S 3.0 2.3 0:02.34 mpd
2602 root 20 0 2668 1092 756 R 1.0 0.2 0:00.19 top
15 root 20 0 0 0 0 S 0.3 0.0 0:00.18 kworker/0:1
2302 mpd 20 0 86360 11m 2872 S 0.3 2.3 0:00.25 mpd
2498 root 20 0 0 0 0 S 0.3 0.0 0:00.31 cifsd
音質は上記いずれのカーネルでも安定した良好な再生音が得られていますが、3.8.13と比べて格段の違いがあるかというと、まだ現在の状況での聴き込みを行っていないので、私には明瞭な区別はつきません。
いずれにしてもsyuさん、tinkerさん、ありがとうございました。
twl
Capeが出るまでの繋ぎで、とりあえず音が出るようにしようと以下を発注しました。
http://www.diyinhk.com/shop/audio-kits/26-24bit192khz-es9023-dac-i2s-input-ultra-low-noise-regulator.html" target="_blank">http://www.diyinhk.com/shop/audio-kits/26-24bit192khz-es9023-dac-i2s-input-ultra-low-noise-regulator.html
説明に
7) Extreme diyer can cut the external MCLK trace and uses the pre-allocated universal oscillator footprint space(CRYSTEK957/7050/5032/3225) to install a high quality 50M oscillator for asynchronous MCLK mode.
と書いてあり、写真右上のところにクロック付けれるようです。
こちらの方は http://www.azss.net/audio/jisaku-dac" target="_blank">http://www.azss.net/audio/jisaku-dac は、京セラのものを使われてるようで、マルツのページを見たところ在庫切れ?のようです。
CRYSTEK957はDigiKeyで買えるようですが、他に買い物予定もないので、送料を含むと5000円/個以上になってしまいます。
そこで、以下のことをご存知でしたら教えてください。
1.程々の値段で、使用できる水晶発振器(メーカー、型番など)
2.買えるお店(通販)
どうやってつけるんだろう(笑)と写真を眺めている奴には無理!なので、やめときなさいと言う話には素直に従いますm(__)m
> あと、MPDのメインテナーの中心人物のKellermannさんは非標準のテクノロジーに辛口の人だから(DoP再生の時もJurgenさんとかなり厳しいやりとりがありました)、そのあたりも懸念されるかな。
まさにご指摘の通りかと思われます。Kellermann氏はMPDにおけるDSDの対応にDOP形式を採用することにかなり難渋されたという経緯があったことを今回のBotic capeを準備中のRuss White氏がフォーラムの中で述べています。おそらくMPDをDSDに正規に対応させるには誰かがKellermann氏を説得しないといけないのでしょうね。
> IrBerryをBBBにつなごうとしていますが、うまくいきません。
Phoeniciaさんご指摘のGND未接続の可能性が高いようですね。私はP9の43-46番ピンのGNDを使用しています。
> Capeが出るまでの繋ぎで、とりあえず音が出るようにしようと以下を発注しました。
このDACは面白いですね。IrBerry搭載のDACと双璧でしょうか。
> CRYSTEK957はDigiKeyで買えるようですが、他に買い物予定もないので、送料を含むと5000円/個以上になってしまいます。
そこで、以下のことをご存知でしたら教えてください。
1.程々の値段で、使用できる水晶発振器(メーカー、型番など)
2.買えるお店(通販)
上記のご質問にお答えできる知識はないのですが、Digikeyで注文されるのなら、ついでに将来の自作電源用にトロイダルトランスなどを調達されておくのもいいかもしれないですね。5V電源用に15Vのトランスとか、12-15V電源用に30-35VAのトランスとか、いずれBBB専用とかcape専用の電源の有無でI2S再生の音が変わる、なんて議論が将来出て来るでしょうから。(^^; 冗談のようですが、結構真面目です。
しかも本番のCapeができるまでにはまだまだ時間がかかりそうです。初回のロットは40-50台、人身御供になりたい人のためのもので、そこで出てきた不具合が解決された後で正規の生産に入るようです。
twl
CRYSTEK957は5個売りですがマルツパーツ館http://www.marutsu.co.jp/shohin_227032/" target="_blank">http://www.marutsu.co.jp/shohin_227032/で買えるようです。
でも、クロックを乗せてもBOTIC3では動かないんじゃないですか。BBBにMCLKを入れてやらなければならないんですが、どこから入れるのかな。
以前syuさんがやられたように (No.4284)共立エレショップの「PLLクロック独立実験基板」などでMCLKを生成して、DACとBBBに入れてやる、という方法が必要と思います。
リンク先の方が使われているのは京セラ製で
大きさ 7×5mm
HCMOS
電源 3.3V
イネーブル端子あり
4端子
というような仕様ですね。
小口で入手できる先としてはRSオンラインはいかがでしょうか。
http://jp.rs-online.com/web/" target="_blank">http://jp.rs-online.com/web/
同種のものを検索したら
FOXエレクトロニクスのFXO-HC736R-50が見つかりました。
大きさ 7×5mm
HCMOS
電源 3.3V電源
イネーブル端子あり
6端子
周波数偏差25ppm
ハンダ付け端子は6端子ありますが、内2端子はNCなので
4端子のものと同様に使用できます。
送料込みで800円強、4日程度で発送みたいです。
電源電圧、大きさ、イネーブル端子の有無で探せば他メーカーの
ものも出ていました。
ハンダ付けの注意としては
パターンをよく見て回路図と対比し、ピン番号を間違えない。
ハンダ付けは液体フラックスをたっぷりつけて行う。
液体フラックスもRSオンラインで扱っています。
などですね。
GNDの接続でしたか。電気の基本でしたね(^^;;;。IrBerry設計者のたかじんさんからも同じお答えを頂戴しました。ledがつかないのはr-piと接続しないと、マイコンに電源が供給されないため発生する現象で問題ないとのことでした(当然リモコンは使えなくなるようです)。
という次第でP9.45をIrBerryの外部I2Sの1番につないでやってみました。
http://mimizukobo.sakura.ne.jp/upload/IRBBB2.JPG" target="_blank">http://mimizukobo.sakura.ne.jp/upload/IRBBB2.JPG
ところが、状況は変らず。どうもソフトの問題が残っているようです。
tinkerさん、アドバイスありがとうございます。
> となっていますが、uEnv.txtの修正はされていますか?
optargsの追加はしています。エラーメッセージには気が付いていたのですが、「どうせハードの接続が拙いからだろう」とたかをくくっていたのですよね(^^;;;。真面目に調べることにしました。
root@beagle:~# cat /sys/devices/bone_capemgr.*/slots
0: 54:PF---
1: 55:PF---
2: 56:PF---
3: 57:PF---
4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
確かにHMDIが無効になっていませんね。optargsはあるのに変です。試しにuboot起動時に
Hit any key to stop autoboot:
U-Boot#
U-Boot# optargs=capemgr.disable_partno=BB-BONELT-HDMI
U-Boot# boot
とやってみたが、これでも
5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
と変りません。
システムの作成で手抜きをしているのが悪いのかなと考え、ご本家の
http://elinux.org/BeagleBoardDebian" target="_blank">http://elinux.org/BeagleBoardDebian
手順通りシステムを作り直してみました。BOTICドライバも4.0を手順通りインストール。
その結果
debian@arm:~$ uname -a
Linux arm 3.8.13-bone49 #1 SMP Fri May 2 06:36:13 UTC 2014 armv7l GNU/Linux
debian@arm:~$ cat /sys/devices/bone_capemgr.*/slots
0: 54:PF---
1: 55:PF---
2: 56:PF---
3: 57:PF---
4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN
debian@arm:~$ cat /proc/asound/cards
--- no soundcards ---
debian@arm:~$ sudo depmod -a
[sudo] password for debian:
debian@arm:~$ sudo echo BB-BONE-BOTIC1 > sudo /sys/devices/bone_capemgr.*/slots
debian@arm:~$ lsmod
Module Size Used by
g_multi 47670 0
libcomposite 14299 1 g_multi
nfsd 189126 2
debian@arm:~$ cat /proc/asound/cards
--- no soundcards ---
debian@arm:~$ sudo insmod /lib/modules/3.8.13-bone41/kernel/sound/snd-codec-es9018.ko
debian@arm:~$ sudo insmod /lib/modules/3.8.13-bone41/kernel/sound/snd-davinci-botic.ko
debian@arm:~$ lsmod
Module Size Used by
snd_davinci_botic 4253 0
snd_codec_es9018 2802 0
g_multi 47670 0
libcomposite 14299 1 g_multi
nfsd 189126 2
debian@arm:~$ cat /proc/asound/cards
--- no soundcards ---
当然BBBとIrBerryはGNDを含めて接続しています。
ドライバのロードはエラーにならなくなったのですが、insmodしないと組み込まれないのは奇怪しいですね。しかも組み込んでも、no soundcardsのまま。うーむ。どうなっているのだろう。こうなってくると、IrBerryの5V外部DC入力を外し、BBBのP9.3 3.3Vの出力とIrBerryの3.3Vの入力(10番ピン)をつないでみたくなりますね。どうなものですかね。
自分で作る電源は、火事になりそうなので止めときます^^;
いろいろ考えたのですが、Phoeniciaさんが調べて下さったクロックをとりあえず確保しました。
moctさんがおっしゃるように、確かに繋ぐところが無いですね。ボードには何箇所かピンヘッダーを立てれるところがあるので、淡い期待で。
今のところ、DACの説明書がWEBで探せてないのと、onboardのクロックはジャンパーでdisableにもできるようなので、物が着いてから考えることにします。
onboardのクロックではダメな場合は、syuさんが試されていたPLLクロック独立実験基板を含め考えたいと思います。
また前述のDACを買った時に、これってamaneroみたいに使えるかな?と思ったもので試してみるかもしれません。
http://www.ebay.com/itm/24bit-192KHz-CM6631A-USB-to-SPDIF-coaxial-DAC-SC-Assembled-/370851652075?pt=US_Amplifier_Parts_Components&hash=item56587b21eb" target="_blank">http://www.ebay.com/itm/24bit-192KHz-CM6631A-USB-to-SPDIF-coaxial-DAC-SC-Assembled-/370851652075?pt=US_Amplifier_Parts_Components&hash=item56587b21eb
BBBは非力ですし、botic1の場合はload averageも高いので、botic3必須かなってtopを眺めてて思ってます。
まずyoさんのGNDの配線の問題は一応解決したとして、これ以外のBBBからIrBerry側への結線状況を投稿された順で確認させていただくと、
#4389
> BBBとIrBerryの接続ですが、P9.25=MCK(赤 2番)、P9.28=DIN(緑 8番)、P9.29=LRCK(青 6番)、P.31=BCK(黄 4番)
これは問題ないですね。
分からないのは赤のMCLKがIrBerryのMCLKとつながっているようですが、BBB側にはMCLK出力はないのでIrBerryからのMCLK出力でBBBをスレーブ動作させているということでしょうか。となると、BBB起動後に
> echo BB-BONE-BOTIC1 > /sys/devices/bone_capemgr.*/slots
ということでBOTIC1を試されていますので、この場合MCLKというか、MCLKとして使われるであろうBCKはBBB側のオンボードのクロックを使う事になり、このIrBerryからのMCLK配線は必要ないことになります。
というか、外すのが安全かもしれません。私の理解ではIrBerryのDAC ICは評価の高いPCM5102Aですので、以前このスレッドで私やsyuさんがやったようなBCKからの逓倍でMCLKを作るという機能をもともと持っており、BBBからIrBerryにはDATA (DIN), LRCK、BCKそしてGNDの4本の結線で済むのではないかと思われます。
いいかえればRasPiと同じ配線でいいのではないかと思われますが、はずしていたらごめんなさい。ただしRasPiと違い、44.1kHzのデータはBBB側のクロックを反映してすべて48kHzにresampingされます。
> この前のスレッドの#4266 twlさん、#4279 syuさんのメッセージにリンクされている写真と比較すると、P9.3又はP9.4のVDD_3V3Bというやつを使わないといけないようですね。
誤解を招いてしまい申し訳ありません。私の画像でのP3近くのケーブルは別目的の電源取り出しケーブルで、実際にはどこにもつながっていません。ここは無視して下さい。
#4398
> ドライバのロードはエラーにならなくなったのですが、insmodしないと組み込まれないのは奇怪しいですね。
これはあまり気にしなくてもいいかも。私は/etc/modulesに
snd_davinci_botic
snd_codec_es9018
と書き込んじゃってます。
> しかも組み込んでも、no soundcardsのまま。うーむ。どうなっているのだろう。
これはBOTIC1でのドライバーロードですよね。それでしたら上記のMCLK結線を外してbootした後、
echo BB-BONE-BOTIC1 > /sys/devices/bone_capemgr.*/slots
aplay -l
で行くのではないでしょうか。
もしBOTIC3を試されているのでしたら話はまったく別になりますが。
> こうなってくると、IrBerryの5V外部DC入力を外し、BBBのP9.3 3.3Vの出力とIrBerryの3.3Vの入力(10番ピン)をつないでみたくなりますね。どうなものですかね。
前述のごとく、これは必要ないと思います。
とりあえず私の知っている範囲でおしらせしましたが、お役に立てれば幸いです。
MCLKの件はご指摘の通りだと思います。僕はよく分からなくて、「まあ、つないでおけばいいのかな」というレベルで接続していました(^^;;;。
> いいかえればRasPiと同じ配線でいいのではないかと思われますが、はずしていたらごめんなさい。ただしRasPiと違い、44.1kHzのデータはBBB側のクロックを反映してすべて48kHzにresampingされます。
ということのようです。クロックはとりあえずtinkerさんにおまかせして、僕はBOTIC1で48KHzで音が出ればよいということで実験しているつもりです。
ちなみにtwlさんの#4386の書き込みのリンク先にPCM5102Aを使ってI2S接続した回路図があり、それでもDATA (DIN), LRCK、BCKそしてGNDの4本の結線ですね。
という次第で赤のMCKを外してつないでみました。状況は変らずです。
debian@arm:~$ sudo echo BB-BONE-BOTIC1 > sudo /sys/devices/bone_capemgr.*/slots
[sudo] password for debian:
debian@arm:~$ aplay -l
aplay: device_list:252: no soundcards found...
うーむ。僕のBBBは呪われているのですかね。まあ、もう少しめげずに頑張るつもりです。
> debian@arm:~$ sudo echo BB-BONE-BOTIC1 > sudo /sys/devices/bone_capemgr.*/slots
[sudo] password for debian:
ここでエラーがでないというのはいい知らせですね。少なくともBBBがデフォルトで占拠しているHDMI用のレジスタがBotic1の構成で置き換えられているということですね。
> debian@arm:~$ aplay -l
aplay: device_list:252: no soundcards found...
うーむ。僕のBBBは呪われているのですかね。まあ、もう少しめげずに頑張るつもりです。
頑張りましょう!おそらくhttp://bbb.ieero.com/" target="_blank">http://bbb.ieero.com/でのmiero氏が指示した手順にどこかで沿っていない可能性があります。もう配線は問題ないと思いますので、手順を最初から確認しながら再度検証されてみて下さい。幸運を祈ります。
私も音が鳴っていないので、まあ話半分でと言うことで。
今、Digiを外して試しています。
外した状態でもmpdが動き、GMPCも認識しています。
以前、独り言で書きましたが、垂れ流しなので繋がってようがなかろうが関係なしって事だと思います。
lsmodは以下のとおりです(3.14.2-rt3の場合ですが3.8.xでも似たようなもんなるでしょう)
Module Size Used by
rpcsec_gss_krb5 21608 0
snd_davinci_botic 4885 1
snd_codec_es9018 2872 1
snd_soc_davinci_mcasp 9815 2
snd_soc_davinci 6514 1 snd_soc_davinci_mcasp
snd_soc_core 158254 4 snd_soc_davinci_mcasp,snd_soc_davinci,snd_davinci_botic,snd_codec_es9018
omap_sham 17239 0
snd_compress 7861 1 snd_soc_core
ti_am335x_adc 4819 0
kfifo_buf 2562 1 ti_am335x_adc
snd_pcm 81528 3 snd_soc_core,snd_soc_davinci
omap_aes 12151 0
industrialio 46779 2 ti_am335x_adc,kfifo_buf
snd_seq 59173 0
snd_seq_device 6402 1 snd_seq
snd_timer 19193 2 snd_pcm,snd_seq
snd 61546 7 snd_soc_core,snd_timer,snd_pcm,snd_seq,snd_seq_device,snd_compress
soundcore 7040 1 snd
rtc_omap 5276 0
uio_pdrv_genirq 3351 0
uio 8922 1 uio_pdrv_genirq
何が言いたいのかというと、音が鳴ることとドライバーがロードされるのは別問題ですってことです。
まずは、きちんとドライバーがロードされるようにしましょう。
3.8.13-Bone41をお使いなら、V4のドライバーがそのまま使えるはずなので、それに置き換えてください。
置き換え後は、HPのとおり depmod -aしてください。
それと、ドライバーは明示的に組み込む必要はありません(3.8.x~3.14.x -3.9~3.12を除く- で検証済み)
もしinsmodしないとダメとか、/etc/modulesに書いとかないとダメって場合は、ドライバーがおかしい or 手順がおかしいってことだと思います。
a)正常なモジュールを所定の場所に配置
b)depmod -a
c)uEnv.txtの編集
d)echo BB-BONE-BOTIC1 > /sys/devices/bone_capemgr.*/slots
※ make installで行う場合は、上記a)b)は勝手にやってくれますし、3.13.x以降であればd)の必要もありません。
3.14.3-rt4を作り、Arch (RuneAudio) および debian系 (Volumio) でBotic3を試しました。Nelsonさんのところではまだ3.14.3のrt patchはないようなので、本家のkernel.orgからもってきたものをNelson版に使いましたが、patch自体は問題なくあたっているようです。
am335x-boneblack.dtbはtinkerさんおよびsyuさんのBotic3用のものをぞれぞれ流用、いずれも問題なくBotic3をロードできました。
mpdは0.18.9を使用、Archでは0.18.9をrt化したものを使用しています。以下、動作状況です。
Archlinux
[root@runeaudio ~]# uname -a
Linux runeaudio 3.14.3-rt4_BBB_0514_RT-bone3 #1 SMP PREEMPT RT Wed May 14 22:21:10 JST 2014 armv7l GNU/Linux
[root@runeaudio ~]# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Botic [TPA Botic], device 0: ES9018 es9018-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
Debian
root@volumio:~# uname -a
Linux volumio 3.14.3-rt4_BBB_0514_RT-bone3 #1 SMP PREEMPT RT Wed May 14 22:21:10 JST 2014 armv7l GNU/Linux
root@volumio:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Botic [TPA Botic], device 0: ES9018 es9018-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
いずれも音質には大きな違いはありません。曲によってはArchlinuxの方が音像の輪郭がややはっきりするかなというぐらいで、多分プラシーボだと思います。いずれも、このスレッドでの合い言葉のようですが、要するに"いい音"です。
Archではrt化したmpdを試しましたが、mpd.confにrt optionをつけるとRuneAudioでは再生が停まりました。rt optionをはずすと問題なく再生されますので、カーネルを含め、I2S接続でのRT化の意義がどこにあるのか、今後の検討が必要かもしれません。
twl
新しいRTですか。
私のところは音出ないんで、作ってません。
>3.14.3-rt4
作者の意図はrt5らしいですよ。localversion-rtの変更がされていないようです。
>I2S接続でのRT化の意義がどこにあるのか
好きなもん使ってればいいんじゃないって感じですかね。
http://www.ebay.com/itm/24bit-192KHz-CM6631A-USB-to-SPDIF-coaxial-DAC-SC-Assembled-/370851652075?pt=US_Amplifier_Parts_Components&hash=item56587b21eb" target="_blank">http://www.ebay.com/itm/24bit-192KHz-CM6631A-USB-to-SPDIF-coaxial-DAC-SC-Assembled-/370851652075?pt=US_Amplifier_Parts_Components&hash=item56587b21eb
mclkの周波数が適切なのか不詳なのが難点ですね。
bbbのP9_25に入れるのは22.5792/24.576MHzですが、44.1kHzでは11.2896MHz、48kHzでは12.288MHzになっているかも知れないです。
am335x-boneblack.dtsで倍率は指定できそうだから、違っていたらそっちで対応可能かも知れませんね。
> >3.14.3-rt4
> 作者の意図はrt5らしいですよ。localversion-rtの変更がされていないようです。
そうなんです。使ったpatchはご指摘のごとくpatch-3.14.3-rt5.patch.gzです。unameみたら、あれ、versionが合わないなと思ったのですが、ま、もともとがキメラ状態なので、細かいことはこの際いーんじゃないのってことで、詳細は省きました。
ただ、作ってみて思ったのですが、tinkerさんのBotic3用のam335x-boneblack.dtbを使うと、BBB上のUSBがまったく使えなくなるんです。これは提供された3.14.2のrtカーネルでも同じです。私だけの状況かもしれませんが。
それでもI2Sでの再生には問題ないのですが、DSDのソースも再生したいので、結局、3.8.13に戻って、I2SとUSB-DDCによるDSDをスイッチで切り替えながらmpdを動かしているのが現状です。
蛇足ですが、IrBerryのフォーラムだと、I2Sのピン配置を使って果敢にDSD再生と取り組んでらっしゃる方もいるようですね。
ありがとうございます。
やったことないことないことだらけで、あたって砕けろ状態です(たぶん砕ける^^;)
>am335x-boneblack.dtsで倍率は指定できそうだから、違っていたらそっちで対応可能かも知れませんね。
うまくいかなかった時は、上記の事やPLLクロック独立実験基板について教えて下さいm(__)m
>tinkerさんのBotic3用のam335x-boneblack.dtbを使うと、BBB上のUSBがまったく使えなくなるんです
syuさんのdtbだと大丈夫ってことですか?
試してなかったので、全く気づいてませんでした。
ご報告、ありがとうございます。
それとも以下の関係がらみなんでしょうか。
No.4335より
注)
I2Sでは関係ありませんが、UPしたカーネルはUSB DACでは正常に動作しません。
3.14(多分3.13も)のMUSBではDMAが使えないようです(bug?)
USB DACを使うためには、PIOに変更が必要です。
cpufreqも効かないような・・・
なんでだろ・・・
> それとも以下の関係がらみなんでしょうか。
No.4335より
注)
I2Sでは関係ありませんが、UPしたカーネルはUSB DACでは正常に動作しません。
3.14(多分3.13も)のMUSBではDMAが使えないようです(bug?)
すみません。私の早トチリで、am335x-boneblack.dtbには罪はありませんでした。上記で指摘された通りだと思います。3.14に共通する現象のようですがどうしてなんでしょうね。無用なご心配をおかけましたこと、お詫び申し上げます。
そっちだったんですね。USBを認識しないのかと思ってました。
以前syuさんが、Archのconfigの差分へのリンクを貼られてて、やっぱりそうだよねって思いました。
Nelsonさんはオーディオには興味はないみたいなので、DMAにされてるようですね。
https://github.com/archlinuxarm/PKGBUILDs/commit/2803ba6e4a773c8708987ca5db495913f7082893" target="_blank">https://github.com/archlinuxarm/PKGBUILDs/commit/2803ba6e4a773c8708987ca5db495913f7082893
usb-dacを使うためには、configを以下のように変更すれば大丈夫です。
-CONFIG_USB_TI_CPPI41_DMA=y
-# CONFIG_MUSB_PIO_ONLY is not set
+# CONFIG_USB_TI_CPPI41_DMA is not set
+CONFIG_MUSB_PIO_ONLY=y
yoさん、私のアドバイスに問題があったかもしれません。IrBerryの外部I2S入力をみるとやはり MCKへの入力が必要のようです。BBBのBCKからのケーブルを二つに分割し、ひとつをIrBerryのBCK、もう一つをMCKにつないで下さい。後者からMCKが生成されるとおもいます。取り急ぎ連絡まで。
DIYINHKのES9023 DACの水晶発振器の件ですが…
秋葉原のラジオデパート2階にあるサンエレクトロさん
に京セラの7050タイプが小売されてます。
http://www.sun-elle.com/eshopdo/refer/vid5002_02800.html" target="_blank">http://www.sun-elle.com/eshopdo/refer/vid5002_02800.html
volumioのフォーラムをみるとFB1をジャンパする必要がありそうです。
http://volumio.org/forum/yet-another-diyinhk-sabre-es9023-dac-with-raspi-t880.html" target="_blank">http://volumio.org/forum/yet-another-diyinhk-sabre-es9023-dac-with-raspi-t880.html
実はRasPiのI2Sで試そうとしてはんだ付けまでは
終わってるんですがまだ試していません(^^;
http://www.tx-2.net/img/dac6.jpg" target="_blank">http://www.tx-2.net/img/dac6.jpg
DIYINHKのPCM5102A DACではRasPiで既に問題無く動作させています。
http://www.tx-2.net/img/dac3.jpg" target="_blank">http://www.tx-2.net/img/dac3.jpg
配線については下記を参照しました。
http://volumio.org/forum/hifiberry-and-rpi-dac-pinout-t29.html#p176" target="_blank">http://volumio.org/forum/hifiberry-and-rpi-dac-pinout-t29.html#p176
いろいろアドバイスありがとうございます。
>volumioのフォーラムをみるとFB1をジャンパする必要がありそうです。
先にリンクした方の写真だとFBとなっているので、http://akizukidenshi.com/catalog/g/gP-04053/" target="_blank">http://akizukidenshi.com/catalog/g/gP-04053/ などをつけるのかなと想像(知識がなくってm(__)m)してました。
写真を拝見したところ、MCKとGNDをジャンパしてあるように見えるのですが、これは、紹介していただいたHPの MCLK - Shortcut to GND からということなのでしょうか。
それともう一つ教えてください。
moctさんから以下の助言を頂いており、きっとそのとおりなんだろうと思っています。
>クロックを乗せてもBOTIC3では動かないんじゃないですか。
BBBの場合、外部クロックをP9-25に入れて、P9-24の出力をDACのMCKに入力する必要があるそうです。
MCKを取り出せる所がありそうでしょうか?
久々ALIX(voyageMPD)を聴こうとやったのだが、エレアトUDA2再生基盤から出て来るのは雑音のみ。以前使用のUSB→S/PDIFに戻すと難無く鳴りだした。エレアトUDA2をALIX基盤に繋げたのは始めてだったのだが、何か情報お持ちの方宜しくお願いいたします。
uda3ユーザなので、はずしているかもですが、uda3の場合、「バルク転送モード」、「アイソクロナス(UAC2.0)モード」があり、ヘッダーピンで設定できます。これが「バルク転送モード」になっていると、mpdでは多分音はまともに出ないと思います。
「UAC2.0用のUDA/UDA2 Windows最新ドライバー」が公開されていた。
帰ったら試してみたい。
IrBerryDACを製作しました。エージング中ですが、現状(30H位連続演奏)で素晴らしい音がします。とても自然。LPレコード再生を思わせるアナログな音です。お勧めですね。皆様がI2S接続にこだわる訳がよく理解できました。周回遅れですが、これでようやく I2S友の会に入会できそうです。
「チップハンダ付け代行」というオプションを選んだので、ハンダ付けしないといけないのは、マイコン接続用ピン、r-pi接続用ソケット(2つ)、電源周りのコンデンサ9個、アナログ出力部のコンデンサと抵抗(それぞれ2つ)、電源との接続用ターミナル、オーディオ出力用ターミナル というところです。全部で90箇所位ありますので、ハンダ付け初心者には結構ハードルは高かったですが、なんとかクリア。無事、音は出ました。
オーディオ的に重要な電源と出力側のコンデンサ、抵抗は好みで選択出来るということになるので、良いのかもしれません。僕は、電源周りはえふさんの顰みにならってサンヨーのOSコン、チップ出力部分はアムトランスのコンデンサ、タクマンの抵抗にしました。はずかしいけど、写真をリンクします。
http://mimizukobo.sakura.ne.jp/upload/IRBD.JPG" target="_blank">http://mimizukobo.sakura.ne.jp/upload/IRBD.JPG
ソフトはIrBerryDACのリンク先にあるもイメージをそのまま使うことができるので、楽です(^^)。SDカードに焼いて、起動させるだけ。ミミズ(^^;;;でも出来るというレベル。
動作状況ですが、良好です。ノイズ、再生中断などまったくなし。安心して聴いていることが出来ます。このボードを接続すると、r-piの電源はボードから供給されることになり、これが安定動作に寄与しているのですかね。
topは以下の通り。
top - 14:34:41 up 41 min, 2 users, load average: 0.24, 0.08, 0.10
Tasks: 71 total, 2 running, 69 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.7 us, 2.0 sy, 0.0 ni, 93.3 id, 0.3 wa, 0.0 hi, 0.7 si, 0.0 st
KiB Mem: 496920 total, 407172 used, 89748 free, 13648 buffers
KiB Swap: 0 total, 0 used, 0 free, 334908 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2661 mpd 20 0 84360 20m 2504 S 3.0 4.3 1:16.65 mpd
2835 root 20 0 0 0 0 S 1.0 0.0 0:25.60 kworker/0:0
3494 root 20 0 4672 1404 1024 R 1.0 0.3 0:00.22 top
2621 root 20 0 9616 5648 2928 R 0.7 1.1 0:14.95 python
39 root 20 0 0 0 0 S 0.3 0.0 0:08.76 mmcqd/0
2620 root 20 0 2744 1212 1048 S 0.3 0.2 0:01.08 player_wdog.sh
ご覧の通り cpu負荷はr-pi、I2S接続にしては低めだと思います。
という次第で、この基板、とてもいいです。外部のI2Sからの入力にも対応出来るようなので、理屈としてはbbbとつなぐことも出来るのではないですかね。ご存じの方教えて下さい。試してみるかなぁ。
>周回遅れですが、これでようやく I2S友の会に入会できそうです。
完成おめでとうございます。もし、どうしても…ということであれば、老眼の身の私ですが助け舟を出そうかと思っていました(^^;
既にお聴きなっておられるかも知れませんが、ネットラジオもこれで聴くと素晴らしく手離せない音源となりますね。当方のお気に入りはJazz専門局のJazzGroveです。選曲の良さも光ります。
>外部のI2Sからの入力にも対応出来るようなので、理屈としてはbbbとつなぐことも出来るのではないですかね。
これは双方の接続ピンを間違えなければ、問題なく可能だと思いますよ。当方の場合は、今はそこまで手を出す気はないですけど。
> 完成おめでとうございます。もし、どうしても…ということであれば、老眼の身の私ですが助け舟を出そうかと思っていました(^^;
遅ればせながら私も。yoさん、I2S友の会へのご参加おめでとうございます。音出しも順調なご様子、なによりです。
> これは双方の接続ピンを間違えなければ、問題なく可能だと思いますよ。当方の場合は、今はそこまで手を出す気はないですけど。
えふさんのご指摘に追加するものはありませんが、IrBerryのPCM5102AはもともとBCKからMCLKの逓倍機能があり、BBBへの接続は容易と思われます。ただしBBBで44.1kHz系の再生を行う場合には外部クロックでの入力が必要となります。BBBのBotic Capeの開発状況にもよりますが、当座は私やsyuさん、そしてmoctさんのように、Amanero Combo384を使っての簡易外部クロックを使うと、より幸せになれるかもです。
最近仕事や雑用でRasPiもBBBも遊んでいる時間がないのですが、両者の二股でI2S接続を楽しみ、DSD再生のみUSB DDCとBBBの組み合わせに切り替えることで、最近のmpdによる再生環境にはまったく不満のないtwlでした。
えふさん
> ネットラジオもこれで聴くと素晴らしく手離せない音源となりますね。
これは僕も聴いています。本当に素晴らしい音ですね。
クラシックでEMIなどから1960年代前後の古い録音をsacdが発売されているのですが、cd盤では味わえないアナログな、LPレコードを聴いているような音がします。I2S接続のネットラジオの音が良いのもこれと同じ理屈なのかなと思っています。DSDとかI2S再生は、最新の録音だけではなく、古い録音や条件の悪い再生で真価を発揮することがあるということですかね。
twlさん
> ただしBBBで44.1kHz系の再生を行う場合には外部クロックでの入力が必要となります。BBBのBotic Capeの開発状況にもよりますが、当座は私やsyuさん、そしてmoctさんのように、Amanero Combo384を使っての簡易外部クロックを使うと、より幸せになれるかもです。
#4286に書かれている内容ですね。
質問ですが、これは44.1KHzをBBBでI2S出力する時、48KHzにアップサンプリングされてしまうのを止めるためにAmaneroのクロックをBBBに入れるという理解で良いのでしょうか。
まあ、BBBのI2S接続は発展途上のようですから、えふさんにならい、暫く様子を見た方が賢明かなという気もするのですが、「Amaneroを使えば、r-pi + IrBerry を超えるよ」といわれると心千々に乱れるのですよね。
やっぱりcapeを待つべきですかね。
r-piはIrBerryにより電源が強化されたせいか、ちょっと見直すというレベルに変身しています。これならBBBにこだわる必要もないかなという感じもします。
osコンって、エージングで音が変わりますね。昨日から1日たってますます良くなりました。「軟弱な身には(^^;;;、これで十分だなぁ」という気もしますね。
古い話になりますが#3338でsyuさんがBBBではI2Sが直接取り出し可能と書かれていました。私はその記事をきっかけにBBBと遊ぶようになったのですが、それに対応したドライバーがないことにはI2S接続を試みてもノイズにうもれた音楽信号ぐらいしか取り出せず、BBBからDACへのI2S直接接続はあきらめていました。
最近、自分の使用しているBuffalo IIIのTwisted Pear Audioの掲示板*が賑やかなので覗いてみたら、既にご存知の方もいらっしゃるでしょうが、Raspberry Piにおける最新のdebianカーネルにはI2S用のドライバーモデュールが提供されており、このカーネルを使うとRasPiボード (Model B)上のP5のGPIOヘッダーからI2S信号を楽に取り出すことができ、USB関連が貧弱なために音楽再生に関してはいつも冷たい扱いをされてきたらしい(?)RasPiが最上の音楽信号を出力する道具に化けるとのことでした。
これはちょっと面白いかなと早速Model BのRasPiを購入、再生にはVolumioを使用、中のカーネルをI2Sドライバーの入った新しいものにアップデート、しかるべくP5のGPIOにヘッダーピンをハンダ付け、指示に従ってここからBuffalo IIIへI2S接続、MPD(0.18.8)によるPCM再生で音出しをしてみました。
最初はノイズ混じりの貧弱な再生音、ま、こんなものかと思いましたが、よく見ると/etc/modulesに書き込んでいなかったI2S moduleがあり、これを追加記入して再起動して再生したところ、非常に澄んだ、解像力の高い、きわめて高品位な再生音が得られ、大変驚きました。多分rtカーネル云々の議論を越えたところにある再生音だと思います。
Buffalo IIIのようなDACですとSCLKはES9018側が面倒みてくれるので、DATA、LRCK、BCKおよびGNDの四つをDAC側に配線するだけでOKとなります。AIT Laboなどでも使えそうですね。
現在のところI2S用のカーネルモデュールはPCMのみの対応ですが、ALSA自体はI2S経由でのDSD信号処理は対応できているらしく、上記の掲示板では現在DoPのみでしかDSD再生に対応できていないMPDを、DSD信号処理を正しく扱えるものにしようという話題に変化しつつあり、MPD自体にも新しい変化が起きそうな気配です。
また、VolumioやRuneaudioの次のベータ版ではBBB用のI2Sドライバーモデュールを組み込んだカーネルも登場しそうな気配らしく、RasPiのサイズに合わせたHifiBerryなどというmini DACも登場、この傾向が続くと今年はUSB-freeなBBB/RasPiでのMPD再生の年になるかもしれませんが、興味のある方は是非お試し下さい。これはおすすめです。
* http://www.diyaudio.com/forums/twisted-pear/250583-every-pi-better-pear.html" target="_blank">http://www.diyaudio.com/forums/twisted-pear/250583-every-pi-better-pear.html
長文失礼しました。twlでした。
そういう流れがあるんですね。お知らせありがとうございます。
>非常に澄んだ、解像力の高い、きわめて高品位な再生音が得られ、大変驚きました。多分rtカーネル云々の議論を越えたところにある再生音だと思います。
慎重なtwlさんがこう表現されるのはかなりな事なんでしょうね。
RasPiでやってみるかbbb向けの登場を待つか、どうしようかなあ♪
楽しそうですね。
RTでなくてもよいのであれば変な不具合も起きないでしょうから、動作も安定しますね。
RasPiは持ってるんですが、I2S受けられるDACは持ってないし、工作も全く駄目なんですよね(;_;)
以前、i2s出力が取り出せるという話の時は意味が分からなかったのですが、丁寧に解説して頂き、よく分かりました。なるほど、そういうことでしたか。リンク先もざっと読みました。面白いですね。
「さらば、spdif、ddcを外して、パソコンとdacを直接つなぐ」ということですね。dsd再生の場合は文字通り(DoP変換無しの)ネイティブな再生となるから、強力でしょうね。wav再生に関しては、最近流行りのwav->dsdリアルタイム変換をパソコン側に移すことになるけど、そのメリットとディメリットの兼ね合いでしょうね。
twlさんの実験や掲示板での書き込みからみると、相当に効果はありそうですね。課題はi2s接続が可能なdac製品がどの位登場するかですかね。いっそのことbbbをdacの中に入れて、nasと組み合わせてサーバにすると面白いかもです。
今日帰宅してから、改めてI2S直結の音出しを聴いておりましたが、心地よい音の環境についウトウト、今覚醒してあわててこれを書いている状態です。
syuさん wrote:
> RasPiでやってみるかbbb向けの登場を待つか、どうしようかなあ♪
先に紹介した掲示板でもRasPiよりもBBBの方が性能的には上だろうという認識はありますので、将来的にはBBBでのI2S直結が実現するかもしれませんね。
tinkerさん wrote:
> RasPiは持ってるんですが、I2S受けられるDACは持ってないし、
> 工作も全く駄目なんですよね(;_;)
この最後のコメントに思わず笑ってしまいましたが、RasPi用にI2S受けの出来る可愛いDACが紹介されていますので、ご検討されてはいかがですか。
http://www.tjaekel.com/T-DAC/raspi.html" target="_blank">http://www.tjaekel.com/T-DAC/raspi.html
http://www.hifiberry.com/" target="_blank">http://www.hifiberry.com/
yoさん wrote:
> 「さらば、spdif、ddcを外して、パソコンとdacを直接つなぐ」ということですね。
まさにご指摘の通りです。DAC直結なのでそれだけ信号経路が単純になり、再生音が悪くなる理由がより少なくなるということなのでしょうね。上のURLにお示ししたDACはそういう意味で面白そうです。
twl
volumioってmpdをベースにしていると思っていたのですが、i2s対応にするために独自に手を入れたということなのでしょうか。それとも、mpdベースではなく、i2s対応は独立した機能として実装しているということなのでしょうか。
どうも英語力の不足で(^^;;;、良く分からないので、ご存じなら教えて下さい。最新のalsaがi2s対応したということは承知しています。
DACの案内ありがとうございます。
紹介して頂いたページから、DACはそのうち誰かが試してくれるだろうと、DDの方を発注しました。
Backorderらしいので、いつ届くかわかりませんが。
yoさん
以下のページからimageを落としてみました。
http://www.hifiberry.com/guides/sd-card-images/" target="_blank">http://www.hifiberry.com/guides/sd-card-images/
volumioでなければいけないというわけではなさそうで、modulesを組み込んでおけばいいようです。
bbbは対応にまだ時間がかかりそうですが、bbbに重点を移すと宣言されているようなので、すぐかもしれませんね。
せっかちなので、RasPi発注してしまいました^^;;
どんな音が出るのか、期待大です。
tinkerさん
ご存知でしょうが、bbb入荷したようです。
http://store.techshare.jp/shopdetail/005007000022/" target="_blank">http://store.techshare.jp/shopdetail/005007000022/
hifiberryのmodules情報ありがとうございます。
> volumioってmpdをベースにしていると思っていたのですが、
私もにわか勉強なのですが、Volumio自体はその前身であるRaspyFi Projectから進化したものであると開発者のMichelangelo( a.k.a. Mikelangeloz)さんが述べています。
彼はイタリアのフィレンツェ在住の心理学先攻の院生のようですが、RaspyFiからVolumioに至る開発のきっかけはVoyage MPDにあり、これをもっとシンプルな形にしたいということがこのプロジェクトの動機となっているようですので、yoさんが思われているように、mpdを念頭においた開発ということでいいのでしょうね。**
* http://www.raspyfi.com/credits/" target="_blank">http://www.raspyfi.com/credits/
** http://www.volumio.com/" target="_blank">http://www.volumio.com/
> i2s対応にするために独自に手を入れたということなのでしょうか。
そのようです。この環境の基礎を作ってくれたのがドイツのハンブルグ工科大学所属のFlorian Meierさんのようですが***、彼のようにI2S moduleのソースをさらっと書いてしまう人や、それを自分の開発しているシステムにきれいにインプリメントできるMichelangeloのような人達が国境を越えてネットでつながっていてくれているおかげで私たちが恩恵を受けることができるのはとてもありがたいことだと思います。
*** http://blog.koalo.de/2013/05/i2s-support-for-raspberry-pi.html" target="_blank">http://blog.koalo.de/2013/05/i2s-support-for-raspberry-pi.html
日本でもRasPi/I2Sを冷静に解析している方もいらっしゃいますが****、現状ではES9018搭載のDACユーザーが一番この環境の恩恵を受けそうですね。
**** http://nw-electric.way-nifty.com/blog/2014/01/raspberry-pi-i2.html" target="_blank">http://nw-electric.way-nifty.com/blog/2014/01/raspberry-pi-i2.html
twlでした。
> せっかちなので、RasPi発注してしまいました^^;;
手元にある方からお借りしているPiはあるのですが、僕は気長にbbb対応を待つかなと思っています。どうも、Piは unreliable なので。偏見かなぁ(^^;;;。
tinkerさん
> DACはそのうち誰かが試してくれるだろうと、DDの方を発注しました。
これ
http://www.hifiberry.com/hbdigi" target="_blank">http://www.hifiberry.com/hbdigi
のことですか。であれば、dacの方はこちらで試すかなぁ。まあ、aitlaboでも、ケーブルがあれば(作れば)、対応できそうなのですけど。
> volumioでなければいけないというわけではなさそうで、modulesを組み込んでおけばいいようです。
mpdでもモジュールを指定してあれば、OKということですね。
twlさん
情報ありがとうございます。ゆっくり解読いたします。
>bbb入荷したようです
情報ありがとうございます。
yoさん
以下の3つを発注しました。
・HiFiBerry Digi (#hb-digi)
・2x13 pin stacking header(RTCを持ってるので、それも使えればと)
・11mm Nylon spacer + screw
> volumioでなければいけないというわけではなさそうで、modulesを
> 組み込んでおけばいいようです。
確かにそうなのですが、Volumioの.imgはGithubのRasPi用のカーネルソースに連動しているようなので、この.imgで作ったSDカードを起動した後、rpi-updateのコマンドを打てばI2S modules付きの最新のカーネルに自動的にアップデートしてくれるので手間が省けます。*
* 前提としてapt-get update, apt-get upgrade, apt-get install git-core, apt-get install binutilsが必要になりますが。
私はRasPi用のカーネルコンパイルは初体験だったのですが、無事に最新のカーネルをビルドして必要なmodulesが無事に格納され、I2S直結再生を確認した後、つい上記のrpi-updateをやったら、自分が苦労して作った最新カーネルをゴミ箱に追いやって、あちら様で準備されていた最新カーネルに強制的に入れ替えられていました。(;_;)
ちょっとムッとしましたが、逆にいうと、あちら様に抵抗しない限り、rpi-updateをやっておけば間違いはないというか、fool-proofに優れた環境が提供されているとポジティブに考えることで納得しました。
twl
>自分が苦労して作った最新カーネルをゴミ箱に追いやって、あちら様で準備されていた最新カーネルに強制的に入れ替えられていました。(;_;)
それじゃ、小ネタを少し。
config.txtに、kernel=kernel.img.hogehogeとか書いておけば、指定したkernelが使われます。updateでkernel.imgが書き換えられても大丈夫です。
もう一つ。raspberry piはクロックアップが公式にサポートされていますが、raspi-configで、たとえば800MHzにしても、実際は負荷をかけ続けないと800MHzにはなりません。以下のようにconfig.txtに書いておけば、常に800MHzで動きます。
arm_freq=800
force_turbo=1
initial_turbo=30
ただし、1GHzとかにupするとSDの内容が壊れる場合もあるそうです。
情報ありがとうございます。
私もsyuさんの書き込みで興味を持ちBBBを導入した口です。
もともと DDC 周りの複雑さがとても気になっていました。
現状は
CuBox or BBB
↓
USB ケーブル(実際は短縮のため変換コネクタ)
↓
USB コネクタ(ここから AIT DAC)
↓
USB Noise Filter ← 5V電源
↓
USB ケーブル
↓
UDA3
↓
AIT DAC I2S 入力
となっており、途中5箇所をすっ飛ばせたら
どんな良い音になるのか、とても興味があります。
DDC が絡んでいると思われる BBB rt の DSD 再生中断問題も
直結できれば改善しそうですし
DAC に内蔵できたらレイアウトもスッキリしますね。
今のところ BBB への対応を待ちながら解読の予定ですが
皆さんの書き込みを見ていると我慢出来なくなりそう。。
> 私もsyuさんの書き込みで興味を持ちBBBを導入した口です。
お仲間ですね、この掲示板には遅くに参加いたしましたがよろしくお願いいたします。
> もともと DDC 周りの複雑さがとても気になっていました。
> -snip-
> となっており、途中5箇所をすっ飛ばせたら
> どんな良い音になるのか、とても興味があります。
厳密にはI2S固有のjitterが残るために、直結にすればそれでOKというわけでもなさそうですが、聴感上はとてもいいのではないかと思います。
> DDC が絡んでいると思われる BBB rt の DSD 再生中断問題も
> 直結できれば改善しそうですし
やはり再生中断問題の問題が残ってますか。私は#3745でお示ししたDDCの使用および3.12.6以降のrtカーネルの出現以来、DSD128の再生も含め、再生ノイズや再生中断は殆どといっていいぐらい経験しておりません。
一番の理由は、使用しているDDCがI2S変換前後の処理系にそれぞれ専用の電源を配置することで接地を含めて両者を電気に分離した後で、後者の処理系側にMCLK用のオシレーターを配置し、クロックを打ち直す手順(reclock)を踏んでいるため、非常にクリーンなI2S信号がDAC側に送られているためだと思います。
UDA3基板もアイソレーターが使われているようですが、アイソレーション後段でのオシレーター配置とかreclockingはやられているのでしょうか。私もDSDの録音にはUDA基板を使っているのですが、再生には殆ど使わないので詳しくは調べておりません。
いずれにしてもシンプル イズ ザ ベストということで、BBBでのI2S直結が可能になる日が楽しみですね。
twlでした。
私が発注したDigiですが、不具合の見直しのため現在作業中で、3月末の発送になるようなメールが来ました(T_T)
実験は、当分先になりそうです。
RasPi入手しVolumio:1.2-betaとusb/uda2経由で16/44.1だけですが音は出るようになりました。
Linux volumio 3.10.30+ #640 PREEMPT Fri Feb 14 19:09:14 GMT 2014 armv6l
___
/\_ \ __
__ __ ___\//\ \ __ __ ___ ___ /\_\ ___
/\ \/\ \ / __`\\ \ \ /\ \/\ \ /' __` __`\/\ \ / __`\
\ \ \_/ |/\ \L\ \\_\ \_\ \ \_\ \/\ \/\ \/\ \ \ \/\ \L\ \
\ \___/ \ \____//\____\\ \____/\ \_\ \_\ \_\ \_\ \____/
\/__/ \/___/ \/____/ \/___/ \/_/\/_/\/_/\/_/\/___/
Free Audiophile Linux Music Player - Version Beta1.2
C 2013 Michelangelo Guarise - Volumio.org
Volumio Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Feb 20 19:03:34 2014 from ds99.local
root@volumio:~#
Volumio/RasPi > USB/uda2 > i2s/ait-dacだと、私の好みとは大幅にかけ離れた音でした^^;
p5端子はハンダ付けしましたので、ここからait-dacにジャンパワイアでi2s接続ですが、さてどう継ぐか、今からです。combo384の端子を参考に接続しようとしています。
tty接続もできるようにしますが、これはbbb用のTTL-232R-3V3が流用できるようですね。GPIOからジャンパワイアです。
http://foldrr.hatenablog.com/entry/2013/10/13/202044" target="_blank">http://foldrr.hatenablog.com/entry/2013/10/13/202044
レポートありがとうございました。実は手元にRasPiはあるのですが、ケースを空けて調べたら、i2s接続用の端子が無い旧型機なので、実験できないと分かりました。残念。aitlaboはあるので、piを入手するか、bbb対応を待つか、悩むなぁ(^^;;;。
「TTL-232R-3V3が流用できる」のは朗報ですね。でも、volumioの祖先を使って鳴らした音は最悪だったので、ますます悩むなぁ(^^;;;。
> p5端子はハンダ付けしましたので、ここからait-dacにジャンパワイアでi2s接続ですが、
> さてどう継ぐか、今からです。combo384の端子を参考に接続しようとしています。
私の環境ではこんな感じです。
http://mimizukobo.sakura.ne.jp/upload/camera.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/camera.jpg
あまりにもゴチャゴチャしているので人前でお見せできるものではないのですが、橙から青までのカラーケーブルがI2S接続用です。RaspiからのI2S引き出しは橙がDATA、黄色がLRDATA、緑がBCK、青がGNDとなっています。こいつをTwisted Pear Audio (TPA) のOttoというディジタルスイッチのキットに接続、右上のBBBに接続された384kHz対応のXMOS DDCからのI2S/DSD信号と切り替えています(表示が古いままですが)。
DACがどこにも見当たりませんが、引き出したI2S信号は上記のOttoから左上にあるTPAキットのTeleporterというLVDSに接続、ここからRJ45のケーブル経由で数メートル離れたBuffaloのDACに同じTeleporterの受信部を介して接続しています。I2Sコードの引き回しは長くはできませんが、このTeleporterを使うとかなりの長さでI2S信号をノイズなしで搬送できるので、DAC近くで配線作業を頻繁に行う負担から免れることができ、重宝しております。
#左下にただ今休止中のAmanero Combo384、右下のBBBも将来のI2S対応に備え、配線だけは既に準備完了なのですが (^^;
twlでした。
USB経由でRasPi/Volumioだと再生音は貧弱ですね。
ait-dacへの接続はHDMI経由が良いかなと思って、角田さんに問い合わせ中ですが、さてどうなるか。
差し当たりUDA2を使う場合も、dacケースの外に出して、HDMIで送ろうかと思っています。
twlさん
写真公開ありがとうございます。参考にさせていただきます。なかなか情熱的なセットアップで感心しました。これを設置したままにしておける場所の確保も必要ですからね。
RasPiのP5からはSDATA、LRDATA、BCK、GNDのみで、mclkがありません。HDMI(I2S)に変換し、AIT-DACのHDMI入力に持って行こうかと考えていますが、HDMI送信側にmclkなくても良いのかどうかすら知りません。調査中です。Teleporter digital transceiverだとmclk不要ですか?
> RasPiのP5からはSDATA、LRDATA、BCK、GNDのみで、mclkがありません。
> HDMI(I2S)に変換し、AIT-DACのHDMI入力に持って行こうかと考えていますが、
> HDMI送信側にmclkなくても良いのかどうかすら知り ません。調査中です。
I2Sで定義される信号線はGNDを除く上記のSDATA、LRDATA (LRCK)、BCKの3本ですので、それでいいのではないでしょうか。MCLKはもともとDAC自体の動作に必要なもので、I2Sに関してはオプション扱いと認識しています。
AIT LaboのページにあるI2S/DSD等のインターフェース仕様に関するpdfを拝見しましたが、この記載だとMCLKの周波数を測定してからI2S/DSD信号線を確認するような意味にとれ、I2S信号は前もってどこかで作られたMCLKに同期していることが条件となるように見えます。MCLK自体はES9018側のVCXOで作られるものと理解していましたので、もしかしたら私が読み違えているのかもしれませんが、おかしな表現だなという印象を受けます。
また、HDMIはあくまでもI2S信号線をコンパクトにまとめて配線させるためのもので、HDMI本来の規格や変換とは無関係と思われます。上記のSDATA, LRDATA, BCKおよびGNDの結線にHDMIのどの番号のピンが使われているのかをAIT Laboにお尋ねになるのがいいのではないでしょうか。
ちなみに私は安価なCD/DVDドライブからI2S信号を取り出す基板*で遊ぶことがありますが、その基板からのI2S取り出しにはHDMIが使われています。そこで安価なHDMIコネクターケーブルをバラし**、付属の仕様書にあるpin assignmentから必要なI2S信号線だけを取り出し、これにコネクターをつけてTeleporter経由でDACに送っています。
* http://musicaltech.com/#SATA-to-I2S" target="_blank">http://musicaltech.com/#SATA-to-I2S
** http://mimizukobo.sakura.ne.jp/upload/hdmi.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/hdmi.jpg
なお、バラしたケーブルのピン番号の確認にはHDMIコネクターにDVI変換コネクターをつけてテスターでの通電確認をしやすくした状態で行っています。
> Teleporter digital transceiverだとmclk不要ですか?
はい、MCLKの送受信に使えるピンヘッダーもありますが、Buffalo DACのマニュアルでもあくまでもオプション扱いで、基本的には不要との記載があります。
twlでした。
ait-dacはmclkが必須との事です。
RasPi or BBBからのI2S直結には何らかの方法でmclk生成する等の工夫が必要になりますね。
http://aitlabo.net/blog/?c=002" target="_blank">http://aitlabo.net/blog/?c=002
2013/01/24の「DSD/I2Sインターフェース」記事に以下の記述がありました。
「当方DACはmclkを使用してジッター抑圧していますので必須信号です。」
メール問い合わせでも同様の回答(mclkが必ず必要)でした。
Buffalo-III DAC手配しなきゃですかねえ ^^;;
追記:別記事にするのもアレなので追記にしますが、角田さんはCOMBO384のほうが○○○より音の劣化が少なくて良いから、こっちを何とか使え、との趣旨で、励まして下さってました。
この掲示板は写真はアップロードできないのですが、こういう手がありましたか。大変参考になりました。それで...
syuさん
ウームですね。ケーブルの作成で対応できるのかなと思っていましたが、そんなに甘くはないのですね。
HiFiBerry DAC でいくか、Buffalo-III DACかまたまた悩むなぁ。。
new alixの仕様に 'GPIO header' の記述はありますが、どっかにI2S相当信号は出てないでしょうか。
http://www.pcengines.ch/apu.htm" target="_blank">http://www.pcengines.ch/apu.htm
まだ詳しいマニュアルが無いでしょうから、不詳でしょうかね。
> ait-dacはmclkが必須との事です。
> RasPi or BBBからのI2S直結には何らかの方法でmclk生成する等の
> 工夫が必要になりますね。
そうですか。これはちょっと面倒ですね。I2S接続の場合にはAITのDACがslaveとして動作する仕組みになると理解しました。ES9018のchip近くにおかれたVCXOはクロックの打ち直しとして使われるのでしょうね。じゃないとjitter対策の上では不利な環境になりますので。
これはともかく、ということはRasPiから出力されるI2S信号のうちBCKを何らかの方法で逓倍させて22.5792MHz/24.576MHz(それぞれ44.1kHz/48kHz対応)のMCLKを作った上でAITのDACにつなぐ手段を考える必要があります。
うーん、実は私の手元にはドイツのMutecというメーカーのiDというクロックジェネレーター兼外部クロック逓倍器があるのですが、これを使い、当時使用していたDSD対応のADCからのMCLK信号を逓減させ、DSDの生信号であるSDIF-2信号の搬送に必要なWCLKを作っておりましたが、この装置だと、RasPiから入力したBCKとそのfsを逓倍させて作ったMCLKがそれぞれ別の出力として得られ、AIT DACの要求に合うような接続が一応可能になりますが、接続にBNCコネクターへの変換が必要とか、ケーブル間のインピーダンスの不整合による信号反射などの可能性も生じますので、あまり現実的な方法ではないですね。
もうひとつの方法は私の愛用しているTwisted Pear AudioのキットにMetronome*というきわめてコンパクトな逓倍器があり、これにRasPiからのI2S信号を入力させれば生成されたMCLKを含めたI2S信号をAIT DACに送ることが可能となります。ただし逓倍は48kHzを対象としているようなので、44.1kHz/16bitなどはどういうふうになるか見当がつきません。製作に必要なのはI2S信号の結線に必要な端子台のハンダ付けと7.5Vの外部電源ぐらいですみますので、これが一番お手軽かもしれませんね。
実はTPAから出ているOpusというDACキットをデュアルモノラルの構成で作り、これにMetronomeを組み合わせようと考えていたところです。
* http://www.twistedpearaudio.com/digital/metronome.aspx" target="_blank">http://www.twistedpearaudio.com/digital/metronome.aspx
> Buffalo-III DAC手配しなきゃですかねえ ^^;;
はい、ES9018ならBuffalo IIISEがおすすめです。が、I/V出力段の作成やらケースの自作など、およそみみず工房掲示板の話題とはかけ離れた領域になりますので、このあたりにしておきます。(^^;)
twlでした。
半田付けは必要ですが、DAC基板のI2Sに外部から信号を入れるのでしたら回路理解や半田付けなどのスキルは必須になります。基板間接続を誤っただけでDAC基板を壊すことになりますし。
ありがとうございます。
私も昨晩、検索して発見していたのですが、使えるものかどうか自信がありませんでした。
http://easyaudiokit.hobby-web.net/bekkan/distr/distr.html" target="_blank">http://easyaudiokit.hobby-web.net/bekkan/distr/distr.html
http://easyaudiokit.hobby-web.net/bekkan/ES9018/ShiftPara.html" target="_blank">http://easyaudiokit.hobby-web.net/bekkan/ES9018/ShiftPara.html
http://easyaudiokit.hobby-web.net/bekkan/manual/DAC9018S_ADDON.pdf" target="_blank">http://easyaudiokit.hobby-web.net/bekkan/manual/DAC9018S_ADDON.pdf
これをRasPi or BBBの送り出し側でHDMI(I2S)送信基盤と一緒に実装すればよさそうですね。
HDMI使わず直結するなら、RasPiとait-dacのI2S受信端子との間のケーブルに逓倍クロック基板を乗せた変換基盤を挟む手でしょうか。そこにアイソレータも乗っけとくとか。。
「上記に当てはまらない周波数のときは DAC9018S 内蔵の水晶発振器に切り替えます。」
の対策が必要かもしれませんね。別にもう一つ水晶用意するとか。
でも、この程度なら、何とか工作できそうです。頑張ってみます。
> まだ詳しいマニュアルが無いでしょうから、不詳でしょうかね。
そのようです。
僕のサイトの「New Alix」記事第一回目にボードの写真がありますが、これをクリックすると写真だけ単独で表示できます。さらにクリックすると拡大できて、ボードに印刷されている文字が読み取れます。その状態で画面上左端あたり(ボードの取付ネジのすぐ横)にGPIOと印字のあるピンがならんでいますので、多分此処だと思いますが、使い方は不明ですね。
ところで、NewじゃないAlixでも、GPIOはありませんでしたっけ。
> はい、ES9018ならBuffalo IIISEがおすすめです。が、I/V出力段の作成やらケースの自作など、およそみみず工房掲示板の話題とはかけ離れた領域になりますので、このあたりにしておきます。
遠慮なくガンガンやって下さい。syuさん、Phoeniciaさんも入って頂ければ、鬼に金棒でしょうから。
ちょっと比喩の使い方がまずかったなぁ。圧倒的パワーだということを言っています。悪意はまったくありませんです。
> 基板間接続を誤っただけでDAC基板を壊すことになりますし。
良い子の近づく世界ではなさそうなので、遠巻きにして眺めることにいたします(^^;;;。
まあ、HifiBerryとRasPiのハンダ付け位なら何とかなりそうだから、これで試してみるかなぁ。RasPiという部分がひっかかるのですが。
> BCKを逓倍してMCLKを作るのでしたら、お気楽オーディオさんから頒布されている
> DAC9018S 用逓倍クロック基板」が使えるのではないでしょうか。
貴重な情報ありがとうございました。上記の基板で使われているIDT社製のICS570という逓倍用のICを直接使えばいいのではないかと考え、先日Digi-Key経由で何個か購入しました。専用のプリント基板などを作ったりする知識や技術はないので、このICがのっかる適当なSMD用基板を使い、これにICをハンダ付けしました。
基板があまりにも小さいのでこいつをbread boardに固定、RasPiから3.3Vの電源をもらい、ICS570のマニュアルにある回路図に従ってBCKからの信号を逓倍してMCLK相当の周波数を生成できる(はずの)結線をした後、これをDAC側のMCLK入力に送り、さて本当にこの石で逓倍できるのかどうか、以下のURLにお示ししたような状態で試しました。配線がゴチャゴチャしているのはお許し下さい。
http://mimizukobo.sakura.ne.jp/upload/ICS570B.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/ICS570B.jpg
用いたDACはTwisted Pear AudioのOpus(WM8741搭載)というslaveでしか動作しないI2S入力専用のDACキット、44.1kHz/16bitの音源をVolumio経由で再生、bread board上でRasPiからのBCKをDAC直結用と逓倍用に分割、逓倍の値を色々変えながらRasPiからのBCKがMCLKとして使えるかどうかを試しました。
最初に結果です。ビンゴ!RasPiからのBCK逓倍で、slaveでしか動かないDACから音が出ました。(S1=0, S0=1, FBIN from CLK/2, MCLK from CLK/2 &#8211; あくまでも作られる方のための資料です)。再生装置は実験用の簡単なものなので音質云々は言えませんが、うまくロックするとノイズは皆無、結構素敵な再生音です。今回はx4の逓倍で安定した再生ができましたが、上記の石さえあればうまくMCLKを作れることを確認しました。
ただし色々問題が... 今回はI2Sを試すにはあまりにも横着なケーブルの引き回しをしたため、外からのノイズを受け易く、MCLKでロックしにくい状態が続きました。なんでこんなに不安定なのかと、ICをマウントした基板をbread boardからほんの少し浮かしたら簡単にロックできるようになりました。多分、チップ抵抗やらコンデンサなど、およそやりたくもないハンダ付けが案の定非常にへたくそなためだったのでしょう。
twlでした。
さすが早いですね。ICS570Bの実験うまくいったようで、よかった。とりあえず私も経過報告です。
私は、BCKに合わせて逓倍率を変える機能を搭載した「DAC9018S 用逓倍クロック基板」をやっと入手し、チップ部品のハンダ付けを済ませたところです。老眼が極限まで進行した私の目では、実体顕微鏡なしでは不可能な作業でした。それに、フラックスの煙を吸い込むと呼吸器やられますしね。吸煙ファンを使用したとしても、あまりやりたくない作業です。
で、チップ部品はキットに含まれていましたが、チップ部品でないセラミックコンデンサとPICマイコンのソケットは入っていませんでした。現在、部品手配中で、キットはまだ完成していません。
ait dacはHDMI入力を増設してもらいました。ait dacのHDMI入力は、ait独自フォーマットだそうですが、DAC基板上のジャンパ切り替えで、公開されていて汎用性の高いPS-Audioフォーマットに変更可能です。FidelixやSDTRANS384はこの方式だそうで、UDAのオプションになっているHDMI出力基板もたぶん同様の方式です。
http://www.fidelix.jp/img/PS-HDMI.jpg" target="_blank">http://www.fidelix.jp/img/PS-HDMI.jpg
HDMI(I2S)出力に改造してもらったパイオニアPD-70でCDやSACDを聴いてみましたが、結構良好な音です。CDはBBB>UDA>I2Sの方がCDP直接より私は好みでした。でも、差はわずかです。ネットワークオーディオの方がCDP直接より音も良く利便性も高いことが確認できました。
RasPiのI2Sで直接鳴らせるのは、早くて来週でしょうか。キットに一部不明な端子などもあり、まだ予後は不詳です。
>キットに一部不明な端子
これは、cont.と印刷された端子で、本来はDAC基板の同名の場所に接続されます。このcont.は、Lレベルで基板をin-activeに、Hレベルでactiveにすると判明しました。外部からBCKを入力して使うには、cont.を3.3Vに接続します。
解決
・マルチブートの件は解決しました
u-bootが良くなかったようです。
http://odroid.us/odroid/odroidu2/debian/debian-wheezy-base-7.1.0.img.xz" target="_blank">http://odroid.us/odroid/odroidu2/debian/debian-wheezy-base-7.1.0.img.xzのu-bootは正常に動作します。
使用しているu-bootは以下のもののようです。
http://odroid.us/mediawiki/index.php?title=Main_Page" target="_blank">http://odroid.us/mediawiki/index.php?title=Main_Page(このサイトは色々参考になります)
http://odroid.us/mediawiki/index.php?title=U-boot_Topics" target="_blank">http://odroid.us/mediawiki/index.php?title=U-boot_Topics
・kernel 3.14-rc3
以下URLのG16が動きます。
ただしu-bootが古いので、cuboxと同じようにdtb付きのzImageを作成する必要があります。
cat arch/arm/boot/zImage arch/arm/boot/dts/exynos4412-odroidu2.dtb > ../zImage てな感じです。
3.14-rc3(実際はrc4に近いrc3です)とG16のdiffをとって、patchを作成済みです。
作成したpatchは3.14-rc5にも綺麗に当たり、buildしたkernelも動いています。
未解決
マルチブートは出来るようになったのですが、Archの動作がおかしいです。
そもそもethに使っている石がsmc95xxで、MAC addressを保存するEEPRORMがないのが原因のようです。
MAC addressが保存されていないと、例えばDHCPでアドレスを受ける場合、毎回アドレスが変わってしまいます。
そのためか、しばらく動かしていると通信が途絶えてしまいます。
原因は分かっているのですが、Archに執着がないので、ほったらかしです。
これについては、以下が参考になるかもしれません。
http://archlinuxarm.org/forum/viewtopic.php?f=47" target="_blank">http://archlinuxarm.org/forum/viewtopic.php?f=47&t=6164&start=10
http://archlinuxarm.org/forum/viewtopic.php?f=48" target="_blank">http://archlinuxarm.org/forum/viewtopic.php?f=48&t=3133
まずdebianで動作確認し、その後Archに挑戦されたほうが良いと思います。
もしかしたらG16のdeconfigのようにboot optionを設定したkernelは問題ないかもしれません(exynos4412-odroidu2.dtsの中でMAC addressを設定しているので)
その他
参考になるサイト
raspiにも参考になります。
http://hanposaki.blog.so-net.ne.jp/" target="_blank">http://hanposaki.blog.so-net.ne.jp/
とりあえずはここ
http://odroid.us/mediawiki/index.php?title=Main_Page" target="_blank">http://odroid.us/mediawiki/index.php?title=Main_Page
シリアル通信に必要なdriverやセキュリティ上必要な初期設定が参考になります。
http://gadget.ichmy.0t0.jp/odroid/" target="_blank">http://gadget.ichmy.0t0.jp/odroid/
以下に必要な物をUPしておきます。
3.8.13.16と18は、なんとなく音が違うように感じます。ただ現在のgitには3.8.13.16はありません(必要であればzipのurlをupしますので、その時は書き込んでください)
https://drive.google.com/file/d/0BxnbJHx0_xurQWxUT0lzaERCaGc/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurQWxUT0lzaERCaGc/edit?usp=sharing
https://drive.google.com/file/d/0BxnbJHx0_xurZkRhZ1UyaHRlYVk/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurZkRhZ1UyaHRlYVk/edit?usp=sharing
(このpatchはrc3には当たりません。理由は前述のとおりです)
>PS Audioのフォーマットというのはdiyaudioでのこの記事ですね。
わたしが見たのはfidelixの記事です。
http://www.fidelix.jp/technology/isolation2.html" target="_blank">http://www.fidelix.jp/technology/isolation2.html
http://www.fidelix.jp/technology/I2S.html" target="_blank">http://www.fidelix.jp/technology/I2S.html
ここに紹介されていた回路図と、twilさんご紹介の記事の回路図は同じものですね。どちらもPS Audioが提供元で、日付も1日違い、ほぼ同時。
>必要な信号線の引き出しにあたり、実数と虚数みたいに二つの組み合わせができる
これはまだ理解できていません。「HDMIからのI2S線引き出し」の問題なら、ait dac側の問題なので、当面はパスですね。^^;
皆様
今はSACDPからのHDMI(I2S)接続を聴きこんでいますが、HDMIケーブルによる音質の差が(かなり激しく)出てしまうのが問題です。ケーブル固有の音質がだんだん耳につき始めています。手持ちで音の良いHDMIケーブルがなかなか見つからない。gefenのロック付きの旧タイプ(青色)で一応は落ち着いていますが、なんかまだムズムズです。
ケーブルの影響力はS/PDIFやSDIF3も同じ程度ですが、線材などの影響が大きいインターフェースは、メーカにはお徳でしょうが、わたしは嫌いです。むしろUDA2に使用するUSBケーブルの方が固有音はマシな気もしますが、どうでしょうね。
LVDSといえども長く引き回すと信号品質低下が生じる可能性も有りますし、送受信側にCMOSとLVDSとの変換回路が入ることによるジッター付加もあるでしょうから、できればCMOSレベルのI2Sを最短距離(5cm以内程度)で接続してあげるのが有利だと思います。
http://bbb.ieero.com/" target="_blank">http://bbb.ieero.com/
マニュアルに従い、Debianのイメージファイルから起動用のmicroSDを作成、これにドライバーをインストール、BBB上のDATA、LRCKおよびBCKのヘッダーピンからDAC側にI2S接続、44.1/16のPCMファイルがノイズなしで再生できています。外部のノイズの影響のためか時々同期がはずれますが、再生音は非常に良好、RasPiでのI2S直結よりも再生される音場にいい意味での広がりを感じます。
root@beaglebone:~# uname -a
Linux beaglebone 3.8.13-bone41 #1 SMP Tue Mar 4 22:51:47 UTC 2014 armv7l GNU/Linux
root@beaglebone:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Botic [TPA Botic], device 0: ES9018 es9018-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
Twisted Pear AudioのBuffalo DACを対象としたES9018用のドライバーですが、ES9018を用いた他のDACでもおそらく使用できるのではと思われます。(BBBをマスターとして用いるには例によってMCLKの準備が必要ですが)
念願のBBBによるI2S直結が可能となり、ちょっとうれしいtwlでした。
やっとHiFiBerry Digiの発送メールが来ました。
着くのは多分2週間後だと思います。
P5の半田付に失敗した時には、郵送事故ってことにしますm(_ _)m
先日RasPi用にHiFiBerry DAC:Analogを購入し
組み込んで使っております。
http://www.tx-2.net/img/pi_01.jpg" target="_blank">http://www.tx-2.net/img/pi_01.jpg
http://www.tx-2.net/img/pi_02.jpg" target="_blank">http://www.tx-2.net/img/pi_02.jpg
http://www.tx-2.net/img/pi_03.jpg" target="_blank">http://www.tx-2.net/img/pi_03.jpg
http://www.tx-2.net/img/pi_04.jpg" target="_blank">http://www.tx-2.net/img/pi_04.jpg
Logitec SqueezeBoxの変わりとして
ソフトウェアにPiCorePlayerを組み込んで
Logitec media Serverからコントロールしてます。
picoreplayerにもI2Sモードがあります。
piCorePayer
https://sites.google.com/site/picoreplayer/home" target="_blank">https://sites.google.com/site/picoreplayer/home
またDIYINHKのホームページにES9023とPCM5102の
I2S入力専用のお安いDAC基板があるのでRasPi用
に使えないかと考えております。
http://www.diyinhk.com/shop/audio-kits/26-24bit192khz-es9023-dac-i2s-input-ultra-low-noise-regulator.html" target="_blank">http://www.diyinhk.com/shop/audio-kits/26-24bit192khz-es9023-dac-i2s-input-ultra-low-noise-regulator.html
私のとこにも、もうすぐHiFiBerry Digiが届きます。
HiFiBerry Digiが届いたら、piCorePayerも試してみたいと思います。
とりあえずVOLUMIOもI2Sモードで無事に動作しました。
VOLUMIO
http://volumio.org/" target="_blank">http://volumio.org/
DIYINHKのPCM5102A DAC基板ですがMCLKをGNDに繋ぐ
ことで内部でクロックを生成できそうなので
RasPiのP5コネクターから直にI2S直接入力できそうです。
http://volumio.org/forum/hifiberry-and-rpi-dac-pinout-t29.html#p176" target="_blank">http://volumio.org/forum/hifiberry-and-rpi-dac-pinout-t29.html#p176
本日、HiFiBerry Digiが届きました。
とりあえず音は出たのですが、期待し過ぎなのか、もう少しって感じです。
やっぱり、twlさんみたいに気合を入れないと駄目なのかなぁ。
BBBのCapeが出たら、また挑戦してみます。
> とりあえず音は出たのですが、期待し過ぎなのか、もう少しって感じです。
そうなんですか。もしかしたらI2S直結とS/PDIFとの違いなんかもこの「もう少しって感じ」に関係しているかもしれませんね。試行錯誤を楽しまれるのも悪くないんじゃないでしょうか。(^^;
ちなみに#4200でお示ししたRasPiからのBCK逓倍でMCLKを作り、DACにI2S直結させた組み合わせは、それに合わせて作ったDACのエージングも効いてきたせいか、ただいま絶好調、カーネルが落ちる事もなく、この2週間以上元気に稼働しており、実験から本格運用状態になってしまいました。いずれ時間ができたらRasPiごと収納できるケースでも作ろうかなと考えております。
> BBBのCapeが出たら、また挑戦してみます。
TPA (Twisted Pear Audio)のRussさんがcapeの原案を出してきたので、関連フォーラムではあれつけて、これつけてと、皆さん色々注文を出しています。こういう、オープンな議論の中からいいものが生まれるのでしょうね。ただcapeの基本設計はI2S接続が前提となるので、そういった接続環境を事前に用意することが必要になりますね。
> そろそろ3.14が出そうですね。
2.4や2.6の昔から.xの番号は奇数が開発用、偶数が安定版なんていわれているようですが、3.14が次の安定版になるのでしょうか。3.12.14のrt patchが出ていますが、Nelsonさんのところはまだ3.12.13のようなので、とりあえずCuBox用に3.12.14のrtカーネルを作っているところです。
twlでした。
昨夜やっと、自作ケープを搭載したBBBからI2S > ait dac直結で音が出ました。
twlさんご紹介の http://bbb.ieero.com/" target="_blank">http://bbb.ieero.com/ の記載に従っています。
汚いですが、自作ケープ搭載BBB
https://drive.google.com/file/d/0B1n2sZGxAleMQ1ZpQ3hEcmFsRFk/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0B1n2sZGxAleMQ1ZpQ3hEcmFsRFk/edit?usp=sharing
Phoeniciaさんご紹介のお気楽オーディオキットさんの逓倍クロック基板とデジタルアイソレータ(ADuM1100BR)を使用。加えて秋月のTPS7A4700電源キットをユニバーサルケープ上に重層しています。
電源は逓倍クロック基板とデジタルアイソレータの1次側、デジタルアイソレータの2次側で別にしていますが、このままでは背が高すぎてait dacの上蓋ができません。逓倍クロック基板とアイソレータの1次側はBBBの5vから、2次側はait dacの電源基板の5vから、それぞれTPS7A4700基板経由で供給しています。ケープには角穴を開け、シリアルケーブルも使えるようにしました。各種キットの供給元が増えて、便利になりましたね。キット供給元各位に感謝。
ケープ搭載BBBをait dac筐体内に仮設。とりあえずジャンパワイアで接続しています。
https://drive.google.com/file/d/0B1n2sZGxAleMeWdLVDhvUmVEeFk/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0B1n2sZGxAleMeWdLVDhvUmVEeFk/edit?usp=sharing
まずは、安全パイと思われるdebianで試しました。
root@beaglebone:~# uname -a
Linux beaglebone 3.8.13-bone41 #1 SMP Tue Mar 4 22:51:47 UTC 2014 armv7l GNU/Linux
root@beaglebone:~# cat /proc/asound/cards
0 [Botic ]: TPA_Botic - TPA Botic
TPA Botic
root@beaglebone:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Botic [TPA Botic], device 0: ES9018 es9018-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
topを見ると、%Cpu高いです。mpdが重労働しているのかな。
top - 00:30:20 up 49 min, 2 users, load average: 0.75, 0.62, 0.58
Tasks: 83 total, 1 running, 82 sleeping, 0 stopped, 0 zombie
%Cpu(s): 52.3 us, 2.6 sy, 0.0 ni, 44.1 id, 0.3 wa, 0.0 hi, 0.7 si, 0.0 st
KiB Mem: 509160 total, 504464 used, 4696 free, 3576 buffers
KiB Swap: 0 total, 0 used, 0 free, 444500 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1258 root 20 0 67992 9344 3196 S 52.6 1.8 24:33.09 mpd
1211 root 20 0 0 0 0 S 1.0 0.0 0:25.40 cifsd
1854 root 20 0 5184 1260 904 R 1.0 0.2 0:00.29 top
1623 root 20 0 5184 1260 904 S 0.7 0.2 0:09.55 top
1161 root 20 0 7848 2440 1932 S 0.3 0.5 0:03.30 sshd
1 root 20 0 4496 2688 1432 S 0.0 0.5 0:01.65 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
ドライバはBB-BONE-BOTIC1だけが動作可能で、BOTIC2とBOTIC3では再生できませんでしたが、設定ミスの可能性も。
BOTIC1での再生も16/44.1のファイルを指定すると48kHzに変換されて出力されます。24/96はmpdがクラッシュします。でもまだ、mpdも古いままなんです。とりあえず16/44.1で連続運用テスト中ですが、10時間越えても安定はしています。時々GMPCの接続が切れますが、数秒で自己回復します。
まだやっと音が出ただけの状態ですが、プラシーボ効きまくりの我が聴覚印象は「極上」です。サラサラとしていて嫌味が無くオーガニック感(笑)のある、とても明晰で立体感のある音。嫌な音が本当に少なく、酔わせます。しかし悪酔いはしません ^^; かなりの将来性を印象付けられました。今後が楽しみ。
自作ケープ搭載BBBとait dac筐体内仮設状態の画像
http://mimizukobo.sakura.ne.jp/upload/I2S01.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/I2S01.jpg
http://mimizukobo.sakura.ne.jp/upload/I2S02.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/I2S02.jpg
>ただcapeの基本設計はI2S接続が前提となるので、そういった接続環境を事前に用意することが必要になりますね。
なかなかハードルが高いです。
Digiみたいなcapeが出たら、また試してみますね。
ait dacのI2S入力端子は2.54mmピッチの7Pですが、信号の並びは基本的にUDA3のI2S出力端子と同じです。
1 3.3v
2 BCK (DSDCLK)
3 LRCK(DSD L)
4 DATA(DSD R)
5 MCLK
6 DSD ON/OFF
7 GND
DSDとI2S判定を含め自動判定になっていますので、DSD時のDSD LとDSD Rを正しく設定しておけば、I2Sの組み合わせは考慮する必要がありません。
つまり、DSDを使用しないなら、2-5の配線はシャッフルしてよく、DSDも使用するなら、2と5が入れ替わってもOKです。
最初にみみず工房掲示板の円滑な移転、ありがとうございました。あらためてyoさん、tinkerさんに感謝申し上げます。
さて本題です。syuさんの力作、拝見させていただきました。逓倍器やデジタルアイソレータを含め、コンパクトな5V電源基板で対応されている点がとても参考になりました。私も今後この方式を模倣したいと考えております。
syuさん wrote:
> -snip-
> **** List of PLAYBACK Hardware Devices ****
> card 0: Botic [TPA Botic], device 0: ES9018 es9018-hifi-0 []
Boticというのはチェコのプラハを流れる小さなせせらぎの名前なんですね。I2Sドライバー制作者がプラハの人らしく、こういうネーミングになったようです。TPAのRussさんが作ろうとしているcapeの名前にもBoticの名前が冠されるようです。
> topを見ると、%Cpu高いです。mpdが重労働しているのかな。
私の場合も同様です。Debian、 Archともに以下のような具合です。
root@volumio:~# uname -a
Linux volumio 3.8.13-bone41 #1 SMP Tue Mar 4 22:51:47 UTC 2014 armv7l GNU/Linux
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2269 mpd 20 0 84580 9176 2992 R 33.0 1.8 0:07.75 mpd
2262 mpd 20 0 84580 9176 2992 S 4.3 1.8 0:01.28 mpd
2594 root 20 0 2656 1148 808 R 1.0 0.2 0:00.08 top
15 root 20 0 0 0 0 S 0.3 0.0 0:00.16 kworker/0:1
2268 mpd 20 0 84580 9176 2992 S 0.3 1.8 0:00.05 mpd
2527 root 20 0 0 0 0 S 0.3 0.0 0:00.09 cifsd
[root@runeaudio ~]# uname -a
Linux runeaudio 3.8.13-17-ARCH #1 SMP Fri Mar 7 16:01:11 MST 2014 armv7l GNU/Linux
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
360 mpd 20 0 93140 11192 5668 R 32.6 2.2 0:16.90 mpd
331 mpd 0 -20 93140 11192 5668 S 2.6 2.2 0:03.58 mpd
595 root 20 0 4616 1312 1020 R 1.3 0.3 0:00.14 top
358 root 20 0 0 0 0 S 0.3 0.0 0:06.40 cifsd
1 root 20 0 4316 2560 1924 S 0.0 0.5 0:01.11 systemd
44.1/16のファイルを再生した場合、DebianでもArchでもcat /proc/asound/card1/pcm0p/sub0/hw_paramsでチェックすると
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1024
buffer_size: 16384
と出ますのでおそらくalsa経由での44.1kHz→48kHzへのresamplingでCPUが食われているのではと考えています。でもUSB-DDCでのCPU負荷と違い、音質には殆ど影響がない印象です。
ちなみに同じ44.1/16のソースでも、RasPiでのI2S再生ではMPDによる負荷はとても低くなります。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2521 mpd 20 0 77044 13m 2668 S 4.7 2.8 140:27.63 mpd
2755 root 20 0 24452 7496 2372 S 2.2 1.5 37:50.39 wicd
26406 root 20 0 4668 1416 1024 R 1.9 0.3 0:00.19 top
2862 root 20 0 14980 8044 3996 S 1.3 1.6 17:43.93 wicd-monitor
2149 messageb 20 0 3308 1204 820 S 0.9 0.2 14:27.20 dbus-daemon
この時のcat /proc/asound/card0/pcm0p/sub0/hw_paramsは
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 4410
buffer_size: 22050
となっており、オリジナルのサンプリングでデータのやり取りが行われていることが分かります。
> ドライバはBB-BONE-BOTIC1だけが動作可能で、BOTIC2とBOTIC3では
> 再生できませんでしたが、設定ミスの可能性も。
これはcape側にオシレーターを配置することが条件なので、おそらく設定ミスではないと思われます。
> BOTIC1 での再生も16/44.1のファイルを指定すると48kHzに変換されて出力
> されます。
alsa側でresamplingの設定が可能なようなのですが、現在のところ、上記のhw_paramsを変更できるような設定は発見できていません。
> 16/44.1で連続運用テスト中ですが、10時間越えても安定はしています。
これは私も同様です。現在のところ3.8.13カーネルで数日間クラッシュなしです。
> 時々GMPCの接続が切れますが、数秒で自己回復し ます。
これはBBB搭載のクロックそのものの質が悪いという指摘があるようです。この点ではRasPiでのBCK逓倍によるMCLK生成方式が安定性という点では抜群な印象です。
> まだやっと音が出ただけの状態ですが、プラシーボ効きまくりの我が聴覚印象は「極上」です。
これに関しては異論はありません。きっぱりと。(^^)
しばらくこちらの掲示板から離れておりましたら、完全に浦島太郎状態になっているようです。リハビリの手始めに、RasPiにヘッダーピンを取付け最短距離でDACと接続してみました。
当方のDACは、いまだにTDA1541A NOS DACを使用しています。(^^;環境は、volumio v1.2Beta + MPD-0.18.9の組合せです。
volumioは、Web-UIでNASのマウントなどの設定が出来るところ売りで実際そうなのですが、何故かまだ当方ではマウントできていません(^^;
でも、SDカードに別のパーティションを作ってそこにミュージクデータを置いて聴いてみました。余り期待はしていなかったのですが、これは本当に素晴らしいですね。分解能が高く、今まで聴こえてこなかった音も聞き取れます。気持ちの良いくらいに澄み切った音です。
それと、実は今回初めてネットラジオなるものを聴いてみました。これまでは大したことはないだろうと勝手に思っていて手を出さずにいましたが、今回、volumioにプリセットされているものを聴いてみましたが、充分に聴けるものでちょっともったいないことをしました(^^;
BBBとUDA基板は少しお休みいただいて、しばらくはこの環境で聴き込んでみようと思います。
長文・駄文失礼しました。いつもこちらで、大変参考になる情報を頂いて感謝しております。
I2S直接入力って、案外簡単に出来るのですかね。ネットラジオもI2S接続で聴かれたということですよね。面白そうです。
> BBBとUDA基板は少しお休みいただいて、しばらくはこの環境で聴き込んでみようと思います。
うーーむ。となると、やっぱりRasPiを入手してみるかな。
volumioを使用されている方が多いようですが当方は
Logitec Media Server(LMS) + picoreplayer + HiFiBerry DAC or DIYINHK PCM5102A DAC
にて聞いております。
ちなみにsqueezeplugの最新版はLMS + squeezeliteなので
RasPiだけで一応完結できますが、サーバー(LMS)はPCや
NASで動作させたほうが使いかと思います。
お試しくださいませ。
・squeezeplug
http://www.squeezeplug.eu/" target="_blank">http://www.squeezeplug.eu/
・picoreplayer
https://sites.google.com/site/picoreplayer/home" target="_blank">https://sites.google.com/site/picoreplayer/home
・logitec Media server(LMS)
http://downloads.slimdevices.com/nightly/index.php?ver=7.8" target="_blank">http://downloads.slimdevices.com/nightly/index.php?ver=7.8
・らじるこ plugin for Squeezebox
http://code.google.com/p/j774plugin/" target="_blank">http://code.google.com/p/j774plugin/
>I2S直接入力って、案外簡単に出来るのですかね。
信号線3本とGNDの計4本を間違いなく接続できれば、それ程難しい話ではないと思いますが、受け側のDAC基板の形態によっては簡単ではない場合があるかも知れませんね。私も既に注文しましたが、やはり、アドオンするタイプのDAC基板を導入するのも一つの解かなと思います。
あと、何方からも指摘が無いので私の場合だけかも知れませんが、ヘッダーピンの半田付け前にP5のスルーホールの内、3個分が半田で塞がっていたので除去が必要でした。これの除去は半田吸取り線ではかなり難しいと思いますし、できればバキューム式の電動半田吸引機での処置が必要と思います。なので、普段半田付けなどの作業されない方にとってみれば敷居が高い話かもしれません。
いずれにしても、ネットラジオのJAZZ専門局に嵌っています(^^;
えふ さん wrote:
> P5のスルーホー ルの内、3個分が半田で塞がっていたので除去が必要でした。
そうなんですか。私が取り寄せたものではスルーホールは未使用状態で、そのような障害物はありませんでした。RasPiのP5に関しては、私の知る限りでは初めて聞くトラブルのようです。
> これの除去は半田吸取り線ではかなり難しいと思いますし、できれば
> バキューム式の電動半田吸引 機での処置が必要と思います。なので、
> 普段半田付けなどの作業されない方にとってみれば敷居が高い話かも
> しれません。
私はこの電動吸引機を時々使っていますが、ハンダを吸い取ろうとして基板面を吸引機でゴリゴリこすってレジストを剥がしてしまう「技術」に関しては、誰にも負けません。(^^;
>RasPiのP5に関しては、私の知る限りでは初めて聞くトラブルのようです。
そうなんですか、私が入手したものだけであれば運が悪かったというべきでしょうか(^^;
>私はこの電動吸引機を時々使っていますが、ハンダを吸い取ろうとして基板面を吸引機でゴリゴリこすってレジストを剥がしてしまう「技術」に関しては、誰にも負けません。(^^;
最近は無鉛半田になっているせいか、除去し難い感じがしますね。twlさんにとってみれば釈迦に説法かも知れませんが、逆に半田を付け加えて量を少し多くしてから吸引したりしています。
DSDの再生に挑戦しているのですが、USB→combo384→DSD/DAC(mi-takeさんのDSD対応PCM1792基盤)でどうしてもプチノイズが取れず、I2Sならばと期待していたところです。
WAVでは、TAD1543+トランジスタIV(yasumasaさんの基盤)で素晴らしい音で再生されることを確認しています。
DSDについては、DSD64までですが、RasPiの6番ピンからDSDのデータが左右交互に出ており、4番ピンからはLRCKの信号が出ているので、手持ちの4053で左右に振り分け、CRによるLPFを通したところ、ノイズが多いながらも、DSDが再生されることを確認しました。
ただし、DSDの時にはBCKは出ないことから、DSD/DACにはつなげません。何とかしてBCKの信号を作ることができればDSD/DACをつないで、ノイズなしの再生ができるものと思います。
combo384+LPFだけできれいな音が出るとの報告がありますが、私はどうしてもノイズを取ることができませんでした。それよりは、RasPiのI2Sからの方がノイズは少ないと感じました。
正式にDSD対応のI2Sドライバが出れば良いのですが、ぞれまで、今の方法で何とか頑張ってみます。
RasPiにアドオンするタイプのDAC基板を購入すると以前書きましたが、これは完成品ではなく基板と主要部品のパーツセットですので、ハンダ付けに格闘しながら昨晩完成しました。
老眼の身の当方としては、1608サイズのSMD(表面実装部品)のハンダ付けは本当に辛いのですが、何とか一発で音出しできましたので、少しは報われた気分でした(笑)
http://mimizukobo.sakura.ne.jp/upload/IrBerryDAC.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/IrBerryDAC.jpg
入手したものは、new_western_elecというブログの管理人さんが領布されているもので、商品名は「IrBerryDAC」といいます。特に電源周りをしっかり設計されているようだったので、これに決めました。使用されているDAC ICはBBのPCM5102Aというものです。
まだ聴き始めたばかりですのでエージングはこれからですが、何かいきなり素晴らしい音を聴かせてくれます。BBのDACはPCM17xx系の「明るく元気よく」という音の印象があるのですが、またそれとは違った印象を受けました。特に、SDカード内のデータ再生は本当に感動しますね。これが本当に44.1KHz 16bitの音かという感じです。
いずれにしても、このDAC基板はお気に入りとなりました。当面メインで使用するつもりです。
「IrBerryDAC」をキーワードにして検索。何度も覗いていたサイトですね。「頒布中の基板一覧」で内容を確認したら、チップハンダ付け代行ということが出来ると分かり、「残り5個」というのに反応し、衝動注文しちゃいました(NewAlixの時と同じだなぁ^^;;;)。まあ、r-piも持っていないので、製作はゴールデンウィーク以降になりそうですが。
皆様
BBBのI2S interfaceを、RasPiからのI2S直接入力とは別スレッドにしてみました。
さて、春爛漫の筍探索日和のもと、arch linuxを試しました。
にしても、筍もだけど、今時分のツワブキ、最高ッス^^;;
arch linuxを新規インストールすると、3.8.13-16 が入ります。
# pacman -Syu で 3.8.13-17 になります。
[root@alarm ~]# uname -a
Linux alarm 3.8.13-17-ARCH #1 SMP Fri Mar 7 16:01:11 MST 2014 armv7l GNU/Linux
mpdは、mpd-0.18.9-dsdをmakeした後で気付いたんですが、デフォルトで 0.18.9-dsd がインストールされます。
[root@alarm ~]# mpd -V
Music Player Daemon 0.18.9-dsd
/usr/bin/mpd が 0.18.9-dsdだったというお粗末。
[root@alarm ~]# systemctl status mpd
mpd.service - Music Player Daemon
Loaded: loaded (/usr/lib/systemd/system/mpd.service; enabled)
Active: active (running) since Sun 2014-03-30 01:42:22 JST; 43min ago
Main PID: 343 (mpd)
CGroup: /system.slice/mpd.service
└─343 /usr/bin/mpd --no-daemon
Boticのdriverは http://bbb.ieero.com/botic_driver_v3.tar.gz" target="_blank">http://bbb.ieero.com/botic_driver_v3.tar.gz です。
この版でも、16/44.1は48kHzにresampleされます。
24/96はそのまま出力され、CPU負荷は16/44.1よりも大幅に軽くなります。
24/176.4はmclkの周波数が合わないのか、dacに192kHz表示が出るもフリーズ。dacは電源を一旦切って入れ直せば回復。
24/192は48kHz系列だからか、良好に再生。
DXD:24/352.8はait dacが対応せず、192kHzの表示が明滅し、dacフリーズ。
384kHzは音源が無く、未検証。
主たるテスト音源は http://www.2l.no/hires/" target="_blank">http://www.2l.no/hires/
24/192再生中
Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie
%Cpu(s): 6.7 us, 4.0 sy, 0.0 ni, 87.9 id, 0.0 wa, 0.0 hi, 1.3 si, 0.0 st
KiB Mem: 507636 total, 503208 used, 4428 free, 2124 buffers
KiB Swap: 0 total, 0 used, 0 free. 473048 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
343 mpd 20 0 90400 12988 5316 S 9.0 2.6 15:51.74 mpd
179 root 20 0 0 0 0 S 2.7 0.0 2:40.42 cifsd
15 root 20 0 0 0 0 S 0.3 0.0 0:10.21 kworker/0:1
1 root 20 0 4220 2680 1808 S 0.0 0.5 0:02.08 systemd
24/96再生中
Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 4.1 sy, 0.0 ni, 91.4 id, 2.7 wa, 0.0 hi, 1.0 si, 0.0 st
KiB Mem: 507636 total, 441324 used, 66312 free, 2232 buffers
KiB Swap: 0 total, 0 used, 0 free. 411112 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
179 root 20 0 0 0 0 S 3.6 0.0 0:53.16 cifsd
343 mpd 20 0 90400 12864 5232 S 2.3 2.5 4:28.96 mpd
15 root 20 0 0 0 0 S 0.3 0.0 0:03.27 kworker/0:1
357 root 20 0 4976 1248 984 R 0.3 0.2 0:00.07 top
1 root 20 0 4220 2688 1816 S 0.0 0.5 0:01.74 systemd
16/44.1再生中
Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie
%Cpu(s): 31.5 us, 3.0 sy, 0.0 ni, 63.2 id, 0.0 wa, 0.0 hi, 2.3 si, 0.0 st
KiB Mem: 507636 total, 485128 used, 22508 free, 2248 buffers
KiB Swap: 0 total, 0 used, 0 free. 454788 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
343 mpd 20 0 90400 12864 5232 S 33.4 2.5 4:38.11 mpd
179 root 20 0 0 0 0 S 2.3 0.0 0:54.66 cifsd
15 root 20 0 0 0 0 S 0.3 0.0 0:03.36 kworker/0:1
139 root 20 0 1728 520 456 S 0.3 0.1 0:00.39 ifplugd
359 root 20 0 4976 1248 984 R 0.3 0.2 0:00.03 top
1 root 20 0 4220 2688 1816 S 0.0 0.5 0:01.74 systemd
この版では、24/96が特にマッチしており、素晴らしい。
capeからのi2s配線長を15cmから7.5cmに短縮しましたが、気持ち、音は改善される気が・・・
BBBと配線をアルミでシールドしてみようかと思っています。
384kHz対応版とRT kernelの公開をドライバ作者のmieroさんが予定している気配に、期待大。
http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-45.html#post3871359" target="_blank">http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-45.html#post3871359
今から、贅沢者の猪君が掘りかけながらイマイチなので放棄した筍の探索に出かけます。トリュフ探索豚と筍探索猪って、どこか似てますね。
capeの部品リストです。
シリアルケーブルを併用するには高さが必要ですので、ケープ側にハンダ付けしたピンソケットとBBBのソケットとの間にピンヘッダを挟むなどの工夫が必要です。ピンは必要な場所だけでよいと思います。
univ. cape 1 ¥300 ¥300 秋月 http://akizukidenshi.com/catalog/g/gP-07190/" target="_blank">http://akizukidenshi.com/catalog/g/gP-07190/
ピンヘッダ 1 ¥40 ¥40 1x40p 秋月 http://akizukidenshi.com/catalog/g/gC-00167/" target="_blank">http://akizukidenshi.com/catalog/g/gC-00167/
ピンソケット 1 ¥80 ¥80 1x40p 秋月 http://akizukidenshi.com/catalog/g/gC-05779/" target="_blank">http://akizukidenshi.com/catalog/g/gC-05779/
丸ピンICソケット 1 ¥100 ¥100 1x40p 秋月 http://akizukidenshi.com/catalog/g/gP-01591/" target="_blank">http://akizukidenshi.com/catalog/g/gP-01591/
セラミックコン 22pF 1 ¥100 ¥100 20個入り 秋月 http://akizukidenshi.com/catalog/g/gP-03620/" target="_blank">http://akizukidenshi.com/catalog/g/gP-03620/
抵抗 10k 1 ¥100 ¥100 100本セット 秋月 http://akizukidenshi.com/catalog/g/gR-25103/" target="_blank">http://akizukidenshi.com/catalog/g/gR-25103/
耐熱22G配線材 1 ¥300 ¥300 2mx7色 秋月 http://akizukidenshi.com/catalog/g/gP-06755/" target="_blank">http://akizukidenshi.com/catalog/g/gP-06755/
3.3V電源 2 ¥1,200 ¥2,400 秋月 http://akizukidenshi.com/catalog/g/gK-06194/" target="_blank">http://akizukidenshi.com/catalog/g/gK-06194/
逓倍クロック基板 1 ¥2,900 ¥2,900 お気楽オーディオキット http://easyaudiokit.hobby-web.net/bekkan/distr/distr.html" target="_blank">http://easyaudiokit.hobby-web.net/bekkan/distr/distr.html
アイソレータ基板 1 ¥1,200 ¥1,200 お気楽オーディオキット
ADuM1100BR 4 ¥350 ¥1,400 お気楽オーディオキット
合計 ¥8,920
結構安価で出来るんですね。
私は、I2Sを受けられるうDACを持ってないですし、何よりraspiにピンヘッダ立てるだけでドキドキするので無理そうです^^;
> 今から、贅沢者の猪君が掘りかけながらイマイチなので放棄した筍の探索に出かけます。トリュフ探索豚と筍探索猪って、どこか似てますね。
ここ位しかコメントのしようがないのですが(^^;;;、同感です。
興味深く拝見しています。僕はパスですが、内容には興味があるので、続報楽しみにしています。
>パス
capeはそのうちTwisted Pear Audioから発売されるでしょうから、それからのお楽しみですね。
音は、twlさんがおっしゃる通り、次元が違うほど変わります。現状のi2s driverや自作capeがまだ不完全であっても、usb-ddcには戻る気が起きないほどの大きな差です。
現在、ドライバはV4になっていますが、挙動はV3とあまり変化していません。ChangeLogの記載では、V4から3.13.6に対応したようです。テストはできませんが384kHzにも対応したかもです。
sourceファイルのdavinci-botic.c の末尾の記載も、下記のようになっています。このドライバは、Twisted Pear Audio BBB I2S Transport Cape driverとして開発されており、ライセンスはGPLなので我々の利用も可能になっているということのようです。
MODULE_AUTHOR("Miroslav Rudisin");
MODULE_DESCRIPTION("Twisted Pear Audio BBB I2S Transport Cape driver");
MODULE_LICENSE("GPL");
>RT kernelの公開をドライバ作者のmieroさんが予定している気配に、期待大
capeのサポートってどの程度のものが必要なんでしょうか?
3.8みたいにフルサポートが必要 or 3.12くらいのサポートで良いのでしょうか?
どんなものになるのか、想像もできていませんが、ドライバもRT向けに改変するという意図かもしれません。
今のところ、ドライバはソースも公開されてはいますが、基本、コンパイルされた状態で配布されていますので、3.13.6でテストしたってことは、3.8.17以降3.13.6まで、そのまま使えるのかも?
>3.8みたいにフルサポートが必要 or 3.12くらいのサポートで良いのでしょうか?
ご質問の意味が理解できていませんが、何か作っていただけるならば、音が出るかテストしてみることは可能です。
是非よろしく^^;
dsd対応ってどうなっているのですかね。
diyAudioのスレッドでは話題になっているけど、本格的な議論はまだなようなので。
綺麗に対応するには、mpdやalsa-player側の修正が必要だと思うのですが。
>音が出るかテストしてみることは可能です
お言葉に甘えて、テストお願いします。
https://drive.google.com/file/d/0BxnbJHx0_xurODV5QXBmQlBBam8/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurODV5QXBmQlBBam8/edit?usp=sharing
以下の手順で作った3.12.13.rt21です。
何をサポートすればいいのか分からないので、ほぼNelsonさんのconfigをそのまま使って、rtパッチを当てたあと、./tools/rebuild.shにて作成しました。
configの変更点は以下のとおりです。
・full RT
・CMA
・Native language supportでUTF8をビルトイン
中身を拝見しましたが、以下のmoduleが含まれていないので、このお試し版は使えないですね。
snd_davinci_botic
snd_codec_es9018
私は3.12(rtカーネルを含め)と3.13で上記のmoduleはコンパイルでき、insmodでも認識されますが、いざ使おうとすると
/sys/devices/bone_capemgr.*/slots: No such file or directory
というメッセージが出るために現実には使えません。
多分miero氏が書いているようにMcASP patchesが正しくあたっている条件が必要のようです。3.13ではこのpatchは既に組み込まれているようなコメントもありますが、 それでもBoticは認識されないので、実際現行でmiero氏のI2Sドライバーが使えるのはDebianでもArchでも3.8.13のカーネルに限られるようです。
多分BBBで実際にI2S接続の環境を作らないと目的にあったカーネルを作るのはtinkerさんでも無理な状況です。私は現状のカーネルで何も問題はないのでcapeができるまでゆっくり待っています。
ちょっと舌足らずでしたね。
「何をサポートすればいいのか分からない」と言うのは、kernelレベルでということです。
driverが必要なことは分かっていますが、syuさんはすでにお持ちなので同包しませんでした。
capeのサポートは
3.8 > 3.12 > 3.13 > 3.14(3.14はサポートされていないと思う) なので、3.13.6で動いているのであれば、3.12でも動くはずだと思い、確認をお願いした次第です。
新たにkernel作って確認してと言うのも何なので、kernelだけはこちらで用意しました。
>McASP patchesが正しくあたっている条件が必要
linux-dev/patches/を見ると、3.13は微妙ですが3.12は当たってるようですね。
> capeのサポートは
> 3.8 > 3.12 > 3.13 > 3.14(3.14はサポートされていないと思う)
> なので、3.13.6で動いているのであれば、3.12でも動くはずだと思い、
> 確認をお願いした次第です。
ちょっとここに誤解があるようです。現在公開されているI2Sドライバーが3.13.6で動いているという報告はありません。件のフォーラムでは開発者のmiero氏の現在の開発環境でのカーネルが3.13.6になっているということであり、公開済みのドライバーがその環境で動作しているという報告はありません。実際にフォーラムでの流れを把握されればご了解いただけると思います。
tinkerさんのcapeサポートが上記のご指摘通りになるかどうか、アップされたお試し版のカーネルおよびrootfsとしてruneaudioを使い、3.8.13-17-ARCH対応のドライバーを入れてチェックしてみました。以下のその一部です。
[root@runeaudio ~]# uname -a
Linux runeaudio 3.12.13-rt21-bone12 #1 SMP PREEMPT RT Tue Apr 1 20:45:29 JST 2014 armv7l GNU/Linux
最初にドライバーの出自を確認、
[root@runeaudio sound]# modinfo snd-codec-es9018.ko
filename: /lib/modules/3.12.13-rt21-bone12/kernel/sound/snd-codec-es9018.ko
license: GPL
author: Miroslav Rudisin
description: ES9018 codec driver
srcversion: 52F8EAC30BB6C9C2BCACF15
alias: of:N*T*Cess,es9018*
depends:
vermagic: 3.8.13-17-ARCH SMP mod_unload modversions ARMv7 p2v8
これを動作中の3.12.13-rt21-bone12カーネルのもとでinsmodしてみますが、
[root@runeaudio sound]# insmod snd-codec-es9018.ko
insmod: ERROR: could not insert module snd-codec-es9018.ko: Invalid module format
といった具合で認識されません。それではと、同じ 3.12.13-rt21環境で以前私が作ったsnd-codec-es9018.koについてinsmodしてみました。
modinfo snd-codec-es9018.ko
filename: /lib/modules/3.12.13-rt21-bone12/kernel/sound/snd-codec-es9018.ko
license: GPL
author: Miroslav Rudisin
description: ES9018 codec driver
srcversion: 52F8EAC30BB6C9C2BCACF15
alias: of:N*T*Cess,es9018*
depends:
vermagic: 3.12.13-rt21_BBB_0320_RT-bone12 SMP preempt mod_unload modversions ARMv7 thumb2 p2v8
結果は同じく、
[root@runeaudio sound]# insmod snd-codec-es9018.ko
insmod: ERROR: could not insert module snd-codec-es9018.ko: Invalid module format
と、認識されません。でも自作の 3.12.13-rt21_BBB_0320_RT-bone12のカーネル環境ではこの自作ドライバーは
[root@runeaudio ~]# uname -a
Linux runeaudio 3.12.13-rt21_BBB_0320_RT-bone12 #7 SMP PREEMPT RT Fri Mar 21 09:07:31 JST 2014 armv7l GNU/Linux
[root@runeaudio sound]# lsmod
Module Size Used by
snd_davinci_botic 4193 0
snd_codec_es9018 2798 0
すんなりと認識されます。
ここから言えることはドライバー開発者のmiero氏も書いているように、3.8.13以外についてのI2S dirver moduleについては自力compileする必要があるということで、残念ながらtinkerさんのお示しになられたようなわけにはいかないのが現状です。
でも、上記のように3.8.13以外のカーネルでI2S driver moduleが認識されたとしても、背景にdts (dtb) overlayによる設定が仕組まれているためか(私には詳細が分かりませんが)、これを反映させようと、miero氏の指示のごとく
echo BB-BONE-BOTIC1 > /sys/devices/bone_capemgr.*/slots
とやってドライバーを指定しようとしても
/sys/devices/bone_capemgr.*/slots: No such file or directory
というエラーで認識されないというのが現状です。
というわけで、
> McASP patchesが正しくあたっている条件が必要
> linux-dev/patches/を見ると、3.13は微妙ですが3.12は当たってるようですね。
これについても私は確信できません。この点では現在I2Sドライバーを使う際に一番信用できるのは3.8.13カーネルということになりそうですね。長文、失礼しました。
twl
詳しい解説ありがとうございます。
>一番信用できるのは3.8.13カーネルということになりそうですね
Nelsonさんのところに、Checkout v3.8.x branch (full cape support):って書いてありますよね。
4241に書いたように、full cape supportとその他の違いが知りたいんですよね。
> 4241に書いたように、full cape supportとその他の違いが知りたいんですよね。
Yo さん
> 要するに実行環境で自力でビルドすればOKということではないのですか。
そうなんです。お二人のご指摘の通りなのですが、この自力ビルドとfull cape supportが直接には結びつかないようなので悩んでおります。
今回のmiero氏のI2S driverが機能するにはdevice tree overlayの利用が前提になっています。以前yoさんがお示しになったように3.8カーネル以降ではdevice treeの概念が導入されていますが、これらのblobはboot時に指定される必要があり、そのためにdtbsフォルダーがzImageとともに用意される必要があると認識しています。
BBBのようなcapeサポートのある装置だと、cape装着とかGPIOのヘッダーピンへのジャンパーケーブル接続による初期化などの際には、いちいちBBBを再起動しなくとも装着されたハードウェアを自動認識できるような機能があれば便利な訳ですが、上記のdevice tree overlayの概念がこれを可能にしているものと解釈しています。
今回のmiero氏のドライバーではdevice tree overlayを利用したドライバーのローディングはとりあえずboot毎に行う必要があるのですが、3.8.13以外の環境ではmodule自体はビルドできても、overlayを利用したこのローディングがうまくいかないというか、少なくとも私の環境ではそんな具合なのです。
フォーラムではドライバーの指定にdevice tree overlayを利用することに疑問のコメントもあり、これから先もES9018を対象としたI2Sドライバーの内容や動作環境は変化する可能性も考えられますが、ま、そんな訳で私は現在様子見の状態を続けております。
逆に言いますと、tinkerさん、BBBのcapeも出来上がっていない今こそ、来るべく日を待ち構えながらハンダ付けの練習をされる絶好の期間かもしれません。安い2.54mmピッチの基板とそれにあったピンヘッダーを用意して、コツコツとハンダ付けを練習すれば、I2S友の会を主催できるようになられるのではと思いますが、いかがでしょうか。(^^;
3.8.13、できれば3.8.13-17(-ARCH)のバージョンでrtカーネルというのは可能でしょうか。
.configに関してはruneaudioでpacman -Syuすると3.8.13-17になりますので、そのconfig.gzをそのまま使うということでいけそうですが。
すみません、勝手なお願いで。
twl
>I2S友の会
ハンダはまじめに練習したいと思います。
I2S友の会は、やっぱりtwlさんとsyuさんにやって頂くしかないですね。
>3.8.13、できれば3.8.13-17(-ARCH)のバージョンでrtカーネルというのは可能でしょうか。
今、Archが動いるのがないんですm(__)m
odroidで全然動かないので、イラッときて抹殺しました。
3.8のrtカーネルは難しいです。
以前、lightmpdのページを眺めていたら、3.8.13+rt14というのを使われてるみたいなので興味本位でやってみたのですが、大きな修正が1つあって諦めてます。
お役にたてなくて申し訳ありません。
只今ちょっと多忙で、ついて行けなくなってますが・・・
>ちょっとここに誤解があるようです。現在公開されているI2Sドライバーが3.13.6で動いているという報告はありません。件のフォーラムでは開発者のmiero氏の現在の開発環境でのカーネルが3.13.6になっているということであり、公開済みのドライバーがその環境で動作しているという報告はありません。
これは、わたしがNo.4240に、こう書いたからですが、
>ChangeLogの記載では、V4から3.13.6に対応したようです。
v4のChangeLogに
----- botic driver/ChangeLog -----------
(V4) Sun Mar 30 19:34:29 CEST 2014
- release GPIOs if probe fails
- add DTS+DTB for static configuration
- tested with 3.13.6
(V3) Sat Mar 15 09:14:09 CET 2014
- added modules for Arch Linux ARM 3.8.13-17-ARCH
(V2) Thu Mar 13 23:56:12 CET 2014
- added modules for BeagleBoardDebian 3.8.13-bone41
------
と記載があった点だけが根拠です。やはり3.8.13-17以外ではだめなんでしょうね。ぼちぼち試してみますです。
ところで、今使用中のcapeにはアイソレータ積んだり色々やってますが、実は、ait dacのi2s入力にはアイソレータが入れてあるそうで、cape側に入れる必要は低そうです。むしろジッタが増えてるかも。
それなら逓倍クロック基板だけ積んでmclkを生成するだけで良さそうですので、他を省略した簡易版capeを現在作成中です。
試聴をしたらどちらかが用済みになりますので、それにHiFiBerry Digiが使えるピンヘッダとソケットを付ければ、tinkerさんの環境で使える動作テスト用capeができるかも・・・などと皮算用中です。
逓倍クロック基板を使用するcapeはここまでにし、次はcape上に22.5792/24.576MHz水晶発振moduleを積んでbbbからの信号で周波数を切り替えるTwisted Pear Audio方式をやってみたいと調査中です。
P9-24の出力でP9-25に入れる信号の周波数を切り替えるのですが、この周波数ならait dacが要求するmclkとしても使えます。P9-24の信号が単なるH/Lなのか、だとして、22.5792/24.576MHzのどちらがHなのか、など不明ですが、やってみればわかりますかね。
わたしは発見できませんでしたが、twlさん、フォーラムでそのような話(P9-24の信号)は出ていませんでしたでしょうか。
わたしの場合、arch linuxはArch Linux ARMにあったものをそのままです。
http://archlinuxarm.org/platforms/armv7/ti/beaglebone-black" target="_blank">http://archlinuxarm.org/platforms/armv7/ti/beaglebone-black
# pacman -Syu
で3.8.13-17(ARCH)になります。
http://bbb.ieero.com/" target="_blank">http://bbb.ieero.com/
の指定に従って、uEnv.txtを書き換えてHDMIをdisableし、
http://bbb.ieero.com/botic_driver_v4.tar.gz" target="_blank">http://bbb.ieero.com/botic_driver_v4.tar.gz
のfarmwareをbbbの/lib/firmware/にmodulesを/lib/modules/にコピーしました。
# depmod -a
とやって、modulesの依存関係をアップデート、
# echo BB-BONE-BOTIC1 > /sys/devices/bone_capemgr.*/slots
で、ドライバをロード。
これだけで音が出てますので、これ以外のサポートは必要なさそうなんですけどね。
もちろん
# echo BB-BONE-BOTIC1 > /sys/devices/bone_capemgr.*/slots
は、1回だけで、2回やるとエラーになりました。
> わたしは発見できませんでしたが、twlさん、フォーラムで
> そのような話(P9-24の信号)は出ていませんでしたでしょうか。
Capeの電源をどこからとるかといった話題はありますが、外部クロックのスイッチの詳細まで煮詰めた話題は出ていないと思います。
Miero氏のBOTIC3では単にP24が切替スイッチになるとしか記述されていないので、LでもHでもどちらでもいいんじゃないかと思われますが。後はempiricalにお決めになるしかなさそうですね。いずれcapeの実装が決まればより具体的な指示が得られるではないでしょうか。
http://bbb.ieero.com/files/f01/ctl_gpio1_27.sh" target="_blank">http://bbb.ieero.com/files/f01/ctl_gpio1_27.sh
ここを読んでみたら、
ctl_gpio1_27.sh on
で、P9-24の出力は'H'でした。詳細な動きは実験的に確かめるしかなさそうですね。
Twisted Pear Audioからbbb-I2S-capeが発売されればそれも試してみますが、わたしの興味はbbbがP9-25入力信号に対してslave動作可能らしい点です。最終的にdacのmclkをmasterとしてbbbをslave動作させたいと狙っています。発売される予定のbbb-I2S-capeに外部クロック入力端子が付いてることを期待していますが、なければ自作しようかと思っているわけです。
> ctl_gpio1_27.sh on
>
> で、P9-24の出力は'H'でした。詳細な動きは実験的に確かめるしかなさそうですね。
echo high, echo lowなどの記述がこのHやLに相当するのでしょうか。
ちょっと気になるのですが、この部分はAngstromでの動作環境に関する記述で、しかも、その冒頭に'obsolete'とあるので、ArchやDebianの環境でも通用するのでしょうかね。
> 最終的にdacのmclkをmasterとしてbbbをslave動作させたいと狙っています。
> 発売される予定のbbb-I2S-capeに外 部クロック入力端子が付いてることを期待
> していますが、なければ自作しようかと思っているわけです。
TPAのBBB用capeにはMCLKを必要とするようなsynchronous typeのDACへの接続を考慮して48および44.1系の二種類のクロックが搭載されるようですが、外部クロック入力のオプションは現在のところないようです。
外部入力のクロックを使う場合には、搭載予定のオシレータへの電力供給を断ち、その出力先へ自前のクロック出力をつなげればいいのかなとは思いますが、masterであるDACからのMCLKでslaveにされたBBBからのI2S出力を受ける、もともとのDACはこの場合どういう立場になるのでしょうか。Slaveでもありmasterでもあるような、うーん、なんか無限循環するようなニワタマ モードですね。(^^; よく理解しないで書いているかもしれないので、お許し下さい。
twl
>3-8-13以外はarch linuxでしか動作しないと書いていたような記憶があります
何故なんでしょうね。
ArchのPKGBUILDを見ても、aufsのパッチを当ててるくらいの違いしかないんですけどね。
https://github.com/archlinuxarm/PKGBUILDs/blob/master/core/linux-am33x/PKGBUILD" target="_blank">https://github.com/archlinuxarm/PKGBUILDs/blob/master/core/linux-am33x/PKGBUILD
> P9-24の出力でP9-25に入れる信号の周波数を切り替えるのですが、
と書かれている件について、Miero氏のファイル(http://bbb.ieero.com/" target="_blank">http://bbb.ieero.com/)を眺めてみました。そこで気付いたことなのですが、
McASP pinのmappingとして、
P9_25 - A14/0 - mcasp0_ahclkx (oscillator) - GPIO3_21
P9_31 - A13/0 - mcaps0_aclkx (bit clock) - SPI1_SCLK
P9_29 - B13/0 - mcasp0_fsx (lr clock) - SPI1_D0
P9_28 - C12/2 - mcasp0_axr2 (data1) – SPI1_CS0
とあります。28, 29, 31ピンの機能については周知のことですが、P9_25は oscillatorとあります。なんだ、これはMCLKの出力ピンではないか、どうして今まで気付かなかったのかと、早速、それまでRasPiからのI2S入力に使っていたTPA自作キットのOpus DAC (WM8741, dual mono構成)にBBBをI2S接続、上記のP9_25のピンとDAC側のMCLK受けとをつないでみましたら、あっけなくノイズなしのI2S再生が得られ、自分の調査不足を反省するとともに、その再生音の品位の高さに改めて感激してしまいました。
#なお、再生にはruneaudio (3.8.13-17-ARCH)、mpd-0.18.9を用いました。
というのは、それまでBBBのI2S接続先に用いていたTPAのBuffalo IIISEでは44.1/16のファイル再生についてはALSA上で48/32へのresamplingが常に行われているため(おそらくdmixがresamplingしているのだろうと思うのですが)、時々信号のdropoutが生じ、基本的な再生音がいいだけに、聴く楽しみがそこでそがれてしまうのが難点でした。
以前にも述べましたが、上記のOpus DACは48kHz系のオシレーターしか積んでいないslave型なのですが、このP9_25ピンからのMCLK入力を使うと、BBBからALSA経由で送られる信号との相性が非常によく、上記の再生音のdropoutは完璧に消失、それまでのRasPiによるI2S直結よりも、空間的な広がりや奥行き、楽音の分解能などに改善傾向が見られ(プラシーボかも (^^; )、BBBの潜在的な性能の良さを再認識しました。
syuさんは既にこの接続を試されているのかもしれませんが、BBB用のcapeが使える時期までは、この環境でのI2S接続をしばらく楽しむことにします。
twlでした。
>syuさんは既にこの接続を試されているのかもしれませんが
それがまだなんですよね。twlさんの実験でP9-25ピンの信号品質がmclkとして悪くないことが判明して良かった。
これで、yoさんのようにBBBとait dacがある場合、オスメスのジャンパワイヤを6本用意するだけでBOTIC1のお試しが可能になります。
まだDSDは実装されていませんので、GNDと3.3vを間違えなければ、あとは順につなぐだけでait dacが自動判定してくれます。
ait dacのI2S受け端子の信号の並びはNo.4227に書きましたが、下記のようになっています。48kHz系列のPCMだけ試すので、ピン2-5は適当でも良く、DSDの場合でもピン6は接続する必要はありません。
P9-3,4:pin 1 3.3v
P9-31 :pin 2 BCK (DSDCLK)
P9-29 :pin 3 LRCK(DSD L)
P9-28 :pin 4 DATA(DSD R)
P9-25 :pin 5 MCLK(24.576MHz)
open :pin 6 DSD ON/OFF
P9-1,2:pin 7 GND
P9-25は、BOTIC1では24.576MHz出力、BOTIC2では48kHz系列用には24.576MHz出力で44.1kHz系列用には22.5792MHz入力、BOTIC3では22.5792/24.576MHz共に入力の端子として切り替える仕組みのようですね。
tinkerさんの場合も両端オスのジャンパワイアでHiFiBerry Digiの端子と適切に接続すれば、spdif経由ではありますが、ハンダ付けなしでBBBのI2S出力動作を試すことが可能かも知れません。
ジャンパワイア6本だけでbbbとait dacを接続してみました。間違えないように、pin45から33まではテープでフタをしました。
16/44.1(16/48にresample)、24/96、24/192まで音が出ています。別電源とアイソレーターを搭載しクロック基板で98.304MHzのmclkを生成したcapeの場合よりも、いくらかクリアさが低下しますが、同系統の良い音です。
ait dac筐体内でのジャンパワイア接続状態。
http://mimizukobo.sakura.ne.jp/upload/bbb-ait-i2s-140406.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/bbb-ait-i2s-140406.jpg
http://mimizukobo.sakura.ne.jp/upload/p9_25.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/p9_25.jpg
中央の赤いケーブルが追加したMCLK用のケーブルで、見にくいですが、左側のbreadboard経由で後方のdual monoのOpus DACにつながっています。
さらに調べてみたら、P9_25がMCLKってのは、
http://hifiduino.wordpress.com/2014/03/27/" target="_blank">http://hifiduino.wordpress.com/2014/03/27/
で既に指摘されているのですね。Miero氏のI2Sドライバーの影響の大きさを改めて見直しました。
http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140408.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140408.jpg
HDMI経由だとどうなるか。DAC筐体内設置による直結と、HDMI経由とを比較してみたいと思っています。
すでに皆さんご覧になっていると思いますが、TPAのcapeは部品配置などもほぼ決まりつつあるようですし、ドライバもDSD対応がほぼ達成されたようです。
http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-50.html#post3883178" target="_blank">http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-50.html#post3883178
期待大ですね。
> ジャンパ直結方式でしばらく聴いていましたが、少しうるさくて疲れますね。
> 別電源とアイソレータ付きに戻したら、うるささは大幅に減りました。
そうなんですか。I2S接続により再生音の情報が増えているという印象はあるのですが、もしかしたら、それがうるささの一因かも。おそらくジャンパ直結方式自体には欠点はないだろうと思われますが。
いずれにしても、昨年のBBBがらみのスレッドで、皆さんがあれだけrtカーネルで七転八倒していた3.8カーネルがI2S接続によりあっけなく素直な再生音を出してくれている状況は、私にとっては大変な驚きですが、非常にうれしい驚きでもあります。
まだ特別なものは出来てないのですが、アップロード用フォルダを活用すべく、写真をもう1枚。
http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140411.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140411.jpg
twlさんのマネをしてbbbにピンヘッダを挿し、最短距離でait dacのi2s入力端子と直結しました。配線長は150mmから50mmに短縮。ddcとは次元の違う立派な音が出ています。配線長の短縮で中高域の固有音が少し改善したような気が・・
ちょっと良くなると、欲が出て、アソコをもう少しとか、文句が出るのが、オデオマニアだっちゅうことですね。
この際bbbまわりを徹底的に電磁シールドすると変わるかも。やるとしたら、どうするのが良いのでしょうね。皆さんお知恵をお貨しください。
tinkerさん、なかなかrt kernelのテストまで行き着きません。ちょっとだけ試しましたが、動きませんでした。テストはきちんと出来てないです。
https://github.com/beagleboard/kernel/tree/3.13" target="_blank">https://github.com/beagleboard/kernel/tree/3.13
から3.13.6(rtなし)を作って見ましたが、これも動きませんでした。3.8.13の.configを抽出して使ってみましたが、kernelの入れ替えで失敗という初歩的な段階での躓きです^^;
>ちょっとだけ試しましたが、動きませんでした
twlさんも3.12は動かないって言われてましたね。
3.14-bone0はcapeのpatchが一つも当てられてなかったのですが、bone1で少しだけ3.13.xから移植されてるみたいです。なので3.13で動き(または動くようになれば)3.14への移植が進めば、3.14でRTに出来るかもしれませんね。
bbb i2s capeに水晶発信器を実装してBotic3の音出しに漕ぎつけました。
[root@arch-botic ~]# uname -a
Linux arch-botic 3.8.13-17-ARCH #1 SMP Fri Mar 7 16:01:11 MST 2014 armv7l GNU/Linux
[root@arch-botic ~]# echo BB-BONE-BOTIC3 > /sys/devices/bone_capemgr.*/slots
[root@arch-botic ~]#
http://bbb.ieero.com/" target="_blank">http://bbb.ieero.com/
botic_driver_v4です。
Botic3では、P9-25にmclkを入力し、P9-24の出力で周波数を切り換えます。他の接続はBotic1と同じです。
今回は手軽に調達できる共立エレショップの「PLLクロック独立実験基板」を使いました。
http://eleshop.jp/shop/g/gBC1414/" target="_blank">http://eleshop.jp/shop/g/gBC1414/
ハンダ付け難易度の高い部品はすでに実装されていますので、楽です。
「PLLクロック独立実験基板」のSCOK2端子からmclkを出力します。
SRピン:ショート=H、FS2ピン:開放=Lのとき、FS1=Hで22.5792MHz、FS1=Lで24.576MHzです。
P9-24をFS1に接続しBotic3からの信号で切り替える予定だったのですが、残念ながら、ロジックが逆でした。
P9-24の出力にインバータを入れる必要がありますが、今回は間に合いませんでしたので、FS1にショートピン手動で周波数の切り換えをしています。16/44.1を16/48で早回し再生も可能です。しばらくは、このまま手動切り換えで使うことになるかもです。
ait dac筐体内に仮設した図。
http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140413.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140413.jpg
「PLLクロック独立実験基板」の電源は秋月のTPS7A4700電源キットを使い回しです。その電源はbbbのSYS5Vから取っています。
PLLなので位相雑音がやや多くなります。あまり期待していなかったのですが、音は素晴らしいと思います。Botic1でbbbの内部クロックを使用する場合より改善されます。気になっていた中高域の固有音がほぼ消えました。16/44.1がresampleされないのも効いているはずですが、Botic1でもresampleされない24/96の場合も、Botic3で改善があると思います。
ait dacのi2s入力におけるmclkは、ある程度以上の質なら音に対する影響は少ないのではないかと推定しています。もっと良いクロックを積むべきかどうか・・・コストが急増しそうなのに効果は薄そうで、悩みます。大人しくTPAのcapeを待つ方がマトモなんでしょうけどね。
16/44.1再生中のtop。
Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 507636 total, 275580 used, 232056 free, 6308 buffers
KiB Swap: 0 total, 0 used, 0 free. 241740 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
147 root 20 0 91396 12584 5148 S 0.7 2.5 0:07.61 mpd
367 root 20 0 4976 1256 988 R 0.3 0.2 0:02.21 top
1 root 20 0 4244 2632 1808 S 0.0 0.5 0:01.56 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
resampleを行っていないので、mpdの負荷が低くなっています。
24/176.4も問題なく再生(ときどきロックが外れるがすぐ復帰)
Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.4 us, 4.4 sy, 0.0 ni, 90.4 id, 2.7 wa, 0.0 hi, 1.0 si, 0.0 st
KiB Mem: 507636 total, 503184 used, 4452 free, 2160 buffers
KiB Swap: 0 total, 0 used, 0 free. 472644 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
182 root 20 0 0 0 0 S 3.6 0.0 0:16.20 cifsd
147 root 20 0 91396 12608 5152 S 3.0 2.5 0:20.85 mpd
372 root 20 0 4976 1248 984 R 0.7 0.2 0:00.09 top
15 root 20 0 0 0 0 S 0.3 0.0 0:01.56 kworker/0:1
132 root 20 0 4796 3516 448 S 0.3 0.7 0:02.36 haveged
ショートピンで周波数を切り換えて、24/96を再生。
Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.4 us, 3.1 sy, 0.0 ni, 92.4 id, 2.4 wa, 0.0 hi, 0.7 si, 0.0 st
KiB Mem: 507636 total, 503192 used, 4444 free, 2048 buffers
KiB Swap: 0 total, 0 used, 0 free. 473200 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
147 root 20 0 91396 12608 5152 S 3.0 2.5 1:41.74 mpd
182 root 20 0 0 0 0 S 3.0 0.0 1:40.98 cifsd
15 root 20 0 0 0 0 S 0.3 0.0 0:04.91 kworker/0:1
373 root 20 0 4976 1248 984 R 0.3 0.2 0:00.16 top
1 root 20 0 4244 2628 1804 S 0.0 0.5 0:01.72 systemd
24/192も余裕で再生。
Tasks: 60 total, 2 running, 58 sleeping, 0 stopped, 0 zombie
%Cpu(s): 7.7 us, 3.0 sy, 0.0 ni, 87.7 id, 0.0 wa, 0.0 hi, 1.7 si, 0.0 st
KiB Mem: 507636 total, 503440 used, 4196 free, 2056 buffers
KiB Swap: 0 total, 0 used, 0 free. 473512 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
147 root 20 0 91396 12744 5240 S 9.3 2.5 1:44.29 mpd
182 root 20 0 0 0 0 S 2.3 0.0 1:42.32 cifsd
374 root 20 0 4976 1248 984 R 0.7 0.2 0:00.12 top
132 root 20 0 4796 3516 448 S 0.3 0.7 0:04.52 haveged
1 root 20 0 4244 2628 1804 S 0.0 0.5 0:01.72 systemd
dsdに対応したドライバの公開が待たれます。
> bbb i2s capeに水晶発信器を実装してBotic3の音出しに漕ぎつけました。
おお、素晴らしい。外部クロック入力による44.1系のサポートだけでresamplingによるCPU負荷が大きく減少することがわかりました。私も追試したくなり、秋月でクロック基板を購入しようかと思いましたが、syuさんの記事を参考にしながら、とりあえず手元にあるMutec社のiDという周波数generator/distributorを使ってBotic3を試してみました。
iDで44.1系のMCLK、22.5792MHzを発生させ、これをBNC経由でP9_25に接続、Botic3を試しましたが、すんなりとこの外部クロックが認識され、44.1kHzの音源ファイルが信号のドロップアウトもなく、素直に再生されました。もう、この環境でもいいんじゃないかという極めて満足度の高い再生音です。
http://mimizukobo.sakura.ne.jp/upload/mclk1_twl.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/mclk1_twl.jpg
http://mimizukobo.sakura.ne.jp/upload/mclk2_twl.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/mclk2_twl.jpg
/proc/asound/card0/pcm0p/sub0/hw_paramsで44.1kHzのファイルがresamplingされていないことを確認、
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 1024
buffer_size: 16384
topでmpd負荷が大幅に減少していることも確認しました。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2281 mpd 20 0 72780 9180 2604 S 2.3 1.8 1:23.50 mpd
2314 mpd 20 0 72780 9180 2604 S 0.7 1.8 0:09.22 mpd
2534 root 20 0 0 0 0 S 0.7 0.0 0:10.12 cifsd
3535 root 20 0 2656 1144 808 R 0.7 0.2 0:00.38 top
ま、あくまでも実験ですので、図体の大きいiDは上記の実験後、速やかに退場させようと考えています。あくまでもTPAのcape待ちですね、と冷静に書いているふりをしていますが、この、外部クロック入力-Botic3-I2S/BBB-ES9018の組み合わせでの再生音は本当に気に入ってしまいました。
twl
MCLK生成に使用したiDを片付けた後、要するにMCLKを外部出力として取り出せれば、どんなものでもBotic3の環境で使用できるのではと思いつきました。
I2S接続環境が充実するとともに、最近はめっきり出番の少なくなったAmanero Combo384が手元にころがっておりましたが、このDDCには48系と44.1系の優秀なクロックが搭載されており、それぞれMCLKのヘッダーピンから取り出すことができます。
こいつを使わない手はないと考え、ヘッダーのMCLKピンをBBBのP9_25に接続、Botic3の環境でmpdを起動したところ、iDでの実験同様、非常に澄んだPCM再生音が流れてきました。
http://mimizukobo.sakura.ne.jp/upload/amanero_as_MCLK.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/amanero_as_MCLK.jpg
AmaneroのいいところはP9_24のuart1_txdを切り替えスイッチとして使用しなくとも、フォーマットに応じて自動的に44.1系と48系のいずれかにMCLKが対応できることのようです。
試しに2Lからの96kHzのファイルと普段聴いている44.1系のファイルを連続して再生してみましたが、/proc/asound/card2/pcm0p/sub0/hw_paramsでは、その再生時の時系列に応じて
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 96000 (96000/1)
period_size: 1024
buffer_size: 16384
および
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 1024
buffer_size: 16384
と、何もしなくともサンプリング周波数が48系から44.1系に変わっており、これは便利です。改めて、Botic3に関するヒントを下さったsyuさんに感謝申し上げます。
補足ですがDSD再生のためのDDCが必要なので、画像にお示ししたように、こいつもUSBでBBBと接続、適時切り替えながら使用することにしました。
root@volumio:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Amanero [Combo384 Amanero], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: X20 [XMOS USB Audio 2.0], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Botic [TPA Botic], device 0: ES9018 es9018-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
Amaneroを大事に使ってあげられる状況が生まれ、ちょっとうれしいtwlでした。
>Amaneroを大事に使ってあげられる状況が生まれ、ちょっとうれしい
おお・・・
実はわたしも数日前、これ使えないかな、って思いながらamaneroをじっと見つめたんですが、使い方を思いつかず、諦めてました。
amaneroからmclkとGNDだけをbbbに接続しているように見えますが、USB経由でもamaneroに信号を送って周波数の選択をさせているのですか。それとも、USB接続は必須ではないのですか?
はい。MCLKとGNDのみの結線ですが、USB接続は単に5Vの電源供給のためだけで、多分必須ではないと思います。
現在までAmaneroからのMCLKで聴いていますが、快適の一語につきます。おすすめです。
私もamaneroのmclkを導入してみました。amaneroの電源はUSBバッテリー電源からです。
Botic3でamaneroのmclkの方がPLLクロック基板よりも音はずっと良いですね。twlさんのアイディアを試してみて、mclkの質で音はまだ良くなる余地があることが実感できました。ありがとうございました。
ただし私の環境では、mclkだけの接続では周波数の自動切換は無理みたいです。
24/96に変更しても良い音ですが、dacの表示は88kHz。24/192だと表示は176kHz。96kHzや192kHzのファイルを88kHzや176kHzで演奏しているので、ピッチが低下し、テンポも遅くなります。
この時の/proc/asound/card0/pcm0p/sub0/hw_params
[root@arch-botic ~]# cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 96000 (96000/1)
period_size: 1024
buffer_size: 16384
[root@arch-botic ~]# cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 192000 (192000/1)
period_size: 1024
buffer_size: 16384
16/44.1で楽しむには十分過ぎる極めて良好な音質です。同じことが、I2SoverUSBやUDAでも可能かもしれません。
>快適の一語につきます。おすすめです。
全面的に同意ですね。皆さんにもおすすめ。私のような老人にとっては、TPAのcapeを待つ時間が惜しいのです ^^;;;
http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140414.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140414.jpg
ait dacのアイソレータの電源として3.3v安定化電源を残しています。PLLクロック基板はピンソケットで接続されていましたので取り外し、amaneroのmclkから直接P9-25とi2s端子のmclkに接続しています。
そこで、もっと良好な特性のmclkを得ようと、某「高級」クロック基板を借用しました。
http://www.newclassd.com/index.php?page=24&hv=1" target="_blank">http://www.newclassd.com/index.php?page=24&hv=1
これで結果に大差がつけば嫌だなあ・・・
ご覧のようにケーブル類は長いままで仮配線しました。電源はfidelixの15v。
http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140417.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140417.jpg
結果、残念ながら^^;; このクロックは抜群でした。わずかに気になっていたギラツキがほぼ解消してしまいます。さらに低域もより正確に。
予定されているTPAのBOTIC Audio capeのクロックはcrystekのCCHD-957だそうですが、amaneroのクロックよりもノイズが少ないのかな。
[参考] TPAのBOTIC Audio Capeの部品配置予定図
http://www.diyaudio.com/forums/attachments/twisted-pear/410935d1396828859-building-open-embedded-audio-applicance-cape.jpg" target="_blank">http://www.diyaudio.com/forums/attachments/twisted-pear/410935d1396828859-building-open-embedded-audio-applicance-cape.jpg
http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-50.html#post3883178" target="_blank">http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-50.html#post3883178
予定されているクロックは
http://www.crystek.com/crystal/spec-sheets/clock/CCHD-957.pdf" target="_blank">http://www.crystek.com/crystal/spec-sheets/clock/CCHD-957.pdf
特性的には抜群のようですね。
http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-52.html#post3883826" target="_blank">http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-52.html#post3883826
> 3.14-bone0はcapeのpatchが一つも当てられてなかったのですが、bone1で少しだけ3.13.xから移植されてるみたいです。なので3.13で動き(または動くようになれば)3.14への移植が進めば、3.14でRTに出来るかもしれませんね。
Nelsonさんが3.14のrt化を簡単にできるように設定してくれました。
https://github.com/RobertCNelson/linux-dev/commit/bd69ecb7570865a29dd24fd779fa8568ffa39e5d" target="_blank">https://github.com/RobertCNelson/linux-dev/commit/bd69ecb7570865a29dd24fd779fa8568ffa39e5d
上記を参考にlinux-dev-am33x-v3.14内のpatch.shを編集、#rtの行をコメントアウトした後に./build_kernel.shとしたら、以下のrtカーネルができました。
root@volumio:~# uname -a
Linux volumio 3.14.1-rt1-bone2 #1 SMP PREEMPT RT Sat Apr 19 01:00:55 JST 2014 armv7l GNU/Linux
早速、これに合わせてMiero氏のbotic driver moduleをコンパイル、インストールを試みました。何故かinsmodでは認識されず、modprobe -fで強制的にインストール、lsmodでは以下のような具合で表示されました。
root@volumio:~# lsmod
Module Size Used by
nfsd 241405 2
snd_codec_es9018 2872 0
snd_davinci_botic 4842 0
snd_soc_core 158002 2 snd_davinci_botic,snd_codec_es9018
snd_compress 7777 1 snd_soc_core
snd_usb_audio 113187 0
snd_hwdep 5809 1 snd_usb_audio
これで3.14-rtでのI2Sドライバーが動くかなと思いましたが、
/sys/devices/bone_capemgr.*/slots: No such file or directory
とのエラーが表示され、I2Sの環境は得られませんでした。
modinfoでは
root@volumio:/lib/modules/3.14.1-rt1-bone2/kernel/sound# modinfo snd-codec-es9018.ko
filename: /lib/modules/3.14.1-rt1-bone2/kernel/sound/snd-codec-es9018.ko
license: GPL
author: Miroslav Rudisin
description: ES9018 codec driver
alias: of:N*T*Cess,es9018*
depends: snd-soc-core
vermagic: 3.14.1-rt1-bone2 SMP preempt mod_unload modversions ARMv7 p2v8
とあり、私が真面目にdriver moduleを作ったという証拠はあるのですが (^^; capeまわりのpatchはまだ完成していないのかもしれません。ボチボチいくしかないbotic driverという、ひんしゅくを買うこと間違いなしの駄洒落で報告を終わります。
先ほど、ご機嫌に歌ってくれているbbb/arch linux-3.8.13-17/botic3を、覚悟の上で、pacman -Syuしてみました。
3.8.13ー20になります。これで動くのかどうか。
[root@arch-botic ~]# pacman -Syu
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
alarm is up to date
aur is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for inter-conflicts...
Packages (37): bash-4.3.008-2 ca-certificates-20140325-1 coreutils-8.22-4
device-mapper-2.02.106-1 ffmpeg-1:2.2.1-1 file-5.18-1
git-1.9.2-1 glib2-2.40.0-1 gnutls-3.3.0-1 haveged-1.9.1-1
iproute2-3.14.0-1 kmod-17-1 libdrm-2.4.53-1
libjpeg-turbo-1.3.1-1 libsystemd-212-3 libutil-linux-2.24.1-6
libwbclient-4.1.7-1 linux-am33x-headers-3.14.0-3
linux-am33x-legacy-3.8.13-20 logrotate-3.8.7-3 lvm2-2.02.106-1
man-db-2.6.7.1-1 man-pages-3.64-1 mesa-10.1.0-5
mesa-libgl-10.1.0-5 mpd-0.18.10-1 openssl-1.0.1.g-1
pacman-mirrorlist-20140406-1 pcre-8.35-1 readline-6.3.003-2
s-nail-14.6.4-1 shadow-4.1.5.1-9 systemd-212-3
systemd-sysvcompat-212-3 talloc
Total Download Size: 55.55 MiB
Total Installed Size: 198.51 MiB
Net Upgrade Size: 1.29 MiB
エイヤッと^^;;;アップグレードして、再起動しました。
Arch Linux 3.8.13-20-ARCH (ttyO0)
arch-botic login: root
Password:
Last login: Sat Jan 1 09:00:23 on ttyO0
[root@arch-botic ~]# uname -a
Linux arch-botic 3.8.13-20-ARCH #1 SMP Fri Apr 18 11:42:29 MDT 2014 armv7l GNU/Linux
[root@arch-botic ~]# echo BB-BONE-BOTIC3 > /sys/devices/bone_capemgr.*/slots
ここまでは通ったみたいですが・・・
[root@arch-botic ~]# aplay -l
aplay: device_list:268: no soundcards found...
・・・ダメですね。
[root@arch-botic ~]# systemctl status mpd
● mpd.service - Music Player Daemon
Loaded: loaded (/usr/lib/systemd/system/mpd.service; enabled)
Active: active (running) since Sat 2000-01-01 09:19:38 JST; 14 years 3 months ago
Main PID: 147 (mpd)
CGroup: /system.slice/mpd.service
└─147 /usr/bin/mpd --no-daemon
Jan 01 09:19:38 arch-botic systemd[1]: Started Music Player Daemon.
Jan 01 09:19:40 arch-botic mpd[147]: server_socket: bind to '0.0.0.0:6600' ...d)
Jan 01 09:19:42 arch-botic mpd[147]: playlist: No such playlist
Apr 19 17:58:37 arch-botic mpd[147]: alsa_output: Failed to open "Botic" [a...ry
Apr 19 17:58:37 arch-botic mpd[147]: output: Failed to open audio output
Apr 19 17:58:37 arch-botic mpd[147]: player: problems opening audio device ...v"
Hint: Some lines were ellipsized, use -l to show in full.
[root@arch-botic ~]#
このレベルでV4 driverが受け付けないなら、それ以上は全部ダメじゃないかと思います。
数週間後にはTPAのcapeのベータ版が仕上がるらしいので、その頃新しいdriverがリリースされるかも。
それまで、3.8.13-17をキープしとくべきですね。
私はバックアップ取ってあるので、今から復元します。
この際なので、3.8.13-20-ARCHでsouceからdriverをmake installしてみました。しかし、そのままではできません。
http://bbb.ieero.com/" target="_blank">http://bbb.ieero.com/ の記載に従えば、
[root@arch-botic ~]# cd botic_driver/source
[root@arch-botic source]# make install
make -C /lib/modules/3.8.13-20-ARCH/build M=/root/botic_driver/source modules
make[1]: *** /lib/modules/3.8.13-20-ARCH/build: No such file or directory. Stop.
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2
無理だそうです。/lib/modules/3.8.13-20-ARCH/の中をみると、
[root@arch-botic source]# ls -l /lib/modules/3.8.13-20-ARCH/
total 1324
lrwxrwxrwx 1 root root 33 Apr 19 02:44 extramodules -> ../extramodules-3.8--am33x-legacy
drwxr-xr-x 9 root root 4096 Apr 19 02:44 kernel
-rw-r--r-- 1 root root 346406 Apr 19 17:52 modules.alias
-rw-r--r-- 1 root root 364864 Apr 19 17:52 modules.alias.bin
-rw-r--r-- 1 root root 11716 Apr 19 02:44 modules.builtin
-rw-r--r-- 1 root root 14534 Apr 19 17:52 modules.builtin.bin
-rw-r--r-- 1 root root 102789 Apr 19 17:52 modules.dep
-rw-r--r-- 1 root root 161127 Apr 19 17:52 modules.dep.bin
-rw-r--r-- 1 root root 170 Apr 19 17:52 modules.devname
-rw-r--r-- 1 root root 53920 Apr 19 02:44 modules.order
-rw-r--r-- 1 root root 55 Apr 19 17:52 modules.softdep
-rw-r--r-- 1 root root 115625 Apr 19 17:52 modules.symbols
-rw-r--r-- 1 root root 147709 Apr 19 17:52 modules.symbols.bin
本当にbuildがありません。'am33x'でデータベースを検索。
[root@arch-botic ~]# pacman -Ss am33x
core/linux-am33x 3.14.0-3
The Linux Kernel and modules - TI AM335x Beaglebone (Black)
core/linux-am33x-headers 3.14.0-3 [installed]
Header files and scripts for building modules for linux kernel - TI AM335x Beaglebone (Black)
core/linux-am33x-legacy 3.8.13-20 [installed]
The Linux Kernel and modules - am33x processors
core/linux-headers-am33x-legacy 3.8.13-20
Header files and scripts for building modules for linux kernel - am33x processors
最近のarch linuxの流儀なのか、headersは3.14.0-3。中を見ると、ここにはbuildがあります。
あちこち調べましたら、headersをlegacyに入れ替える必要があるようです。
[root@arch-botic ~]# pacman -S linux-headers-am33x-legacy
resolving dependencies...
looking for inter-conflicts...
:: linux-headers-am33x-legacy and linux-am33x-headers are in conflict (linux-headers). Remove linux-am33x-headers? [y/N] y
Packages (2): linux-am33x-headers-3.14.0-3 [removal] linux-headers-am33x-legacy-3.8.13-20
Total Download Size: 5.39 MiB
Total Installed Size: 35.75 MiB
Net Upgrade Size: -2.69 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages ...
linux-headers-am33x-legacy-3.8.13-20-armv7h 5.4 MiB 1122K/s 00:05 [##########################################] 100%
(1/1) checking keys in keyring [##########################################] 100%
(1/1) checking package integrity [##########################################] 100%
(1/1) loading package files [##########################################] 100%
(1/1) checking for file conflicts [##########################################] 100%
(2/2) checking available disk space [##########################################] 100%
(1/1) removing linux-am33x-headers [##########################################] 100%
(1/1) installing linux-headers-am33x-legacy [##########################################] 100%
[root@arch-botic ~]# ls -l /usr/lib/modules/3.8.13-20-ARCH/
total 1324
lrwxrwxrwx 1 root root 33 Apr 19 02:45 build -> ../../../src/linux-3.8.13-20-ARCH
lrwxrwxrwx 1 root root 33 Apr 19 02:44 extramodules -> ../extramodules-3.8--am33x-legacy
drwxr-xr-x 9 root root 4096 Apr 19 02:44 kernel
-rw-r--r-- 1 root root 346406 Apr 19 17:52 modules.alias
-rw-r--r-- 1 root root 364864 Apr 19 17:52 modules.alias.bin
-rw-r--r-- 1 root root 11716 Apr 19 02:44 modules.builtin
-rw-r--r-- 1 root root 14534 Apr 19 17:52 modules.builtin.bin
-rw-r--r-- 1 root root 102789 Apr 19 17:52 modules.dep
-rw-r--r-- 1 root root 161127 Apr 19 17:52 modules.dep.bin
-rw-r--r-- 1 root root 170 Apr 19 17:52 modules.devname
-rw-r--r-- 1 root root 53920 Apr 19 02:44 modules.order
-rw-r--r-- 1 root root 55 Apr 19 17:52 modules.softdep
-rw-r--r-- 1 root root 115625 Apr 19 17:52 modules.symbols
-rw-r--r-- 1 root root 147709 Apr 19 17:52 modules.symbols.bin
これで/lib/modules/3.8.13-20-ARCH/にbuildが入りましたので、make install。
[root@arch-botic ~]# cd botic_driver/source
[root@arch-botic source]# make install
make -C /lib/modules/3.8.13-20-ARCH/build M=/root/botic_driver/source modules
make[1]: Entering directory '/usr/src/linux-3.8.13-20-ARCH'
CC [M] /root/botic_driver/source/es9018.o
CC [M] /root/botic_driver/source/davinci-botic.o
LD [M] /root/botic_driver/source/snd-davinci-botic.o
LD [M] /root/botic_driver/source/snd-codec-es9018.o
Building modules, stage 2.
MODPOST 2 modules
CC /root/botic_driver/source/snd-codec-es9018.mod.o
LD [M] /root/botic_driver/source/snd-codec-es9018.ko
CC /root/botic_driver/source/snd-davinci-botic.mod.o
LD [M] /root/botic_driver/source/snd-davinci-botic.ko
make[1]: Leaving directory '/usr/src/linux-3.8.13-20-ARCH'
make -C /lib/modules/3.8.13-20-ARCH/build M=/root/botic_driver/source modules_install
make[1]: Entering directory '/usr/src/linux-3.8.13-20-ARCH'
INSTALL /root/botic_driver/source/snd-codec-es9018.ko
INSTALL /root/botic_driver/source/snd-davinci-botic.ko
DEPMOD 3.8.13-20-ARCH
make[1]: Leaving directory '/usr/src/linux-3.8.13-20-ARCH'
depmod -a
[root@arch-botic source]#
うまくいったようです。systemctl rebootすると。
[root@arch-botic ~]# uname -a
Linux arch-botic 3.8.13-20-ARCH #1 SMP Fri Apr 18 11:42:29 MDT 2014 armv7l GNU/Linux
[root@arch-botic ~]# echo BB-BONE-BOTIC3 > /sys/devices/bone_capemgr.*/slots
[root@arch-botic ~]# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Botic [TPA Botic], device 0: ES9018 es9018-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
音も問題なく出ました。3.8.13-17-ARCHよりもおとなしい音なのに、ぎっしりと充実しています。好みです。
もうこれ以上は望むべくもないと思えるほど。まさにs2d4[*]です。
でも、しばらくしたら、また不満が出て来るんでしょうね。先手を打って、シールドケースをデザイン中です。
[*] s2d4:[somthing/system/sounds to die for]
3.8.13-20-ARCHで出来たので、3.14.0-3-ARCHでも試してみました。
[root@arch-botic ~]# pacman -S linux-am33x
resolving dependencies...
looking for inter-conflicts...
:: linux-am33x and linux-am33x-legacy are in conflict (linux). Remove linux-am33x-legacy? [y/N] y
Packages (2): linux-am33x-legacy-3.8.13-20 [removal] linux-am33x-3.14.0-3
Total Download Size: 19.80 MiB
Total Installed Size: 24.06 MiB
Net Upgrade Size: 5.48 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages ...
linux-am33x-3.14.0-... 19.8 MiB 1749K/s 00:12 [######################] 100%
(1/1) checking keys in keyring [######################] 100%
(1/1) checking package integrity [######################] 100%
(1/1) loading package files [######################] 100%
(1/1) checking for file conflicts [######################] 100%
(2/2) checking available disk space [######################] 100%
(1/1) removing linux-am33x-legacy [######################] 100%
(1/1) installing linux-am33x [######################] 100%
>>> Updating module dependencies. Please wait ...
Optional dependencies for linux-am33x
crda: to set the correct wireless channels of your country
[root@arch-botic ~]#
systemctl reboot します。
[root@arch-botic ~]# uname -a
Linux arch-botic 3.14.0-3-ARCH #1 SMP Sat Apr 12 16:29:15 MDT 2014 armv7l GNU/Linux
[root@arch-botic source]# pacman -Ss am33x
core/linux-am33x 3.14.0-3 [installed]
The Linux Kernel and modules - TI AM335x Beaglebone (Black)
core/linux-am33x-headers 3.14.0-3 [installed]
Header files and scripts for building modules for linux kernel - TI AM335x
Beaglebone (Black)
core/linux-am33x-legacy 3.8.13-20
The Linux Kernel and modules - am33x processors
core/linux-headers-am33x-legacy 3.8.13-20
Header files and scripts for building modules for linux kernel - am33x
processors
[root@arch-botic source]# make install
make -C /lib/modules/3.14.0-3-ARCH/build M=/root/botic_driver/source modules
make[1]: Entering directory '/usr/lib/modules/3.14.0-3-ARCH/build'
CC [M] /root/botic_driver/source/es9018.o
In file included from include/linux/types.h:5:0,
from include/linux/list.h:4,
from include/linux/module.h:9,
from /root/botic_driver/source/es9018.c:1:
include/uapi/linux/types.h:4:23: fatal error: asm/types.h: No such file or directory
#include <asm/types.h>
^
compilation terminated.
scripts/Makefile.build:308: recipe for target '/root/botic_driver/source/es9018.o' failed
make[2]: *** [/root/botic_driver/source/es9018.o] Error 1
Makefile:1275: recipe for target '_module_/root/botic_driver/source' failed
make[1]: *** [_module_/root/botic_driver/source] Error 2
make[1]: Leaving directory '/usr/lib/modules/3.14.0-3-ARCH/build'
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2
[root@arch-botic source]#
出来ませんでした。時期尚早なんでしょうかね。どなたか、ヒントをお願い。
ヘッダーに足りない物があるんですかね。
davinci-botic.c(V3の場合ですが)を見ると必要なヘッダーは以下のようです。揃っているか確認して下さい。
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/timer.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
#include <linux/platform_data/edma.h>
#include <linux/i2c.h>
#include <linux/of_platform.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/soc.h>
#include <sound/pcm_params.h>
#include <asm/dma.h>
#include <asm/mach-types.h>
#include <linux/edma.h>
#include <linux/of_gpio.h>
何が必要なのか分かってないですが、3.14でサポートしているのは以下くらいなので、今のとこは無理だと思いますよ。
・ttyO1,ttyO2,ttyO4
・UPS
>揃っているか確認
ちょっとだけ足掻いてみましたが、確認手段がわかりませんでした。
pacman -Syuで3.14.1-1-ARCHにしてみましたが、当然のごとく、make installは通りませんでした。
では、3.13.6-3-ARCHならば出来るのか?
Nelsonさんのgitからいただいたソースでは上手く出来なかったので、arch linux armのgitからPKGBUILDをもらって来てmakepkgで3.13.6-3を作ってみました。
https://github.com/archlinuxarm/PKGBUILDs" target="_blank">https://github.com/archlinuxarm/PKGBUILDs
core/linux-am33x to 3.13.6-3 を遡って探すと、ありました。
https://github.com/archlinuxarm/PKGBUILDs/commit/2803ba6e4a773c8708987ca5db495913f7082893" target="_blank">https://github.com/archlinuxarm/PKGBUILDs/commit/2803ba6e4a773c8708987ca5db495913f7082893
適当なディレクトリにPKGBUILD、config、linux-am33x.installを取り込み、PKGBUILDを編集。
[root@arch-botic 31363]# nano PKGBUILD
-----
source=("http://www.kernel.org/pub/linux/kernel/v3.x/" target="_blank">http://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
"http://www.kernel.org/pub/linux/kernel/v3.x/patch-" target="_blank">http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz"
"http://rcn-ee.net/deb/sid-armhf/v" target="_blank">http://rcn-ee.net/deb/sid-armhf/v${pkgver}-${rcnrel}/patch-${pkgver%.0}-${rcnrel}.diff.gz"
"git://git.code.sf.net/p/aufs/aufs3-standalone#branch=aufs${pkgver%.*}"
'config')
md5sums=('0ecbaf65c00374eb4a826c2f9f37606f'
'a9b131a589a176b4c437b8ca4557b85e'
'64605b106b9b3670cc12a6132d0651cd'
'SKIP'
'SKIP') #< ここを変更
-- 少し下にある
build() {
cd "${srcdir}/${_srcname}"
# get kernel version
make prepare
# load configuration
# Configure the kernel. Replace the line below with one of your choice.
make menuconfig # CLI menu for configuration #< ここの#を削除
#make nconfig # new CLI menu for configuration
#make xconfig # X-based configuration
#make oldconfig # using old config from previous kernel version
# ... or manually edit .config
-----
makepkgはrootでやらない方が良いらしいですが・・・
[root@arch-botic 31363]# makepkg --asroot
==> Missing dependencies:
-> xmlto
-> docbook-xsl
-> bc
==> ERROR: Could not resolve all dependencies.
足らないものをインストールして、再開。
今回はBBBでやったので、やたら時間がかかりました。エラーはひとつ出ました。
depmod: ERROR: Module 'hci_vhci' has devname (vhci) but lacks major and minor information. Ignoring.
ググると、3.13シリーズでこのエラーはたくさん報告が・・
Bluetooth Virtual HCI device driver.なので、無視。
とりあえずrebootしてみました。
Arch Linux 3.13.6-3-ARCH (ttyO0)
arch-botic login: root
Password:
[ 40.291315] type=1006 audit(40.280:2): pid=180 uid=0 old auid=4294967295 new auid=0 old ses=4294967295 new ses=1 res=1
[ 40.464034] type=1006 audit(40.450:3): pid=182 uid=0 old auid=4294967295 new auid=0 old ses=4294967295 new ses=2 res=1
Last login: Thu Jan 1 09:01:40 on ttyO0
[root@arch-botic ~]# uname -a
Linux arch-botic 3.13.6-3-ARCH #1 SMP Mon Apr 21 10:03:24 JST 2014 armv7l GNU/Linux
[root@arch-botic ~]# cd botic_driver/source
[root@arch-botic source]# make install
make -C /lib/modules/3.13.6-3-ARCH/build M=/root/botic_driver/source modules
make[1]: Entering directory '/usr/src/linux-3.13.6-3-ARCH'
CC [M] /root/botic_driver/source/es9018.o
CC [M] /root/botic_driver/source/davinci-botic.o
LD [M] /root/botic_driver/source/snd-davinci-botic.o
LD [M] /root/botic_driver/source/snd-codec-es9018.o
Building modules, stage 2.
MODPOST 2 modules
CC /root/botic_driver/source/snd-codec-es9018.mod.o
LD [M] /root/botic_driver/source/snd-codec-es9018.ko
CC /root/botic_driver/source/snd-davinci-botic.mod.o
LD [M] /root/botic_driver/source/snd-davinci-botic.ko
make[1]: Leaving directory '/usr/src/linux-3.13.6-3-ARCH'
make -C /lib/modules/3.13.6-3-ARCH/build M=/root/botic_driver/source modules_install
make[1]: Entering directory '/usr/src/linux-3.13.6-3-ARCH'
INSTALL /root/botic_driver/source/snd-codec-es9018.ko
INSTALL /root/botic_driver/source/snd-davinci-botic.ko
DEPMOD 3.13.6-3-ARCH
make[1]: Leaving directory '/usr/src/linux-3.13.6-3-ARCH'
depmod -a
depmod: ERROR: Module 'hci_vhci' has devname (vhci) but lacks major and minor information. Ignoring.
で、結局、botic3は動きませんでした。ボチボチ行くしかないですね。
botic3/3.8.13-20-ARCHで良い音が出てますので、これで一旦終了。TPAのcapeと正式driver待ちとします。
>ちょっとだけ足掻いてみましたが、確認手段がわかりませんでした
include/uapi/linux/types.h:4:23: fatal error: asm/types.h: No such file or directory ってエラーが出てるので、asm/types.h?が足りないですね(ソースでは#include <asm/mach-types.h> となってるので、たぶんmach-types.hが足りない。他にもなにか足りないかもしれないですが)
確認方法はfindかければいいと思います。
cd /usr/lib/modules/3.14.0-3-ARCH/build
find . -name 'mach-types.h' -print
ヘッダーは、kernelをbuildするとinclude下に出来ます。
mach-types.hは、linux-3.14.x/include/generatedにあるようです。
>確認方法はfindかければいいと思います。
いつもありがとうございます。やってみます。
皆様
>これで一旦終了。
などと言いつつ、もうひと足掻きしてみました。
エレアトさんから分けていただいたHDMI送信基板が遊んでいましたので、bbbからのi2sをHDMI送信基板に接続。bbb本体をait dacの筐体外に追放しました。
http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140423.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/bbb-i2s-140423.jpg
ait dacのHDMIはait独自方式なのですが、ジャンパピンでps-audio方式に変更できます。また、エレアトさんのようにHDMI経由で電源が来ていない場合でも、dac側の電源基板から、独立した5Vをdac基板上のアイソレータ1次側に供給することができます。
bbbを筐体外に出して高周波ノイズが減るのと、HDMIの固有音が加わるのと、どっちがよりマシなのかの勝負ですが、結果は、悩むことなくHDMIの勝ちでした。bbb等からの高周波ノイズの悪影響は結構あるんでしょうね。
ノイズ以外では筐体内ダイレクト結線の方が良いはずですから、あとはシールド次第なのだろうと思います。
追記:140425:P9-25からクロックを入れる場合にbbbを破壊しないための注意喚起です。外部クロックの起動はbotic3の起動後が望ましいと思われます。また、poweroffする時点でクロックの電源を切った方が良いでしょう。P9-25が入力モードになっていない時にHレベルの信号を入れるとbbbが壊れる可能性があるようです。
参考: http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-64.html#post3903750" target="_blank">http://www.diyaudio.com/forums/twisted-pear/250583-building-open-embedded-audio-applicance-64.html#post3903750
結論から言えば音は出てません。
原因としては、
・配線がおかしい
・Digiが壊れてる
・ドライバーが9018依存
等、いろいろだと思いますが、今回はこの件の追求はしません。
使ってみて分かったことを書いておきます。
先に書いたように音は出ませんが、GMPCは認識しているような動作をします。また、top -Hの結果は(96/24再生時)、
top - 22:20:01 up 16 min, 1 user, load average: 0.24, 0.27, 0.19
Threads: 78 total, 3 running, 75 sleeping, 0 stopped, 0 zombie
%Cpu(s): 11.7 us, 5.2 sy, 0.0 ni, 83.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 505240 total, 188188 used, 317052 free, 7172 buffers
KiB Swap: 0 total, 0 used, 0 free, 156676 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2210 mpd 20 0 67640 5112 2024 R 12.1 1.0 1:13.87 mpd
2211 mpd 20 0 67640 5112 2024 R 2.0 1.0 0:16.96 mpd
2356 root 20 0 4200 1264 900 R 2.0 0.3 0:08.05 top
2209 mpd 20 0 67640 5112 2024 S 0.7 1.0 0:04.11 mpd
2205 mpd 20 0 67640 5112 2024 S 0.3 1.0 0:03.19 mpd
のようになっています。
これはI2Sは垂れ流しなので、ドライバーが組み込まれていれば、その先は関知せずってことなんでしょうか?
debianでは動かないとか、3.13.xでは動かないとか言う話があったので、検証してみました。
モジュールは、Verごとに野良ビルドです。
・3.8.13-bone41 : 問題なし
・3.8.13-bone47 : 問題なし
・3.13.9-bone9 : 問題なし(※ 上記topの結果は3.13.9-bone9のものです)
※
3.8.13.xの場合は、HPのとおり echo BB-BONE-BOTIC1 > /sys/devices/bone_capemgr.*/slots としますが、3.13.xの場合は以下のようにするようです。
botic_driver/firmware/am335x-boneblack.dtb を dtbsにコピーし再起動。echo BB-BONE-BOTIC1 > /sys/devices/bone_capemgr.*/slots は必要ないようです。
ただ、音が出ていないので検証は出来ていません^^;
am335x-boneblack.dtsに当っているパッチを取り出して3.12に当ててdtbを作成すれば、3.12でも動くかもしれません。
追記
3.13.9-bone9のdmesgの結果です。
root@debian-bbb:~# dmesg | grep botic
[ 7.421293] botic_hw_params@175
[ 7.424624] snd_davinci_botic: not using external clocks
[ 7.484094] davinci_botic snd_davinci_botic.11: es9018-hifi <-> 48038000.mcasp mapping ok
[ 7.545547] snd_davinci_botic: supported playback.rates=0x14a8
[ 153.333242] botic_hw_params: np=c1392a70, format=0xa, rate=96000, chan=2
[ 153.340454] botic_hw_params@62
[ 153.348206] botic_hw_params@68
[ 153.351422] botic_hw_params@86
[ 153.354625] botic_hw_params@99
[ 153.364260] botic_hw_params@105
[ 153.367577] botic_hw_params@111
[ 153.370878] botic_hw_params@118
[ 153.374175] botic_hw_params@129
3.14のam335x-boneblack.dtsは3.13と同じようですので、3.14への移植が進めば3.13と同じ手法が使えますね。
こんなの出来ました。rtも出来そうです。
syuさん、もう少し足掻いてみます?
root@debian-bbb:~# uname -a
Linux debian-bbb 3.14.1-bone2 #1 SMP Sun Apr 20 09:56:48 UTC 2014 armv7l GNU/Linux
root@debian-bbb:~# cat /proc/asound/cards
0 [Botic ]: TPA_Botic - TPA Botic
TPA Botic
root@debian-bbb:~# lsmod
Module Size Used by
rpcsec_gss_krb5 21773 0
nfsd 242277 2
snd_davinci_botic 4893 1
snd_codec_es9018 2872 1
snd_soc_davinci_mcasp 9855 2
snd_soc_davinci 6544 1 snd_soc_davinci_mcasp
snd_soc_core 156574 4 snd_soc_davinci_mcasp,snd_soc_davinci,snd_davinci_botic,snd_codec_es9018
snd_compress 7845 1 snd_soc_core
snd_pcm 87340 3 snd_soc_core,snd_soc_davinci
snd_seq 58436 0
snd_seq_device 6314 1 snd_seq
snd_timer 19626 2 snd_pcm,snd_seq
ti_am335x_adc 4736 0
kfifo_buf 2490 1 ti_am335x_adc
industrialio 46642 2 ti_am335x_adc,kfifo_buf
omap_aes 11910 0
omap_sham 17324 0
snd 61590 7 snd_soc_core,snd_timer,snd_pcm,snd_seq,snd_seq_device,snd_compress
soundcore 7210 1 snd
rtc_omap 5272 0
uio_pdrv_genirq 3297 0
uio 8777 1 uio_pdrv_genirq
top - 12:24:24 up 3 min, 1 user, load average: 0.48, 0.60, 0.27
Threads: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie
%Cpu(s): 7.0 us, 1.7 sy, 0.0 ni, 91.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 505476 total, 78744 used, 426732 free, 7384 buffers
KiB Swap: 0 total, 0 used, 0 free, 43800 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2239 mpd 20 0 67620 5136 2024 S 6.0 1.0 0:03.05 mpd
2240 mpd 20 0 67620 5136 2024 S 1.6 1.0 0:00.78 mpd
2389 root 20 0 4200 1268 900 R 1.6 0.3 0:00.44 top
root@debian-bbb:~# cat /proc/asound/Botic/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 96000 (96000/1)
period_size: 1024
buffer_size: 16384
root@debian-bbb:~# cat /proc/asound/Botic/pcm0p/sub0/info
card: 0
device: 0
subdevice: 0
stream: PLAYBACK
id: ES9018 es9018-hifi-0
name:
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 0
root@debian-bbb:~# cat /proc/asound/Botic/pcm0p/sub0/status
state: RUNNING
owner_pid : 2240
trigger_time: 240.988774586
tstamp : 1417.729661518
delay : 16384
avail : 0
avail_max : 2048
-----
hw_ptr : 112962560
appl_ptr : 112978944
root@debian-bbb:~# cat /proc/asound/Botic/pcm0p/sub0/sw_params
tstamp_mode: NONE
period_step: 1
avail_min: 1024
start_threshold: 15360
stop_threshold: 16384
silence_threshold: 0
silence_size: 0
boundary: 1073741824
足掻くのはやめていません^^;;;;
>botic_driver/firmware/am335x-boneblack.dtb を dtbsにコピーし再起動。
No.4315で作った3.13.6-3-ARCHで試しました。
botic1の場合だけ音が出ましたが、外部クロックを入れてbotic3動作にするにはどこをいじればいいのか、さっぱりわかりません。
音は良いです。外部クロックでのbotic3(3.8.13-20-ARCH)には負けます。
[root@arch-botic ~]# cat /proc/asound/cards
0 [Botic ]: TPA_Botic - TPA Botic
TPA Botic
[root@arch-botic ~]# dmesg | grep botic
[ 0.000000] Linux version 3.13.6-3-ARCH (root@arch-botic) (gcc version 4.8.2 20131219 (prerelease) (GCC) ) #1 SMP Mon Apr 21 10:03:24 JST 2014
[ 4.857231] systemd[1]: Set hostname to <arch-botic>.
[ 9.778010] botic_hw_params@175
[ 9.781441] snd_davinci_botic: not using external clocks
[ 9.874893] davinci_botic snd_davinci_botic.11: es9018-hifi <-> 48038000.mcasp mapping ok
[ 9.992104] snd_davinci_botic: supported playback.rates=0x14a8
[ 13.930465] botic_hw_params: np=c138fa70, format=0xa, rate=48000, chan=2
[ 13.937662] botic_hw_params@62
[ 13.945161] botic_hw_params@68
[ 13.948415] botic_hw_params@86
[ 13.951616] botic_hw_params@99
[ 13.961237] botic_hw_params@105
[ 13.964530] botic_hw_params@111
[ 13.967843] botic_hw_params@118
[ 13.971135] botic_hw_params@129
pacman -Syuで3.14.2-1-ARCHになりますが、これは失敗。
[root@arch-botic ~]# uname -a
Linux arch-botic 3.14.2-1-ARCH #1 SMP Mon Apr 28 20:36:10 MDT 2014 armv7l GNU/Linux
[root@arch-botic ~]# pacman -Ss am33x
core/linux-am33x 3.14.2-1 [installed]
The Linux Kernel and modules - TI AM335x Beaglebone (Black)
core/linux-am33x-headers 3.14.2-1 [installed]
Header files and scripts for building modules for linux kernel - TI AM335x Beaglebone (Black)
core/linux-am33x-legacy 3.8.13-20
The Linux Kernel and modules - am33x processors
core/linux-headers-am33x-legacy 3.8.13-20
Header files and scripts for building modules for linux kernel - am33x processors
[root@arch-botic ~]# cd botic_driver/source
[root@arch-botic source]# make install
make -C /lib/modules/3.14.2-1-ARCH/build M=/root/botic_driver/source modules
make[1]: Entering directory '/usr/lib/modules/3.14.2-1-ARCH/build'
CC [M] /root/botic_driver/source/es9018.o
In file included from include/linux/types.h:5:0,
from include/linux/list.h:4,
from include/linux/module.h:9,
from /root/botic_driver/source/es9018.c:1:
include/uapi/linux/types.h:4:23: fatal error: asm/types.h: No such file or directory
#include <asm/types.h>
^
compilation terminated.
scripts/Makefile.build:308: recipe for target '/root/botic_driver/source/es9018.o' failed
make[2]: *** [/root/botic_driver/source/es9018.o] Error 1
Makefile:1275: recipe for target '_module_/root/botic_driver/source' failed
make[1]: *** [_module_/root/botic_driver/source] Error 2
make[1]: Leaving directory '/usr/lib/modules/3.14.2-1-ARCH/build'
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2
[root@arch-botic source]# aplay -l
aplay: device_list:268: no soundcards found...
>外部クロックを入れてbotic3動作にするにはどこをいじればいいのか、さっぱりわかりません。
まじめに見てませんが、botic_driver/firmware/am335x-boneblack.dtsの最後辺りですかね。
実はこんなの作ったんですが、試してみます?
もちろん無保証です。
root@debian-bbb:~# uname -a
Linux debian-bbb 3.14.1-rt1 #1 SMP PREEMPT RT Tue Apr 29 20:43:52 JST 2014 armv7l GNU/Linux
root@debian-bbb:~# cat /proc/asound/cards
0 [Botic ]: TPA_Botic - TPA Botic
TPA Botic
top - 21:50:10 up 12 min, 1 user, load average: 0.15, 0.13, 0.12
Threads: 102 total, 1 running, 101 sleeping, 0 stopped, 0 zombie
%Cpu(s): 12.1 us, 5.1 sy, 0.0 ni, 82.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 501932 total, 244340 used, 257592 free, 7952 buffers
KiB Swap: 0 total, 0 used, 0 free, 166832 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2237 mpd -48 0 69556 65m 22m S 6.9 13.5 1:04.15 mpd
2238 mpd -54 0 69556 65m 22m S 4.7 13.5 0:34.86 mpd
2400 root 20 0 4200 1276 900 R 3.1 0.3 0:00.42 top
20 root -51 0 0 0 0 S 1.3 0.0 0:09.91 irq/28-edma
3 root -2 0 0 0 0 S 0.3 0.0 0:02.73 ksoftirqd/0
28 root -51 0 0 0 0 S 0.3 0.0 0:01.40 irq/86-44e0b000
92 root -54 0 0 0 0 S 0.3 0.0 0:09.77 irq/57-4a100000
93 root -54 0 0 0 0 S 0.3 0.0 0:05.42 irq/58-4a100000
No.4324の記事で、tinkerさんのところでは3.14.1-bone2で動いているので、3.14.2-1-ARCHでもサポートされているはずですが、make installでは無理なんですよね。ドライバの作り方も3.13シリーズまでと3.14では違うんでしょうか。
>Linux debian-bbb 3.14.1-rt1 #1 SMP PREEMPT RT Tue Apr 29 20:43:52 JST 2014 armv7l GNU/Linux
凄いですね、早くもRT kernelとは。
cpu負荷が高いのは、RTだからですか、それともbotic1だからですか?
使い方を指導していただかないと実働に持ち込むのは無理だと思いますが、是非試してみたいです。よろしく。
この掲示板を参考にさせていただき、BBBよりのI2S出力で音楽を楽しんでおります。とにかくびっくりするぐらい高音質ですね。DACはPCM1792です。BOTICドライバの9018依存はないんじゃないでしょうか。Arch、Debianで、BOTIC1、BOTIC3とも44.1/16から192/24まで問題なく音が出ています。BOTIC3の外部クロックはAmaneroです。
ArchとDebianでは音がかなり違います。Archは解像度が非常に高く、音にスピード感があり馬力を感じます。Debianの方は、Archと比べると少し地味な感じがしますが、音に厚みがあります。
音以外では、
BOTIC3の際ArchとDebianでAmaneroの接続順でどうも音が出たり出なかったりします。(BBBのaudio_outputは2つ設定)
Debianの場合、Amaneroを接続したまま起動し起動後ドライバを組み込みます。
Archの場合は、ドライバを組み込み後、AmaneroをUSBに接続します。これで、Arch、Debianの双方でAmaneroの方も自動的に追従するようです。
Arch,Debian 96/24
root@debian-armhf:~# uname -a
Linux debian-armhf 3.8.13-bone41 #1 SMP Tue Mar 4 22:51:47 UTC 2014 armv7l GNU/Linux
top - 06:41:43 up 30 min, 1 user, load average: 0.01, 0.04, 0.05
Threads: 69 total, 1 running, 68 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.4 us, 0.7 sy, 0.0 ni, 97.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 509168 total, 265168 used, 244000 free, 14292 buffers
KiB Swap: 0 total, 0 used, 0 free, 218492 cached
top - 06:43:44 up 32 min, 1 user, load average: 0.03, 0.04, 0.05
Threads: 70 total, 1 running, 69 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.2 us, 1.1 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 509168 total, 278784 used, 230384 free, 14292 buffers
KiB Swap: 0 total, 0 used, 0 free, 231968 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2103 mpd 20 0 84668 13m 2024 S 4.0 2.8 0:22.73 mpd
2105 mpd 20 0 84668 13m 2024 S 1.0 2.8 0:06.26 mpd
2188 root 20 0 4212 1268 896 R 1.0 0.2 0:00.20 top
2106 mpd 20 0 84668 13m 2024 S 0.7 2.8 0:03.83 mpd
2099 mpd 20 0 84668 13m 2024 S 0.3 2.8 0:02.93 mpd
2139 root 20 0 8316 2948 2356 S 0.3 0.6 0:02.26 sshd
2183 root 20 0 0 0 0 S 0.3 0.0 0:00.14 kwork
[root@alarm ~]# uname -a
Linux alarm 3.8.13-20-ARCH #1 SMP Fri Apr 18 11:42:29 MDT 2014 armv7l GNU/Linux
top - 09:14:58 up 14 min, 1 user, load average: 0.00, 0.05, 0.07
Threads: 67 total, 1 running, 66 sleeping, 0 stopped, 0 zombie
%Cpu0 : 4.0 us, 2.3 sy, 0.0 ni, 93.0 id, 0.3 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem: 507484 total, 203092 used, 304392 free, 9876 buffers
KiB Swap: 0 total, 0 used, 0 free. 155936 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
183 mpd 20 0 104280 18424 5784 S 3.3 3.6 0:09.58 mpd
273 root 20 0 0 0 0 S 1.3 0.0 0:03.16 cifsd
184 mpd 20 0 104280 18424 5784 S 1.0 3.6 0:02.73 mpd
163 mpd 20 0 104280 18424 5784 S 0.3 3.6 0:03.39 mpd
182 mpd 20 0 104280 18424 5784 S 0.3 3.6 0:00.58 mpd
172 root 20 0 7492 3528 456 S 0.3 0.7 0:01.95 haveged
295 root 20 0 4520 1292 984 R 0.3 0.3 0:00.38 top
tinkerさん
RT kernel 私も是非試してみたいです。よろしくお願いします。
9018以外でも大丈夫なんですね。
ということは、配線間違いor壊れてる(壊した)ってことなんでしょうね。
準備整い次第UPします。良かったらTestして下さい。
ただし、ドライバー作者さえtestしてないであろう3.14.x and RTということはご了承くださいね。
>ドライバの作り方も3.13シリーズまでと3.14では違うんでしょうか
ドライバの作り方は、3.14でも同じです。ただしam335x-boneblack.dtbは作成しなおしました(後述)
syuさんの場合、include/uapi/linux/types.h:4:23: fatal error: asm/types.h: No such file or directory とエラーが出ています。
ドライバーのソースがおかしいのかヘッダーがおかしいのかは分かりませんが、このエラーを回避する必要があります。
以下の手順でやってみてください。
・asm/types.hは存在するか
・存在しない場合、どっかから持ってくる(-_-;)
・存在する場合、cat types.hとし、include行があればそのincludeされている*.hが所定の場所に存在するか確認する
私のところでは、すんなりmakeできたのは3.8.13-bone41,3.14.1-bone2のみで、他のものではエラーが出ました。
3.8.13-bone47の場合、linux-headers-3.8.13-bone47/arch/arm/include/asm/timex.h:18:24: fatal error: mach/timex.h: No such file or directoryとのエラーが出ました。
このため、上記の手順で確認し/usr/src/linux-headers-3.8.13-bone47/arch/arm/include/mach/timex.hを用意しました。
また3.14.1-rt1の場合は、linux-headers-3.14.1-rt1/scripts関係でエラーが出たので、エラーが出る/scriptsを3.14.1-bone2のものに入れ替えました。
作者の方は、カーネルソースに対するパッチとして(raspiのように)提供してくだされば、カーネルを何度もビルドする場合に一緒にモジュールも作成できるので便利なんですけどね。
カーネルをビルドしない or たまにしかしないって方たちにとっては今のほうがいいのかなぁ・・・
I2Sに必要な定義はどこでされてるんしょうか? ってことで探してみました。
3.8の場合、
"P9.25", /* mcasp0: mcasp0_ahclkx */
などはBBB固有のパッチで追加定義されていますが※、3.13では定義されてないようです。
(3.12も同様の追加定義はされています。作者の方が少しいじってくれれば3.12も動くはずなんですけどね)
※確認方法
ss@xh61v:~/build/linux-dev$ cd patches/
ss@xh61v:~/build/linux-dev/patches$ grep mcasp0_ahclkx * -r | less
必要な定義がされていないのに、なんで3.13.6は動くの?ってことでChangeLogを見ると、ご存知のようにadd DTS+DTB for static configurationと記載されています。
そこでam335x-boneblack.dtsを確認すると該当の記述がありましたので、am335x-boneblack.dtbを入れ替えればいいことが分かります。
3.14も必要な定義がされていませんが、3.13と同様の手法で出来るのではと考えました。
ただし、am335x-boneblack.dtsのサイズは3.13と同じですが、am335x-boneblack.dtbのサイズは3.13と違います。
am335x-boneblack.dtsで以下をincludeしているので、きっとこのあたりの中身が3.13と違うのでしょう。
#include "am33xx.dtsi"
#include "am335x-bone-common.dtsi"
確認するのも面倒なので、3.13.6-bone8のam335x-boneblack.dtsとbotic_driver/firmware/am335x-boneblack.dtsからパッチを作成し、3.14.1のam335x-boneblack.dtsに当てdtbを作成することとしました。
以下にファイルをUPしておきます。
https://drive.google.com/file/d/0BxnbJHx0_xurQV9mbmtYNmdKVkU/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurQV9mbmtYNmdKVkU/edit?usp=sharing
こちらでは音が出ていないので、正常に動いているのかどうか判断できません。音切など発生しているかもしれません。
検証して頂いて、RTに可能性があるようでしたらソース及びヘッダーもUPしますので、後のことはよろしくお願いします。
なお、3.14rtのカーネルソースは以下の構成のものでビルドしています。
・am335x-boneblack.dts:BBB固有パッチ + rtパッチ(多分ない)+ boticパッチ(同包のbotic.patch.gz)
・上記以外 :BBB固有パッチ + rtパッチ
・ヘッダー :適当に作成しました
また、configはCFQからDeadlineに変更しています。出音はその辺を脳内変換(^_^;)して確認して下さい。
>cpu負荷が高いのは、RTだからですか、それともbotic1だからですか?
多分RTだからだと思いますが、よく分かりません。
3.13.6以降では、botic1とかbotic3の区別は無いように見えます。
カーネル起動時に外部クロックが発見できれば外部クロックを、見つからない場合は48kを使うようです。
きちんと動作しているのかどうかは、環境がないので分かりません。
注)
I2Sでは関係ありませんが、UPしたカーネルはUSB DACでは正常に動作しません。
3.14(多分3.13も)のMUSBではDMAが使えないようです(bug?)
USB DACを使うためには、PIOに変更が必要です。
cpufreqも効かないような・・・
なんでだろ・・・
早速のup、ありがとうございます。
音が出ました。ご安心ください。
内部クロックでは192/24まで問題なく再生できています。
やはり外部クロックへの切り替え方がわかりません。
音の方は、より豊かになったような・・ プラシーボ?
以前、ここにyoさんがupされたimgを使いました。mpdはrtバッチ済みの0.185dsdです。44.1再生中のtop -Hです。
root@beagle:~# uname -a
Linux beagle 3.14.1-rt1 #1 SMP PREEMPT RT Tue Apr 29 20:43:52 JST 2014 armv7l GNU/Linux
%Cpu(s): 9.8 us, 8.1 sy, 0.0 ni, 75.8 id, 0.0 wa, 0.0 hi, 6.4 si, 0.0 st
KiB Mem: 501944 total, 497552 used, 4392 free, 1788 buffers
KiB Swap: 0 total, 0 used, 0 free, 400600 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2528 mpd -50 0 91536 78m 22m S 7.9 16.0 1:02.41 mpd 92 root -55 0 0 0 0 S 6.6 0.0 13:28.53 irq/57-4a100000 top - 11:37:59 up 1:12, 1 user, load average: 0.61, 1.05, 1.94
Threads: 118 total, 1 running, 117 sleeping, 0 stopped, 0 zombie
%Cpu(s): 31.7 us, 3.0 sy, 0.0 ni, 65.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 501944 total, 496564 used, 5380 free, 2124 buffers
KiB Swap: 0 total, 0 used, 0 free, 393264 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14485 mpd -55 0 90332 86m 23m S 30.6 17.6 0:22.79 mpd
14484 mpd -50 0 90332 86m 23m S 1.3 17.6 0:14.61 mpd
15110 root 20 0 4216 1284 880 R 1.0 0.3 0:00.71 top
20 root -51 0 0 0 0 S 0.3 0.0 0:22.25 irq/28-edma
92 root -55 0 0 0 0 S 0.3 0.0 13:37.06 irq/57-4a100000
395 root 20 0 1496 480 248 S 0.3 0.1 0:08.41 net.agent
2511 root 20 0 18336 876 648 S 0.3 0.2 0:32.55 cpufreqd
1 root 20 0 1688 624 520 S 0.0 0.1 0:02.61 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
動いたみたいで安心しました。
>プラシーボ?
かもしれません。
というのも、別の機種(odroid-u3)で3.14を使っているのですが、3.8ほどの変化が感じられませんでした。
>load average: 0.61, 1.05, 1.94
こちらでも1.0を超えることがあります。
ちょっと問題ありそうですね。
>やはり外部クロックへの切り替え方がわかりません
これについてはお役に立ちそうにないです。
twlさん、syuさん
3.13の動作報告及び3.13での外部クロックへの切り替えなど、フォーラムで話題が出ていないでしょうか?
arch linuxのrootfsでも音が出ましたが、botic1動作です。
外部クロック(22.5792MHz)をP9-25に入れたまま起動しましたが、クロックを止めないとコンフリクトでdacにはNO SIGと表示され、再生不能でした。止めるとfs=48kHzの表示(16/44.1再生)になります。
[root@arch-botic ~]# uname -a
Linux arch-botic 3.14.1-rt1 #1 SMP PREEMPT RT Tue Apr 29 20:43:52 JST 2014 armv7l GNU/Linux
top - 22:57:56 up 2 min, 1 user, load average: 0.57, 0.34, 0.14
Tasks: 94 total, 1 running, 93 sleeping, 0 stopped, 0 zombie
%Cpu(s): 31.1 us, 1.3 sy, 0.0 ni, 67.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 501940 total, 140112 used, 361828 free, 7164 buffers
KiB Swap: 0 total, 0 used, 0 free. 95268 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
258 root 20 0 91756 12964 5356 S 30.1 2.6 0:30.82 mpd
457 root 20 0 4980 1288 984 R 0.7 0.3 0:00.15 top
19 root 20 0 0 0 0 S 0.3 0.0 0:00.11 kworker/0:1
20 root -51 0 0 0 0 S 0.3 0.0 0:00.35 irq/28-edma
1 root 20 0 4656 2840 1708 S 0.0 0.6 0:05.03 systemd
[root@arch-botic ~]# cat /proc/asound/cards
0 [Botic ]: TPA_Botic - TPA Botic
TPA Botic
bbbのクロックでリサンプルなので、音は良いですが残念ながらbotic3動作(3.8.13-21-ARCH)には、かなり離されています。
>外部クロックへの切り替えなど、フォーラムで話題
今のところ私は気付きません。
bbbがやっと買えたとかで盛り上がってるようです。
犬さん
なるほど。rootfs全体をバックアップしているということですかね。
ls -Raの結果は最後の部分だけだと思いますが、確認のためbootの中味を見たいです。testディレクトリで
ls -Ra ./boot
と
ls -Ra /boot
の結果を全部貼り付けてもらえますか。
あとパーティション構成がどうなっているか知りたいので
fdisk -l
の結果もお願いします。
uImageのバージョンを見ると去年出たものと変わってないかもしれませんね。
今回、MuBoxを新規インストールしたばかりの状態ですが、今後は自力で最新カーネルを組み込み練習をしないとだめかもしれません。
root@voyage-mubox:~/test# ls -Ra ./boot
./boot:
. .. boot.scr boot.txt uImage uImage-3.6.9-00797-g0d7ee41
root@voyage-mubox:~# ls -Ra /boot
/boot:
. .. boot.scr boot.txt uImage uImage-3.6.9-00797-g0d7ee41
root@voyage-mubox:~# fdisk -l
Disk /dev/mtdblock0: 4 MB, 4194304 bytes
255 heads, 63 sectors/track, 0 cylinders, total 8192 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mtdblock0 doesn't contain a valid partition table
Disk /dev/mmcblk0: 3965 MB, 3965190144 bytes
3 heads, 32 sectors/track, 80672 cylinders, total 7744512 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007f6b0
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 2048 7743487 3870720 83 Linux
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe5945e8b
Device Boot Start End Blocks Id System
/dev/sda1 2048 1953523711 976760832 b W95 FAT32
voyage-mubox-current.tar.xz 20-Feb-2014 10:34 46739288
をインストールしたいということですね。
であれば、サイズからみて voyage-mubox-0.9.1.tar.xz と同じことと考えられるので、このページの
http://mubox.voyage.hk/cubox" target="_blank">http://mubox.voyage.hk/cubox
項番4で voyage-mubox-devel を選択すればよいのではないでしょか。
皆様
先日、下記に書いたようにODROID-U3を購入しました。
http://www.symphonic-net.com/kubotayo/cgi-bin/read.cgi?mode=all&list=topic&no=4074" target="_blank">http://www.symphonic-net.com/kubotayo/cgi-bin/read.cgi?mode=all&list=topic&no=4074
昨夜から足掻いてみて、本日夕方、なんとか動くようになりました。
1.7Ghz*4のcpuは、1coreでi.MX6_Dual位です(BogoMIPS:3394.86*4)
以下の2つのイメージとODROID公式から落としたkernel(以降3とする)、及び自炊のkernel(以降4とする。3.8.13.16+rt27)を試してみました。
http://odroid.us/odroid/odroidu2/debian/debian-wheezy-base-7.1.0.img.xz" target="_blank">http://odroid.us/odroid/odroidu2/debian/debian-wheezy-base-7.1.0.img.xz(以降1とする)
http://archlinuxarm.org/os/ArchLinuxARM-odroid-x-latest.img.gz" target="_blank">http://archlinuxarm.org/os/ArchLinuxARM-odroid-x-latest.img.gz(以降2とする)
1について(3.8.13.3)
・DACを認識
・192/24の再生可能。ただしscpでファイルの転送を行うとmpdが落ちる。
2について(3.8.13.16)
・DACを認識
・cifs未サポートだったので、早々に撤退(Archのnfsは、NFS3で使うのは、なんかめんどくさかったような記憶があったため)
3について(3.8.13.16)
・DACを認識せず。撤退
4.について(3.8.13.16+rt27)
・DACを認識し1のようにmpdが落ちることもなかった。
以下にtopの結果を貼っておきます(flac 192/24再生中-3.8.13.16+rt27ー)
top - 19:54:25 up 2:53, 2 users, load average: 0.10, 0.24, 0.17
Threads: 114 total, 1 running, 113 sleeping, 0 stopped, 0 zombie
%Cpu0 : 1.7 us, 0.3 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.0 us, 2.7 sy, 0.0 ni, 97.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 1.0 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 2070160 total, 130044 used, 1940116 free, 13092 buffers
KiB Swap: 0 total, 0 used, 0 free, 69280 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1214 root -51 0 0 0 0 S 7.6 0.0 5:04.67 irq/102-ehci_hc
3209 mpd 20 0 68836 5400 2024 S 3.3 0.3 1:48.81 mpd
3211 mpd 20 0 68836 5400 2024 S 1.7 0.3 0:46.24 mpd
1218 root -51 0 0 0 0 S 1.3 0.0 0:46.52 irq/102-ohci_hc
13 root -2 0 0 0 0 S 0.3 0.0 0:16.79 ksoftirqd/1
18 root -2 0 0 0 0 S 0.3 0.0 0:15.91 ksoftirqd/2
23 root -2 0 0 0 0 S 0.3 0.0 0:16.08 ksoftirqd/3
2636 root 20 0 0 0 0 S 0.3 0.0 0:20.81 cifsd
3207 mpd 20 0 68836 5400 2024 S 0.3 0.3 0:10.69 mpd
問題点と今後の方針
まともに使えるkernelソースは3.8.13.16だけのようです(3.0.xは未検証)
なのでkernel_Verの違いで聴き比べるなんてことは、当分できそうにありません。
1に入っていたboot.scrではuInitrdを使うようになっているので(zImageだけでも可)、initramfsにmpd及び必要なモジュールを入れて使えるようにしようかと考えています。
odroidのレポート、ありがとうございます。やはり、armアーキテクチュは手強そうですね。x86に転身し、ヌクヌクと生息している我が身には大変そうです(^^;;;。使用レポートも楽しみにしています。
使ってみたいとは思っているのですが、NewAlixあり、HiFiBerryありで、「odroidは遠くなりにけり」ですね。TinyCoreはあと一息というところまで来ました。カーネルの挙動がちょっと特殊ですが、armマシンと比較すれば、天国と地獄。雲泥の差ですね。
initramfsに全部いれちゃうというのはtinycoreもいっしょですね。だから実質リードオンリーです。
NewAlixも考えたんですが、あえて茨の道を・・・(笑)
U3の音は、3.8にしては結構いいです。
評判の悪いSMC95XX(RasPiのethとusbに使われてる兼用の石)を使ってるみたいですが、パワーがあれば使えそうです。
これからはBBBとODROID-U3の2台をメインにしていくつもりです。
>TinyCoreはあと一息というところまで来ました
結果楽しみにしています。
質問です。mpd(関連するライブラリなども)は、追加パッケージを見ると足りないように思うのですが、足らないものはbuildしなければいけないんでしょうか?
>initramfsに全部いれちゃう
やってみても良くならないかもしれないですが、せっかく買ったんで、やれそうな遊びを探してます。
とりあえず、zcat ./initramfs-3.8.13.16-rt27-140215 | cpio -id、mpdとmpd.confはln -sして、ldd /usr/local/bin/mpdで何を入れりゃいいか見たところで、まだまだ先は長そうです。
> 評判の悪いSMC955X(RasPiのethとusbに使われてる兼用の石)を使ってるみたいですが、パワーがあれば使えそうです。
NewAlixの場合もパワーで押し切るという感じはありますね。ただ、無理矢理鳴らしているという感じではなくて、実在感を強調するという感じなので、とてもいいです。マルチコアマシンの特徴かもしれません。
> 質問です。mpd(関連するライブラリなども)は、追加パッケージを見ると足りないように思うのですが、足らないものはbuildしなければいけないんでしょうか?
その通りだと思います。tinycoreの場合はなんとかあったので、ビルドはmpdだけですみました。あと使わない機能なら、コンフィグでdisableするという手もききますね。shout、mmsなどはこれで回避しました。
> とりあえず、zcat ./initramfs-3.8.13.16-rt27-140215 | cpio -id、mpdとmpd.confはln -sして、ldd /usr/local/bin/mpdで何を入れりゃいいか見たところで、まだまだ先は長そうです。
tinycoreの場合は適当なワークディレクトリを作成移動して、実質initramfsであるcore.gzというやつを
zcat /mnt/tce/boot/core.gz | sudo cpio -i -H newc -d
で展開し、変更追加した内容をコピーし、
find | sudo cpio -o -H newc | gzip -2 > ../core1.gz
で新しいcore1.gzを作成。入れ換えるという方法です。しかしこのfindの使い方は凄いですね。tinycoreの掲示板で見つけたのですが、ちょっと思いつかなかったです。これって、linuxハッカーでは常識なのですかね。
カーネルを入れ換えた時のモジュールライブラリの追加なんかもこれで出来ます。
あと、小さいファイルの変更の場合はmydata.tgzというプライベートな圧縮ファイルに保存しておくということも可能です。
>その通りだと思います。tinycoreの場合はなんとかあったので、ビルドはmpdだけですみました
参考になります。
経過を公開していただけると、RasPiとかで真似したと思います。
>find | sudo cpio -o -H newc | gzip -2 > ../core1.gz
こんな使い方もあるんですね。
BBBで私が使っているuEnv.txtもuInitrdを使えるようになっているので、今やっていることが成功したらBBBでもやってみようと思います。
ODROID-U3を使ってみて、分かったことを書いておきます。
RT kernel+RTOPのmpdの場合、比較的大きなファイルの転送中に音が途切れることがあります。
これについては、irq/102-ehci_hcの優先度を99に設定すれば、問題は出ないようです(どのくらい上げれば良いかは未検証)
なお、RT kernel+RTOP無しのmpdの場合は問題はありませんでした。
まっ、音楽聞いてる時にファイルの転送(音楽データ以外の)などするアホ以外は問題は出ないと思います。
音の傾向は、個人的に以下のように感じています。
cubox :おおらかすぎ
wandboard:神経質すぎ
U3 :上記の中間(どちらかというとwandboard寄り。0.7*wandboardくらいの位置かな)
こんなんですが、ODROID-U3を使ってみようという奇特な方の要望があれば、細々した情報も出せると思います。
yoさん
initramfsを作ってみましたが、適当すぎたのか、目立った結果(明らかに音が良くなるとか負荷が下がるとか)は得られていません。
以下やったこと。
・initramfsを作成
kernelversion=`uname -r`
mkinitramfs -c gzip -o ./initramfs-$kernelversion $kernelversion
・作成したinitramfsにモジュール追加
mpdだけでも関連するモジュールが多いので、めんどくさいなあと探してみたところ、以下のページに便利なスクリプトがありましたので、ありがたく使用させていただきました。
http://d.hatena.ne.jp/int128/20080622/1214066340" target="_blank">http://d.hatena.ne.jp/int128/20080622/1214066340
上記ページのスクリプトを使い、./createinitramfs /usr/local/bin/mpdとするとmpdが依存するファイルを./initramfsに集めてきてくれます。
そこに作成済みのinitramfsを展開し、再度initramfsを作成
cd ./initramfs
zcat ../initramfs-$kernelversion | cpio -id
find . | cpio -o -H newc | gzip > ../initramfs-$kernelversion
次にu-bootで読める形式のuInitrdを作成しました。
cd ..
mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n initramfs -d ./initramfs-$kernelversion ./uInitrd
> まっ、音楽聞いてる時にファイルの転送(音楽データ以外の)などするアホ以外は問題は出ないと思います。
僕ですね(^^;;;。atom機を使い、実機でビルドしながら音楽を聞くなんてよくやっていましたから。NewAlixだとほとんど問題は出ませんね(^^;;;。
> 以下のページに便利なスクリプトがありましたので、ありがたく使用させていただきました。
これは重宝しそうですね。情報ありがとうございました。
TinyCoreで音を出してみましたが、Archと大して変らないと思いました。面倒くささを考えるとArchで十分という感じですね。
問題はTinyCore、Arch共に共通なのですが、DSDネイティブ再生すると異常にcpu負荷が上がることです。wavだと1%位なのにdsd64で20%位にハネ上がります。何でですかね。しかもVoyageMPDだとこの現象は発生しません。自力でmpdサーバが動作するrootfsを作ろうとすると呪われるようです(^^;;;。x86の呪いだなぁ。不思議ですねぇ。
ただ、ノイズとか、音切れにはなりません。このあたりもarmと違うのですが、謎だなぁ。
久しぶりにArchを使おうかと、/dev/mmcblk0p2にdebianとし/dev/mmcblk0p3にArchとして、それぞれのboot.scrを作りましたが、マルチbootが失敗します(root=/dev/mmcblk0p3にしてもdebianが上がる)
現在、調査中です・・・
解決
・マルチブートの件は解決しました
u-bootが良くなかったようです。
http://odroid.us/odroid/odroidu2/debian/debian-wheezy-base-7.1.0.img.xz" target="_blank">http://odroid.us/odroid/odroidu2/debian/debian-wheezy-base-7.1.0.img.xzのu-bootは正常に動作します。
使用しているu-bootは以下のもののようです。
http://odroid.us/mediawiki/index.php?title=Main_Page" target="_blank">http://odroid.us/mediawiki/index.php?title=Main_Page(このサイトは色々参考になります)
http://odroid.us/mediawiki/index.php?title=U-boot_Topics" target="_blank">http://odroid.us/mediawiki/index.php?title=U-boot_Topics
・kernel 3.14-rc3
以下URLのG16が動きます。
ただしu-bootが古いので、cuboxと同じようにdtb付きのzImageを作成する必要があります。
cat arch/arm/boot/zImage arch/arm/boot/dts/exynos4412-odroidu2.dtb > ../zImage てな感じです。
3.14-rc3(実際はrc4に近いrc3です)とG16のdiffをとって、patchを作成済みです。
作成したpatchは3.14-rc5にも綺麗に当たり、buildしたkernelも動いています。
未解決
マルチブートは出来るようになったのですが、Archの動作がおかしいです。
そもそもethに使っている石がsmc95xxで、MAC addressを保存するEEPRORMがないのが原因のようです。
MAC addressが保存されていないと、例えばDHCPでアドレスを受ける場合、毎回アドレスが変わってしまいます。
そのためか、しばらく動かしていると通信が途絶えてしまいます。
原因は分かっているのですが、Archに執着がないので、ほったらかしです。
これについては、以下が参考になるかもしれません。
http://archlinuxarm.org/forum/viewtopic.php?f=47" target="_blank">http://archlinuxarm.org/forum/viewtopic.php?f=47&t=6164&start=10
http://archlinuxarm.org/forum/viewtopic.php?f=48" target="_blank">http://archlinuxarm.org/forum/viewtopic.php?f=48&t=3133
まずdebianで動作確認し、その後Archに挑戦されたほうが良いと思います。
もしかしたらG16のdeconfigのようにboot optionを設定したkernelは問題ないかもしれません(exynos4412-odroidu2.dtsの中でMAC addressを設定しているので)
その他
参考になるサイト
raspiにも参考になります。
http://hanposaki.blog.so-net.ne.jp/" target="_blank">http://hanposaki.blog.so-net.ne.jp/
とりあえずはここ
http://odroid.us/mediawiki/index.php?title=Main_Page" target="_blank">http://odroid.us/mediawiki/index.php?title=Main_Page
シリアル通信に必要なdriverやセキュリティ上必要な初期設定が参考になります。
http://gadget.ichmy.0t0.jp/odroid/" target="_blank">http://gadget.ichmy.0t0.jp/odroid/
以下に必要な物をUPしておきます。
3.8.13.16と18は、なんとなく音が違うように感じます。ただ現在のgitには3.8.13.16はありません(必要であればzipのurlをupしますので、その時は書き込んでください)
https://drive.google.com/file/d/0BxnbJHx0_xurQWxUT0lzaERCaGc/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurQWxUT0lzaERCaGc/edit?usp=sharing
https://drive.google.com/file/d/0BxnbJHx0_xurZkRhZ1UyaHRlYVk/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurZkRhZ1UyaHRlYVk/edit?usp=sharing
(このpatchはrc3には当たりません。理由は前述のとおりです)
お待ちしてます。
Archは相変わらずなので、syuさんが成功したら教えて下さい。
patchにおかしなところがありました。
gpu関係で、かつコメント部なので問題はないと思いますが、修正お願いします。
+ * Interface for the broadcast unit on Mali-450.
+ *
+ * - Represents up to 8 テ&#56471; (MMU + PP) pairs.(文字化けしてる)
を以下のように変更してください。
+ * Interface for the broadcast unit on Mali-450.
+ *
+ * - Represents up to 8 x (MMU + PP) pairs.
また、rc6にはpatchが当たらない部分があるようです。
調べたところ、以下の部分は公式3.14-rc6で修正されたみたいです。
3.14-rc6以降に当てる場合は、patchから以下の部分を削除してください。
ここから diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
ここまで /*** clk rate change notifiers ***/
3.14のRTパッチが出てたので作ってみました。
https://drive.google.com/file/d/0BxnbJHx0_xurWmc1OHFtTEhVdlk/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurWmc1OHFtTEhVdlk/edit?usp=sharing
bbb-i2s接続の試行も一段落したので、ぼちぼちodroid-u3も試してみます。実はケープも入手済みです。
>実はケープも入手済みです
BBBのケープですか?
それとも、こっちのやつですか?
http://www.hardkernel.com/main/products/prdt_info.php?g_code=G138760240354" target="_blank">http://www.hardkernel.com/main/products/prdt_info.php?g_code=G138760240354
そっちの方です。U3 IO Shield
何に使うかまでは、まだ考えていません。
あとは、
http://www.hardkernel.com/main/products/prdt_info.php?g_code=G134111883934" target="_blank">http://www.hardkernel.com/main/products/prdt_info.php?g_code=G134111883934
http://www.hardkernel.com/main/products/prdt_info.php?g_code=G138750628451" target="_blank">http://www.hardkernel.com/main/products/prdt_info.php?g_code=G138750628451
syuさん
fuse実験面白そうですね。そのうち試してみるつもりです。
只今、new alixが届いて、そちらに熱中しているので、暫く保留です。
new alixですが、なかなかいいです。音の傾向は旧alixとはかなり異なり、cuboxやbbbに近いです。雰囲気で聴かせるのでなく、リアルさ重視ですね。
dsd再生で負荷は1%以下。安定度は抜群ですね。今のところブラシーボもあるが、cuboxを捨てて、new alixにしようかという感じです。
new alixも楽しそうですね。fuse/sshfsはかなり音が変わりますよ。特にnasのsamba止めると効果的な気が。new alixでfuse/sshfsを試すも手かも^^
TDP低いのが好みですが、やっと発売されたgalileo/quarkは意外と熱くなるらしいし、i586なんですよね。i686しか対応しないarch linuxは使えないことはないけど、いろいろ難が。
new alixの電源はどうされてますか。
QNAPにopensshをインストールして、userでlogin出来るようになりました。
sshfs hoge@192.168.1.199:/share/homes/hoge/ /mnt/nas01
が・・・
/etc/init.d/mpd startでPermission deniedだそうです。
QNAP面倒くせ~です。
YAMAHA PA-6を使っています(12V2A)。差込み口サイズの変換アダプタが必要ですが。
熱さはBBBより低いです。基盤に触ってもちょっとあったかいというレベルですね。
ありがとうございます。
1.boot切替えは時間をかかりますが勉強したいと思います。
2.BBBの動画+音声再生について教えてください。
(1) MP4,MOV,AVI の再生用プレーヤは何が良いのでしょうか?
LXDEベースで全画面表示、音声が途切れなければ良いのですが、無理でしょうか?
(2)私の所では、
OS:debian Player:VLC Sound:ALSA でMP4ファイルを再生したのですが 標準画像サイズでやっと再生できる程度、画像サイズを広げると動画が停止してしまい、動画が停止するために音声の途切れが改善して聞こえるような状態です。
音声出力はHDMIですが、いつも音声が途切れるバリバリ音が出ています。みなさんすごくサウンドにこだわられていますが、映像再生は問題ないのでしょうか? よろしくお願いします。
dai
はじめてまして。
energizerというノートパソコンなどに使用するバッテリーパックを使用しています。旧alixから使用していました。(水色:18V程度)new alixは差し込み口が内径2.5に変更されましたが,付属のコードで対応できました。
new alixの設定ですが,yoさんの記事を参考に優先度の設定を試みましたが,irq 関係の優先度設定が反映されていません。yoさんは問題ありませんか。
>音の傾向は旧alixとはかなり異なり、cuboxやbbbに近いです。雰囲気で聴かせるのでなく、リアルさ重視ですね。
同感です。緻密さと力強さを備え,旧alix,cuboxを確かに超えていると思います。(bbbは未経験)
> new alixの設定ですが,yoさんの記事を参考に優先度の設定を試みましたが,irq 関係の優先度設定が反映されていません。yoさんは問題ありませんか。
ssdにインストールされているVoyageはnoneRTカーネル(3.10)ですので、rt関連の設定はできません。rt化するにはカーネルを入れ換え、mpdにyanさんのパッチをあて、ビルド/インストールする必要があります。そのうちトライするつもりですが、クロス接続のシリアルケーブルがないと話にならないので、只今注文しているところです。
ここはaudioに特化した板なので、Linux+映像について詳しい方はいらっしゃらないかもしれません。
私もwin7上で(VirtualBoxのhost OSとして)linuxを使うことがありますが、映像はVNC使うくらいですので詳しくないです。
BBBでGUIを使われている方も世間には大勢いらっしゃるかもしれませんが、個人的な意見としては、GUIを使うには役不足だと思います。Cubox-iやodroid-u3などのクアッドコアでも難しいのではないでしょうか。
daiさんの要求を満たす性能は、通常のPCでないと難しいと思います。core2duo以降のcpu性能があればそこそこ動くと思いますよ。
new alixが到着したんですね。
メディアはSSDのみなんですか?もしそうであれば、そのSSDは交換(または取り外し)は可能なのでしょうか?
sshfsの設定出来ました。
QNAPの場合、admin以外のloginが出来ませんので、先に書いたようにopensshをインストールすることで対処しました。
出音は、syuさんが仰るとおりだと思います。
ただ、sshfsの使い方がよくわからないので、Permissionがらみで苦労しています。
sshfs -o idmap=userをrootで実行すると、当然でしょうけどUIDはrootになってしまいます。
mpd.confの設定をrootにして起動すると再生は出来るので、目的は達成できるのですが、一般ユーザーでNASに書き込み出来ません。
一般ユーザーでsudo sshfs -o idmap=userすればいいのですが、fstabにどのように書けばいいのか・・・
それとsshfsでつないだ場合、cifsでmountしたときに比べて、負荷が10%ほど高いです。
ボードはこのページ
http://pcengines.ch/apu.htm" target="_blank">http://pcengines.ch/apu.htm
にあるものです。
> メディアはSSDのみなんですか?もしそうであれば、そのSSDは交換は可能なのでしょうか?
Voyage Shopから送られて来たものには16GBのssdが付けられています。m-SATAという規格ですが交換は可能だと思います。ただ、基盤に直接差し込むという形ですので、交換して使うという使い方は標準では無さそうですね。
上記ページに書かれていますがUSB、iPXEからのブートも出来るようなので、そちらにシステムをバックアップ、リカバーして、ssdの内容を入れ換えて使うということになるのではないかと思います。
しかし、ディスプレイはつながらないので、どうやってブート先を指定するのかよく分からないのですよね。ご存じの方、教えていただけませんか。
[3924]の段階では自動マウントされていませんでした。これを自動マウントにします。
cubox-serverにbbb-archからrootで接続する場合、/etc/fstabの記載は[3924]のままでOKです。
# nano /etc/fstab
---------
# sshfs to cubox-arch-server
root@192.168.ab.cd:/Public/Music /music fuse.sshfs defaults,_netdev 0 0
---------
ssh暗号の公開鍵をサーバに設定する必要があります。
これで、boot時に自動マウントされ、mpdも問題なく起動しました。
opensshが既に入っていると思いますが、確認してください。
クライアント側では sftp が必要なので、bbbの/etc/ssh/sshd_config で、末尾に以下の記載があるか確認。
------
Subsystem sftp /usr/lib/sftp-serve
------
サーバ側で公開鍵を受け入れる設定は、/etc/ssh/sshd_configをrootで編集します。
[サーバ側]
# nano /etc/ssh/sshd_config
----
# Authentication:
#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
RSAAuthentication yes # を外す
PubkeyAuthentication yes # を外す
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys #を外す
----
引き続きサーバ側で
# which sshd
/usr/sbin/sshd
# /usr/sbin/sshd -t テスト:エラーメッセージが出なければOK
sshdを再起動。
# systemctl restart sshd
クライアント側で鍵を作成します。音楽専用サーバなのでパスフレーズは無し。
[クライアント側]
# ssh-keygen -t ecdsa -b 521 :521bitの ecdsa 鍵作成コマンド
Generating public/private ecdsa key pair.
Enter file in which to save the key (/root/.ssh/id_ecdsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_ecdsa.
Your public key has been saved in /root/.ssh/id_ecdsa.pub.
The key fingerprint is:
2c:5d:ae:c2:12:bd:95:04:5d:d8:bd:20:0a:89:d6:8e root@sd-arch
The key's randomart image is:
+--[ECDSA 521]---+
| o ... +.. |
| o + .+ o . |
| . o . ..... . |
| E ...+ + . |
| . o S . |
| o + . |
| . + . |
| . . |
| |
+-----------------+
------
鍵を確認
# ls -l /root/.ssh
合計 12
-rw------- 1 root root 361 1月 13 05:26 id_ecdsa
-rw-r--r-- 1 root root 266 1月 13 05:26 id_ecdsa.pub
-rw-r--r-- 1 root root 570 1月 12 13:47 known_hosts
作成した公開鍵をサーバに登録
# ssh-copy-id -i ~/.ssh/id_ecdsa.pub root@192.168.ab.ef [サーバのアドレス]
これでリブートすれば、/musicが自動マウントされ、mpdも走っているはずです。
相変わらず、突然のrebootが発生していますが、今起きたのは8時間近く経過後でした。上記のように自動マウント設定してあると、rebootされても自動的に同じ場所から再生再開しますが・・・。
qnapの設定は当方ではまだできていません。
ipkg update
ipkg install openssh openssh-sftp-server
ln -s /opt/libexec /usr/
とやってから sshd_config も編集したんですが・・・
>sshfsでつないだ場合、cifsでmountしたときに比べて、負荷が10%ほど高い
sshが頑張ってる分、負荷は増えるんじゃないかと思いますが、どうですかね。
音さえ良ければ^^
わたしの環境でのtopです。
16/44.1再生中
top - 14:43:19 up 59 min, 1 user, load average: 0.03, 0.08, 0.06
Tasks: 69 total, 1 running, 68 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.4 us, 2.8 sy, 0.0 ni, 91.2 id, 0.0 wa, 0.0 hi, 1.6 si, 0.0 st
KiB Mem: 513356 total, 508716 used, 4640 free, 9036 buffers
KiB Swap: 0 total, 0 used, 0 free. 433680 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
61 root -56 0 0 0 0 S 15.2 0.0 9:07.58 irq/35-musb+
245 root -54 0 62680 59860 15364 S 1.3 11.7 0:42.31 mpd
261 root 20 0 7412 3728 2032 S 1.3 0.7 0:47.56 ssh
75 root -54 0 0 0 0 S 0.7 0.0 0:25.53 irq/57-4a10+
295 root 20 0 64048 1568 640 S 0.7 0.3 0:14.70 sshfs
221 root 20 0 4788 3544 476 S 0.3 0.7 0:04.70 haveged
432 root 20 0 6052 1296 1020 R 0.3 0.3 0:00.05 top
24/192再生中
top - 14:48:25 up 1:04, 1 user, load average: 1.02, 0.37, 0.18
Tasks: 69 total, 1 running, 68 sleeping, 0 stopped, 0 zombie
%Cpu(s): 18.6 us, 11.4 sy, 0.0 ni, 65.0 id, 0.0 wa, 0.0 hi, 4.9 si, 0.0 st
KiB Mem: 513356 total, 380996 used, 132360 free, 8832 buffers
KiB Swap: 0 total, 0 used, 0 free. 305400 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
61 root -56 0 0 0 0 S 17.2 0.0 9:56.77 irq/35-musb+
245 root -54 0 62820 59984 15364 S 11.2 11.7 0:54.21 mpd
261 root 20 0 7412 3728 2032 S 5.3 0.7 0:56.51 ssh
75 root -54 0 0 0 0 S 2.6 0.0 0:30.38 irq/57-4a10+
295 root 20 0 64052 1572 640 S 1.7 0.3 0:17.55 sshfs
11 root 20 0 0 0 0 S 0.3 0.0 0:00.06 rcu_preempt
17 root 20 0 0 0 0 S 0.3 0.0 0:01.84 kworker/0:1
76 root -51 0 0 0 0 S 0.3 0.0 0:07.25 irq/58-4a10+
433 root 20 0 6052 1296 1020 R 0.3 0.3 0:00.34 top
opensshのインストールまで出来ているのであれば、以下が参考になると思います。
http://carat360.blog.fc2.com/blog-entry-47.html" target="_blank">http://carat360.blog.fc2.com/blog-entry-47.html
New Alixの解説、ありがとうございます。
>どうやってブート先を指定するのかよく分からないのですよね
/etc/default/grubのGRUB_DEFAULTを書き換えて、update-grubしかないんでしょうね。
賢いスクリプトを期待してます。
ポインタありがとうございました。あとで試してみます。
>fstabにどのように書けばいいのか・・・
archのwikiにあったのですが、fstabで自動マウントするとrootでマウントされるので一般ユーザでのアクセスで不都合が・・・等、書いた部分があります。
https://wiki.archlinux.org/index.php/sshfs#Secure_user_access" target="_blank">https://wiki.archlinux.org/index.php/sshfs#Secure_user_access
長たらしい/etc/fstabの例文が書いてありますが、使えませんか?
/etc/fstab
USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY /LOCAL/MOUNTPOINT fuse.sshfs noauto,x-systemd.automount,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N,gid=USER_GID_N 0 0
わたしは不精者なのでrootで通してますが・・
ありがとうございます。
オプションつけまくりですね。今度やってみます。
いろいろありがとうございました。
音声信号をHDMIモニターに波形をオシロのように描画することを考えていたのですが難しい所がありますね。
PCならフリーウェアがいくつもあって、USB接続ADCもいっぱいあるのですが値段がBBBの倍以上するので駄目ですね。
ボードコンピュータでどこまでできるか限界に挑んでみたいと楽しみながらやってみます。
Archは、すでに3.13なのでしょうか。
ちょっとだけ聞いてみましたが、音は悪いです。なんだか歪っぽいです。
春には3.14でしょうから、それまでに良くなってるといいんですね。
sshfs -r -o nolocalcaches,cache=no hoge@192.168.1.xx:/share /xxx
のようにオプション指定をすると曲ファイルを転送時に
マウント側のOSのキャッシュに積まれなくなります。
実は私はMacで試して効果を確認したのですが音質はかなり良くなりました。
Voyageでもひょっとすると効果があるかもしれません。お試しください。
昨年末以来、3.12.6-rt9のカーネルとrt化したmpd-0.18.7の環境で、PCMやDSD128を含めBBBでの再生にはもう何も不満はないという状態の環境を続けてきましたが、先程Nelsonさんのところを覗いたら3.12.9のソースが出ていたので早速ダウンロード、これをkernel.orgから持ってきたrt patchでrt化したものをビルドして現在チェック中です。
Linux runeaudio 3.12.9-rt13_BBB_0206_RT-bone12 #3 SMP PREEMPT RT Thu Feb 6 21:09:42 JST 2014 armv7l GNU/Linux
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
65 root -56 0 0 0 0 S 20.7 0.0 8:35.49 irq/35-musb+
82 root -54 0 0 0 0 S 4.3 0.0 1:45.73 irq/57-4a10+
408 root 20 0 0 0 0 S 2.6 0.0 1:05.40 cifsd
648 mpd -45 0 91768 87392 36472 S 2.6 17.0 0:58.76 mpd
83 root -54 0 0 0 0 S 1.6 0.0 0:43.79 irq/58-4a10+
645 mpd -45 0 91768 87392 36472 S 1.6 17.0 0:39.38 mpd
918 root 20 0 4480 1280 988 R 1.0 0.2 0:11.68 top
644 mpd -45 0 91768 87392 36472 S 0.3 17.0 0:04.69 mpd
1051 root 20 0 0 0 0 S 0.3 0.0 0:00.77 kworker/0:1
3.12.6-rt9同様、すこぶる安定した状態で再生できていますが、音質の評価については主観が入るので安易な記載は避けます。
RT化したカーネルと関連ファイルを以下のURLにおきましたので、興味のある方はご検証下さい。PCM再生については問題ないと思いますが、DSD、特にDSD128の再生には私が#3745の投稿でお示ししたようなI2S対応のそれなりのDDCが必要かもしれません。
http://lydia.concorde.gr.jp/luke/3.12.9-rt13.tar.gz" target="_blank">http://lydia.concorde.gr.jp/luke/3.12.9-rt13.tar.gz
#先日3.14.0-rc1もビルドしてみましたが、こちらはまだまともな音が出ていません。tinkerさんの方はいかがですか。
twl
私もrt11,rt13は作ってみたのですが、rt9と比べて大きな差異は感じられませんでした(rt9のほうが好みに近いかなくらい)
>先日3.14.0-rc1もビルドしてみましたが
まだ3.14は試していません。
以前書いたように、3.13.rc8がバニラなソースでboot出来たので、3.14がリリースされるのを楽しみに待ってます。4月初旬頃ですかね。
3.13.rc8も音は出ましたが、いい音ではなかったです。3.14正式版も3.12.xのように、いい音になるといいですね。
私も、3.12.9-rt13-fuseを作って見ました。私の環境では、3.12.6rt9はcifsでもfuseでも定期的にrebootが発生するので、試してみていますが、長時間テストはまだです。
[root@arch-fuse ~]# uname -a
Linux arch-fuse 3.12.9-rt13_fuse+ #3 SMP PREEMPT RT Sun Feb 9 13:18:04 JST 2014 armv7l GNU/Linux
dsd128演奏中
top - 14:35:38 up 20 min, 1 user, load average: 0.34, 0.21, 0.17
Threads: 82 total, 1 running, 81 sleeping, 0 stopped, 0 zombie
%Cpu(s): 17.6 us, 18.0 sy, 0.0 ni, 57.4 id, 0.4 wa, 0.0 hi, 6.6 si, 0.0 st
KiB Mem: 513356 total, 348012 used, 165344 free, 5444 buffers
KiB Swap: 0 total, 0 used, 0 free. 275588 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
62 root -56 0 0 0 0 S 19.4 0.0 2:45.54 irq/35-musb+
257 root 20 0 7424 3728 2032 S 10.4 0.7 0:18.48 ssh
76 root -54 0 0 0 0 S 5.2 0.0 0:10.71 irq/57-4a10+
296 root -54 0 63420 60264 15680 S 2.6 11.7 0:05.99 mpd
77 root -51 0 0 0 0 S 1.3 0.0 0:02.53 irq/58-4a10+
294 root -53 0 63420 60264 15680 S 1.3 11.7 0:04.13 mpd
295 root -50 0 63420 60264 15680 S 1.3 11.7 0:05.43 mpd
280 root 20 0 63868 1652 600 S 1.3 0.3 0:02.20 sshfs
298 root 20 0 63868 1652 600 S 0.6 0.3 0:00.60 sshfs
ここに置いてますので、よろしければお試し下さい。
https://drive.google.com/file/d/0B1n2sZGxAleMOGVSd1JndXVVcVU/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0B1n2sZGxAleMOGVSd1JndXVVcVU/edit?usp=sharing
定期的にリブート起こすのは、発熱が原因なんですかね。
今は常時1Gで動かしてますか?もしそうであれば、cpufreqdをinstallして、設定をオンデマンドで0.8G~1.0Gとかにすれば、いくらか熱対策になるかもしれないですね。
一応、
# cpupower frequency-set -f 0.90GHz
とやってはいるんですが、偶発的にrebootしています。
連続10時間後くらいが多く、時間が長すぎるので発熱ではなさそうです。bbbの個体差かともう1台注文しようとしたら、売り切れで、今は入手難なんですね。
次の「当たって砕けろ」は何にしましょう。
twlさんご紹介のI2S直結も良さそうですね。
皆様
bbb-1209rt13-fuseと比較するため、fuseを外してcifsだけ有効にしたbbb-1209rt13-cifsもお試しいただけるようにしました。
https://drive.google.com/file/d/0B1n2sZGxAleMU2FhSWlnMDNHdlk/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0B1n2sZGxAleMU2FhSWlnMDNHdlk/edit?usp=sharing
両者はかなり音が違います。私の主観では、繊細で細身で華麗なcifsに対して、fuseは繊細で華麗ながら肉感的で充実感がある気がします。
fuseを使用する理由は、暗号化によってノイズと信号との相関が減ることを期待するからですが、fuseとcifsで聴こえる音楽を比較すると、その予測が少なからず的中しているように感じています。特にボーカル、木管楽器、ピアノ等で差が大きいように感じます。
1206rt9と1209rt13の差は、fuse使用では大きいと思います。1209rt13が明確に優れています。
熱じゃないんですね。
私も予備が欲しいんですが、売り切れ中ですか。
>次の「当たって砕けろ」は何にしましょう。
つなぎで、odroid-u3ポチッとしちゃいました。週末くらいには届くと思います。届いたら、砕け具合のリポート予定です。
ODROID-U3 Community Edition $59.00
ODROID-U3 Case $4.00
USB-UART Module Kit $15.00
5V/2A Power Supply $5.50(2.5mm/0.8mmと特殊な形状みたいなので)
Backup Battery $2.50(RTC用)
DC Plug and Cable Assembly $1.25(砕けなかった時は使いたい)
Goods total : $87.25
Shipping : $25.00
本当は、もう少しパワーのあるBBBが出てくれれば良いんですけどね。
3.12.12+rt19をUPしました。
https://drive.google.com/file/d/0BxnbJHx0_xurUmJSRHNPOFEzTkE/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurUmJSRHNPOFEzTkE/edit?usp=sharing
BBBは聴き疲れするって言う話もあったので、今回はkernelの設定を変更した2種類を作成しました(IO Schedulerのみ変更。zImage-DL,zImage-CFQ)
ファイル名をzImageに変更して使用して下さい。
ぉ!最新版。有難く頂きます。
githubはまだ3.12.9ですが、独自のパッチですか。
うちではdebでもarchでも10時間ほどでreboot突発してますが、消えると嬉しいです。
BBBのtype-Bも入手したんですが、reboot突発は不変でした。
少し前に、Nelsonさんのところで落としたソースで作成しました。
モジュールですが、fuseも使えるようにしています。
最近ODROID-U3ばっかり聞いているんですが、久しぶりにBBBを聞くと、やっぱりBBB良いなって思いますね。
U3は3.8の頃のBBBとよく似たかんじの音です。
音数はU3のほうが多く、低音はBBBよりエネルギーがあります。
ただ少し乾いた感じで、BBB+3.12.xみたいな艶は足りないですね。
U2/U3用の3.14を作成されてる方がいらして、とりあえずdmesgを吐くくらいまでは動くようになってます。
これがちゃんと動くようになれば、BBBと同じくらいに成れるかなって期待しています。
>音数はU3のほうが多く、低音はBBBよりエネルギーがあります。
ただ少し乾いた感じで、BBB+3.12.xみたいな艶は足りないですね。
BBB+3.12.xの艶は、できれば排除したいと思ってます。
すると、私の好みはORDOID-U3なのかも。どうしようかなあ♪
ところでbbbですが、
# git clone git://github.com/RobertCNelson/linux-dev.git
# cd linux-dev/
# git checkout origin/am33x-v3.12 -b tmp
# ./build_kernel.sh
とやると、今は3.12.13になります。
3.12.12に戻すにはどうすればいいんでしょう。
# git branch
master
* tmp
となっていて、
# git checkout origin/am33x-v3.12.12 -b tmp
と無理やりやってみたけど、だめでした。
fatal: Cannot update paths and switch to branch 'tmp' at the same time.
Did you intend to checkout 'origin/am33x-v3.12.12' which can not be resolved as commit?
ググってみたけど、判りません。
>BBB+3.12.xの艶は、できれば排除したいと思ってます
Cuboxも3.12.xにすると同じような艶が乗るので、3.12.xでは無理かもしれないですね。
もしかしたら最近の3.8.13.xxならrtパッチが当たるかもしれないので、そっちも試したほうがいいかもですね。
>3.12.12に戻すにはどうすればいいんでしょう。
version.shを修正してから./build_kernel.shすればいいみたいです。
新カーネルの公開ありがとうございます。まだ試してはいませんが、DeadlineとCFQの両方を公開されたのは正解でしょうね。他の版でもかなり差はありますから。僕の好みはDeadlineです。こちらの方が優しい音がするので。
試してみましたが、3.8にはrtパッチはうまく当たらないですね。
U3は3.14rc3が動くようになりましたが、今のところ3.8.13.16rtのほうが圧倒的に良いようです。
yoさん
私の環境は、音量をあまり上げられないしDACが根暗なので、Deadlineが好みです。
Nelsonさんのgitにrtパッチが含まれるようになったようです。
https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.14/patches/rt" target="_blank">https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.14/patches/rt
使用するには、patch.shを以下のように編集する必要がありそうです。
下から3行目を以下のように変更し、いつもの様に./build_kernel.sh するようです。
#rt → rt (行頭の#を削除)
3.14が出た時にkernelを作ってみたのですが、うまく再生できなかったので、まだ3.12.13を使っています^^;