twlさん、rt/none-rtとAmanero/hiFaceの比較実験ありがとうございました。
usb2.0(musb-hdrc.1.auto)の割り込み回数ですが、cuboxでも同じようなもの(ehci_hcd:usb1)ですから、bbbだけ異常に多いとはいえないと思います(下の出力はcuboxのdsdファイル再生開始後10分位の値です。twlさんのデータと比較するとnasの割り込み回数にかなり差がありますが、nasの違いが原因ですかね)。また同じハードとのやりとりであれば、rt/none-rtで差がないのは当然だと思います。
root@(cubox):~# cat /proc/interrupts
CPU0
0: 31405 orion_irq orion_tick
7: 711 orion_irq serial
11: 0 orion_irq mv64xxx_i2c
24: 1464868 orion_irq ehci_hcd:usb1
25: 0 orion_irq ehci_hcd:usb2
29: 421679 orion_irq eth0
30: 680 orion_irq orion-mdio
31: 0 orion_irq f1030000.crypto
35: 6487 orion_irq mmc0
39: 2 orion_irq f1060800.dma-engine
40: 2 orion_irq f1060800.dma-engine
42: 2 orion_irq f1060900.dma-engine
43: 2 orion_irq f1060900.dma-engine
62: 0 orion_irq sata_mv
76: 0 f10d0400.gpio mmc0
Err: 0
Amanero/hiFaceで割り込み回数に差がないのは意外でしたが、まあ同じusb2.0インタフェースなので差は出ないということですかね。
おっしゃるように割り込み回数とcpu負荷には相関はないと思います。
問題は標準のusbドライバの動作をrt化するための処理(irq/35-musb-hdr)にバグがあり、標準のドライバを使う時だけ無駄な処理でcpu負荷を食いつぶしているように見える点です。
謎なのは、一つ前のメッセージに引用しましたが、hifaceのrt対応プロセスはirq/35-musb+と表示され、xmosのrt対応プロセスはirq/35-musb-hdrと表示されることです。これは違うプロセスと考えて良いのですかね。だとすると専用プロセスのirq/35-musb+はcpuが適切に使われ、標準プロセスのirq/35-musb-hdrはcpuの暴走を引き起こしているということになるのですが、よく分からないですね。
Amaneroだとどういう具合に表示されますか。
実験中ですが、
CONFIG_SLUB_CPU_PARTIAL=yを# CONFIG_SLUB_CPU_PARTIAL is not setに変更したほうが、BBB,wandboardとも安定するみたいです。
私の環境で3.12rtは、rtopのかかったmpdだと概ね2日くらいで反応しなくなっていたんですが(mpdが落ちる、sshでloginができない、pingは通る)、この2.5日上記状態はおきていないです。
まあ、もう少し様子を見てみます。
yoさん
> 謎なのは、一つ前のメッセージに引用しましたが、hifaceのrt対応プロセスはirq/35-musb+と表示
> され、xmosのrt対応プロセスはirq/35-musb-hdrと表示されることです。これは違うプロセスと考え
> て良いのですかね。
これはarchlinuxにおけるターミナルコンソール上での略式表示のようで、debianでは生じません。私だけの環境かどうか分かりませんが、設定したコンソール上の一行の文字数を越えると超過分が"+"で置換されます。実質的にはmusb-hdrと同じ意味とお考え下さい。
twl
twlさん
> 私だけの環境かどうか分かりませんが、設定したコンソール上の一行の文字数を越えると超過分が"+"で置換されます。実質的にはmusb-hdrと同じ意味とお考え下さい。
なるほど、そういうことでしたか。
だとすると、標準のデバイスドライバ(snd-usb-audio.ko)とrtカーネル用のデバイスハンドラ(irq/35-musb-hdr)の組み合わせで、cpuの暴走が引き起こされているということになりますね。
snd-usb-audio.koとsnd-usb-hiface.koでは割り込み回数は似たようものですが、割り込み内容に違いがあり、標準ドライバの時だけ不要なcpu走行が発生しているのですかね。
BBB及びwandboardとも私の環境では不具合はなくなりました。
ただ、いつもの通りDSDは未確認ですが・・
またwandboardでは、usbの優先度をrtにするとrtopのmpdでも途切れはなくなりました。
BBBでも有効かもしれません。
変更点
CONFIG_SLUB_CPU_PARTIAL=y を # CONFIG_SLUB_CPU_PARTIAL is not set に変更
BBBについては、musbに対し12.2ではいくつかのpatchが当てられているようなので、その分を12.1に反映しています。
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/log/?id=refs/tags/v3.12.2" target="_blank">https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/log/?id=refs/tags/v3.12.2
試聴はmpdはmpd-dsd-0.17.6+rtopを使用し、priorityは、52,47,53固定です。
BBBについては、下記アドレスにUPしました。
なお、combo384でちょっときつく感じるとsyuさんがおっしゃってたので、CFQのimageも入れておきます。
https://drive.google.com/file/d/0BxnbJHx0_xurVXpmWnVBWEZtMms/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurVXpmWnVBWEZtMms/edit?usp=sharing
1.BBB(16/44.1再生時)
top - 19:23:30 up 3 days, 10:08, 1 user, load average: 0.14, 0.11, 0.13
Tasks: 84 total, 1 running, 83 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.5 us, 1.4 sy, 0.0 ni, 94.8 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem: 511424 total, 376956 used, 134468 free, 3760 buffers
KiB Swap: 0 total, 0 used, 0 free, 301132 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
64 root -56 0 0 0 0 S 4.6 0.0 219:30.71 irq/35-musb-hdr
2822 mpd 20 0 78380 74m 23m S 2.6 14.9 41:24.20 mpd
2991 root 20 0 4200 1236 884 R 1.0 0.2 7:31.07 top
78 root -51 0 0 0 0 S 0.7 0.0 25:55.87 irq/57-4a100000
3 root -2 0 0 0 0 S 0.3 0.0 2:37.97 ksoftirqd/0
79 root -51 0 0 0 0 S 0.3 0.0 11:50.39 irq/58-4a100000
2.wandboard(24/192再生時)
chrt -f -p 99 `pgrep irq/72-ci_hdrc_`
chrt -f -p 53 `pgrep irq/150-2188000`
top - 19:18:26 up 1 day, 4:38, 1 user, load average: 0.26, 0.25, 0.23
Tasks: 77 total, 1 running, 76 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.0 us, 2.8 sy, 0.0 ni, 91.6 id, 0.2 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem: 1031632 total, 862112 used, 169520 free, 24124 buffers
KiB Swap: 0 total, 0 used, 0 free, 722788 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
25685 mpd 20 0 72184 67m 23m S 12.9 6.7 2:20.00 mpd
68 root rt 0 0 0 0 S 11.9 0.0 194:39.96 irq/72-ci_hdrc_
56 root -54 0 0 0 0 S 1.3 0.0 22:47.62 irq/150-2188000
25721 root 20 0 4200 1184 840 R 1.0 0.1 0:04.84 top
15 root -2 0 0 0 0 S 0.3 0.0 1:55.29 ksoftirqd/1
tinkerさん
> BBBについては、下記アドレスにUPしました。
いつものごとくありがとうございます。3.12.1-rt4_131203のzImageのうちzImage-DLをhiFace/PCM再生で試させていただきましたが、非常に良好な再生音が得られました。topの結果は以下のごとくです。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2402 mpd 20 0 74940 10m 2652 S 6.2 2.2 0:14.52 mpd
64 root -56 0 0 0 0 S 3.3 0.0 0:42.79 irq/35-musb-hdr
2409 root 20 0 2672 1108 784 R 1.0 0.2 0:00.36 top
80 root -54 0 0 0 0 S 0.7 0.0 0:05.64 irq/57-4a100000
1641 root -54 0 0 0 0 S 0.7 0.0 0:04.35 cifsd
81 root -54 0 0 0 0 S 0.3 0.0 0:01.81 irq/58-4a100000
1 root 20 0 1688 644 540 S 0.0 0.1 0:01.55 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root -2 0 0 0 0 S 0.0 0.0 0:01.00 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 posixcputmr/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kclksetdelayd
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kcmosdelayd
tinkerさんのデータ同様、irq/35-musb-hdrの負荷が目立たず、これが再生音の質を左右しているようです。
ついでにAmanero Combo384に変更して同じPCM再生で試しましたが、残念ながら私の環境ではノイズが目立ち、topの結果でも
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
64 root -56 0 0 0 0 S 26.1 0.0 1:17.86 irq/35-musb-hdr
2459 root 20 0 2672 1108 784 R 1.3 0.2 0:00.19 top
2452 mpd 20 0 75908 10m 2608 S 0.7 2.2 0:03.29 mpd
3 root -2 0 0 0 0 S 0.3 0.0 0:01.52 ksoftirqd/0
17 root 20 0 0 0 0 S 0.3 0.0 0:00.79 kworker/0:1
80 root -54 0 0 0 0 S 0.3 0.0 0:08.58 irq/57-4a100000
2295 root 20 0 8556 2716 2108 S 0.3 0.5 0:00.84 sshd
1 root 20 0 1688 644 540 S 0.0 0.1 0:01.59 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
といった具合で、従来通りirq/35-musb-hdrの負荷が目立つ結果となりました。結局DSDであろうとPCMであろうとRTカーネルではこのirq/35-musb-hdrの負荷の具合で音質が決定されるようですね。musbのソースコードに決定的な変化が起きない限り、しばらくはCombo384から離れてhiFace/PCM再生の組み合わせで様子を見ようかなと思っております。
twl
tinkerさん、31201rt4-131203の公開ありがとうございます。
bbb(arch)+uda2=>I2S/DSD=>ait-dacで、とりあえずdsd64とdsd128の動作確認をしてみました。
私の環境ではdsd64は問題なく再生できるようです。1時間弱では中断も起きません。dsd128はノイズは発生しませんが残念ながら中断が頻発しています。dsd64を長時間リピートさせるとdsd128が良くなったりするので、試みてみます。
chrt -f -p 99 `pgrep irq/35-musb-hdr`
これもやってみましたが、変化はなさそうです。
31201rt4-131203-DL
[root@sd-arch ~]# uname -a
Linux sd-arch 3.12.1-rt4_131203 #6 SMP PREEMPT RT Tue Dec 3 19:20:37 JST 2013 armv7l GNU/Linux
dsd64 再生中
top - 23:19:18 up 8 min, 1 user, load average: 0.92, 0.54, 0.30
Threads: 76 total, 1 running, 75 sleeping, 0 stopped, 0 zombie
%Cpu(s): 6.0 us, 28.3 sy, 0.0 ni, 60.1 id, 0.0 wa, 0.0 hi, 5.6 si, 0.0 st
KiB Mem: 511436 total, 443388 used, 68048 free, 6832 buffers
KiB Swap: 0 total, 0 used, 0 free, 372528 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
64 root rt 0 0 0 0 S 31.1 0.0 2:20.25 irq/35-musb+
80 root -54 0 0 0 0 S 3.2 0.0 0:17.83 irq/57-4a10+
295 root 20 0 0 0 0 S 2.6 0.0 0:12.66 cifsd
291 root -54 0 61672 58916 14424 S 2.3 11.5 0:12.02 mpd
290 root -48 0 61672 58916 14424 S 1.6 11.5 0:07.47 mpd
24/176.4 再生中
top - 23:24:55 up 13 min, 1 user, load average: 0.64, 0.66, 0.43
Threads: 76 total, 1 running, 75 sleeping, 0 stopped, 0 zombie
%Cpu(s): 7.7 us, 33.5 sy, 0.0 ni, 49.4 id, 0.0 wa, 0.0 hi, 9.4 si, 0.0 st
KiB Mem: 511436 total, 507012 used, 4424 free, 1820 buffers
KiB Swap: 0 total, 0 used, 0 free, 441276 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
64 root rt 0 0 0 0 S 30.4 0.0 4:03.31 irq/35-musb+
80 root -54 0 0 0 0 S 5.4 0.0 0:31.31 irq/57-4a10+
295 root 20 0 0 0 0 S 4.1 0.0 0:22.35 cifsd
291 root -54 0 61804 58928 14424 S 3.8 11.5 0:21.05 mpd
290 root -48 0 61804 58928 14424 S 3.5 11.5 0:15.50 mpd
289 root -53 0 61804 58928 14424 S 2.9 11.5 0:11.35 mpd
31201rt4-131203-CFQでの再生状態はDLとほぼ同じです。combo384での評価は、後日。
[root@sd-arch ~]# uname -a
Linux sd-arch 3.12.1-rt4_131203 #7 SMP PREEMPT RT Tue Dec 3 19:36:20 JST 2013 armv7l GNU/Linux
-----
[root@sd-arch ~]# cat /proc/asound/cards
0 [EZUSBUDA ]: USB-Audio - EZ_USB(UDA)
Cypress EZ_USB(UDA) at usb-musb-hdrc.1.auto-1, high speed
[root@sd-arch ~]# mpd -V
mpd (MPD: Music Player Daemon) 0.17.6-DSD
tinkerさん、いつもながら、ありがとうございます。
128dsdはuad3のため、駄目なので、それ以外を試してみました。再生そのものは問題なしです。どのファイルもノイズ、音切れ、再生中断などなく、良い音で再生できました。ただ、topの結果は、syuさん、twlさんと同じで、残念ながら相変らずです。
以下topの内容です(音源は全てaitlabo+uda3です。rootfsはdebian。44Kwavはエージング効果が認められるので、5分経過したものも追加しました)。
64dsd
top - 23:58:04 up 3 min, 1 user, load average: 0.84, 0.70, 0.31
Threads: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.2 us, 39.7 sy, 0.0 ni, 52.8 id, 0.0 wa, 0.0 hi, 6.3 si, 0.0 st
KiB Mem: 511424 total, 308952 used, 202472 free, 4348 buffers
KiB Swap: 0 total, 0 used, 0 free, 226348 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
64 root -56 0 0 0 0 S 31.3 0.0 0:52.00 irq/35-musb-hdr
81 root -55 0 0 0 0 S 5.2 0.0 0:11.09 irq/57-4a100000
71 root 20 0 0 0 0 S 4.3 0.0 0:11.58 kworker/0:2
2446 mpd -55 0 85376 81m 22m S 3.1 16.3 0:06.62 mpd
82 root -51 0 0 0 0 S 1.8 0.0 0:05.05 irq/58-4a100000
2445 mpd -50 0 85376 81m 22m S 1.8 16.3 0:04.94 mpd
192Kwav
top - 00:50:47 up 2 min, 1 user, load average: 1.15, 0.58, 0.23
Threads: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.6 us, 47.5 sy, 0.0 ni, 34.6 id, 0.0 wa, 0.0 hi, 12.3 si, 0.0 st
KiB Mem: 511424 total, 280560 used, 230864 free, 4320 buffers
KiB Swap: 0 total, 0 used, 0 free, 198164 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
64 root -56 0 0 0 0 S 30.8 0.0 0:37.14 irq/35-musb-hdr
81 root -55 0 0 0 0 S 8.5 0.0 0:09.61 irq/57-4a100000
71 root 20 0 0 0 0 S 6.6 0.0 0:08.53 kworker/0:2
2447 mpd -50 0 85368 81m 22m S 4.7 16.3 0:05.65 mpd
2448 mpd -55 0 85368 81m 22m S 4.4 16.3 0:05.15 mpd
2446 mpd -53 0 85368 81m 22m S 3.5 16.3 0:04.06 mpd
82 root -51 0 0 0 0 S 2.5 0.0 0:03.67 irq/58-4a100000
44Kwav演奏開始直後
top - 00:34:36 up 3 min, 1 user, load average: 0.44, 0.38, 0.16
Threads: 85 total, 2 running, 83 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.9 us, 25.9 sy, 0.0 ni, 65.9 id, 0.0 wa, 0.0 hi, 2.4 si, 0.0 st
KiB Mem: 511424 total, 157100 used, 354324 free, 4324 buffers
KiB Swap: 0 total, 0 used, 0 free, 75088 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
64 root -56 0 0 0 0 S 28.8 0.0 0:42.62 irq/35-musb-hdr
2448 mpd -50 0 85372 81m 22m S 3.9 16.3 0:04.43 mpd
2595 root 20 0 4232 1280 880 R 1.9 0.3 0:00.75 top
71 root 20 0 0 0 0 R 0.6 0.0 0:01.34 kworker/0:2
81 root -55 0 0 0 0 S 0.6 0.0 0:01.32 irq/57-4a100000
82 root -51 0 0 0 0 S 0.6 0.0 0:00.63 irq/58-4a100000
2449 mpd -55 0 85372 81m 22m S 0.6 16.3 0:00.90 mpd
44Kwav5分経過後
top - 00:38:02 up 6 min, 1 user, load average: 0.71, 0.47, 0.24
Threads: 84 total, 1 running, 83 sleeping, 0 stopped, 0 zombie
%Cpu(s): 7.4 us, 8.9 sy, 0.0 ni, 83.2 id, 0.0 wa, 0.0 hi, 0.5 si, 0.0 st
KiB Mem: 511424 total, 178512 used, 332912 free, 4380 buffers
KiB Swap: 0 total, 0 used, 0 free, 96404 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
64 root -56 0 0 0 0 S 28.4 0.0 1:42.43 irq/35-musb-hdr
2448 mpd -50 0 85372 81m 22m S 2.5 16.3 0:09.68 mpd
2595 root 20 0 4232 1280 880 R 1.9 0.3 0:04.57 top
81 root -55 0 0 0 0 S 0.6 0.0 0:02.91 irq/57-4a100000
2602 root 20 0 0 0 0 S 0.6 0.0 0:00.50 kworker/0:0
82 root -51 0 0 0 0 S 0.3 0.0 0:01.38 irq/58-4a100000
2446 mpd -53 0 85372 81m 22m S 0.3 16.3 0:01.18 mpd
4人のtopの結果で分かることは、snd-usb-audio.koとirq/35-musb-hdrの組み合わせでcpuの暴走が起こるのではなく、snd-usb-audio.koにつながるdac(ddc)により起こるようだということですね。hifaceの場合はドライバも違いますが、tinkerさんの音源は標準のドライバですから。twlさんがおっしゃるようにddc側にcpu暴走を引き起こす要因があるのでしょう。ただ、cpu暴走がそのまま問題を引き起こすということではなく、syuさんや僕の場合のように再生には問題が無い場合もあるということですかね。
topをとった時のdacは何をお使いですか。
昨夜、投稿しましたが、やや自信がないので一旦削除しました。
実は、私の環境では、31200rt2-131118(fd)が、最も良いです。(ダントツだと思います)
音源の奥行き方向、左右方向の位置が最も明確で、音のカタマリを感じさせる正確さがあるように感じます。
31200rt2-131118を基準として、発展させていただけると、私としては、嬉しいのです(^^;;
後追いの他力本願なので、控えめにお願いいたしました。
皆さん、ありがとうございます。
やっぱりDSDは厳しいんですね。どこかの偉い人が画期的なpatchを書いてくれないと難しそうですね。
ただ今回の目的は安定性でしたので、成果はあったかなと思ってます。
topを見ていて気がついたのですが、メモリーのfreeが、時間が経っても130Mくらいで一様です。今までは開放しないとかリークしていたとかしてたんでしょうね。
yoさん
DACはUDAC192です。wandboardの方はX-DDCをかませています。皆さんのような凄いDACは買えません^^;
DSDは、私の聞くようなものが全然無いようでハイレゾの物でも2~3枚しか見当たりません。
DSD対応のDACは何時になったら買う気にさせてくれるんでしょうか。
今回のイメージは、やり過ぎたようでdebianでもちょっとキンキンします。個人的には、rt1で作った最初のものが、癖があるけどギューンって感じで好みなんですが。
追加です
syuさん了解しました。やっぱり気づきますよね。
debianはArchに比べて解像度がイマイチなので、もっともっとって削っちゃうんですよね^^;
tinkerさん
> DSD対応のDACは何時になったら買う気にさせてくれるんでしょうか。
ウーム(同感)ですね。
初期型のps3をもっていないと意味がないですよね。聴く気になるソースが少なすぎると思います。
> DACはUDAC192です。wandboardの方はX-DDCをかませています。
これはハードの差でwandboardの方はX-DDCをかませないとつながらないという意味ですか。
yoさん
>これはハードの差でwandboardの方はX-DDCをかませないとつながらないという意味ですか。
DACの入力は2系統で、USB(96Kまで)と同軸(こっちは192Kまで)なので、USBはBBB専用にしています。
Cuboxは繋ぐ場所がないので、3.10の頃から放ったらかしにしています^^;
wandboardのほうがCuboxより優れてるからとかではなく、単に思い入れの差ですね。
そういえばCubox-iってもう出たんですかね?
tinkerさん
> DACの入力は2系統で、USB(96Kまで)と同軸(こっちは192Kまで)なので、USBはBBB専用にしています。
なるほど、そういう使い方をされているわけですか。僕のデータと比較すると
44KHzWav
UDAC192
64 root -56 0 0 0 0 S 4.6 0.0 219:30.71 irq/35-musb-hdr
uda3
64 root -56 0 0 0 0 S 28.4 0.0 1:42.43 irq/35-musb-hdr
192KHzWav
X-ddc
68 root rt 0 0 0 0 S 11.9 0.0 194:39.96 irq/72-ci_hdrc
uda3
64 root -56 0 0 0 0 S 30.8 0.0 0:37.14 irq/35-musb-hdr
となりますから、tinkerさんの環境ではcpuの暴走はないようですね。どういう理屈で、この差が発生するのか不思議ですね。
uda3の44KHzと192KHzのcpu負荷がほとんど同じなのも謎です。まあ、音は悪くないのですけど。
> そういえばCubox-iってもう出たんですかね?
そろそろ出荷されるはずですね。どんなものですかね。
yoさん
>そろそろ出荷されるはずですね。どんなものですかね。
まだ出荷されてないんですね。検索かけたらmainlineのkernelも使えるってフォーラムにあったのですが、patchの場所は分からなかったです。
imx6なのでwandboardと同じような音なのかもしれないですね。
kernelは3.12.4になってるようですが、rtpatchはまだ出てないようです。
取りあえずのつなぎで、syuさんから要望のあった1118を元にしたものをUPしておきます。
https://drive.google.com/file/d/0BxnbJHx0_xurSTVoY2lseFFSSGc/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurSTVoY2lseFFSSGc/edit?usp=sharing
1118からの変更点は、
・musbのpatchを反映(3.12.3及び3.12.4 ただ再生に関係するのか不明です。otgのためのpatchがほとんどのため)
・[ ] SLUB per cpu partial cache (1203と同)
・[ ] CPU idle PM support(今回not setに変更)
このimageが1118に近い音であれば、1203との違いは
[*] Compile the kernel in Thumb-2 mode(1203はnot set)になるかと思います
Compile the kernel in Thumb-2 mode よりARM命令セットのほうが効率が良いとかみたいですが、音は効率だけじゃ決まらないのかもしれませんね。
前回rtopのmpdでも問題解消と書いてましたが、1203は6日目にmpdが繋がらなくなりました。今は諦めてrtopなしのmpd-dsd 0.17.6を使っています。
lightMPDの人も3.12rtの準備をされてるらしいです。やはりDSD128は鳴らないみたいです。
mpdー0.18.x用のrtパッチが公開されているようです。
yanさん、ありがとうございます。
BBBで0.18.5をいま動かしてます。
GMPCで早送りとかNEXTとか繰り返すと0.17.6+rtopはよく落ちていたのですが、0.18.5+rtopのmpdは落ちないようです。
もしかしたらこのまま大丈夫?なのかな・・・
ごく小さい音で聞いているので、0.17.6との音の差は分からないです。
yanさん、新しいパッチの公開ありがとうございます。
tinkerさん、情報ありがとうございした。
過去の記事を捜せば、分かりますが、一応解説しておくと、ダウンロード先はこの書き込みを参照して下さい。
http://www.symphonic-net.com/kubotayo/cgi-bin/read.cgi?mode=all&list=topic&no=2297#2323" target="_blank">http://www.symphonic-net.com/kubotayo/cgi-bin/read.cgi?mode=all&list=topic&no=2297#2323
0.17、0.18、0.19の最新のパッチが公開されています(buffer.c.diffは0.17専用だと思います)。
ビルドの仕方については、この記事を参照して下さい(mpdが0.17かそれ以降かで、ビルドに使用するgccのヴァージョンが変わりますので、ご注意下さい)。
http://www.symphonic-net.com/kubotayo/articles/articles015.html#009" target="_blank">http://www.symphonic-net.com/kubotayo/articles/articles015.html#009
あとは蛇足ですが、mpd-0.18.5のソースは
wget http://www.musicpd.org/download/mpd/0.18/mpd-0.18.5.tar.xz" target="_blank">http://www.musicpd.org/download/mpd/0.18/mpd-0.18.5.tar.xz
で入手できます。
xzの展開は
tar -Jxvf mpd-0.18.5.tar.xz
gzの展開は
gzip -d mpd-0.18.x-rtopt20131118.diff.gz
でokです。
tinkerさん
1209を試してみましたが、状況は変らずです。ただ、mpdを0.18.5にした時の音は素晴らしいですね。
何でcpuが暴走しているのに、こんなに音がいいのだろうかと驚きます。僕の環境ではdsd64の再生ですが、音切れ、再生中断なども一切発生していません。
yoさん
0.18.5で落ちないかなって期待していたのですが、戻ってきたらmpdが落ちていました(T_T)
なかなか上手くいかないです。
私の作り方がおかしいのかなと思いますが、192(flac)は、雑音が多くうまく再生できませんでした(wandboardで確認)
yanさん、パッチの公開ありがとうございます。早速使わせていただきました。
tinkerさん、いつもありがとうございます。
3.12.1-rt4_131209 #7 SMP PREEMPT RT Mon Dec 9 21:38:43 JST 2013 armv7l GNU/Linux
組み合わせはrt2-131118、rt4-131209、mpd0176dsd-rtopt、mpd0185-rtoptで4種類になりますから、やや混乱ぎみ。
まずmpdの差ですが、dsd128や24/176.4の再生では0185-rtoptはノイズや瞬断が頻発。24/96でも時々音が躓きます。
16/44.1の音はmpd0185-rtoptがmpd0176dsd-rtoptよりも断然良いですから、lintweakerさんのmpd018xdsdに期待したいですね。
rt4とrt2の差ですが、前回公開のrt4もですが、今回のrt4も、私の環境(uda2)ではrt2-131118よりもやや不安定なんですよね。
mpd0176dsd-rtopt(新しいyanさんのパッチ)でも、rt4はdsd128でノイズ(ボッ)が時々出たり再生中断したりします。
ただ今までとちがうのは、中断しても自己復帰します。頻度が高いので、dsd128はmpd-dsdでも、まだ使用不可ですね。
24/192も躓きながらの再生です。瞬断(瞬間的なゼロ)が頻発します。24/176.4もほぼ同じ。
rt2ではdsd128も安定していて、数十分程度は連続再生可能です。
16/44.1の音は・・・rt4-131209の方が、rt2-131118よりも、まだキンキン度がやや高いかな(^^;
rt2の方がrt4よりも細やかで高解像。歪みも少ない。歌い手や楽器の実体感(そこに存在するような錯覚)がかなりちがいます。
私の環境ではrt2-131118fdとmpd0185-rtoptの組み合わせが16/44.1のベストで、差はまだ大きいと思います。
topの結果はいずれも大差なしでした。しかし、最近の進歩はなかなかのもので、期待大ですね。rt4パッチはまだ手修正作業が必要な状態なんでしょうか。
syuさん
今日1118を聞いてみました。おっしゃるようにキンキンしないですね^^;
新しいパッチが出たら、1118のconfigで何もいじらない状態でmakeしてみますね。
>rt4パッチはまだ手修正作業が必要な状態なんでしょうか。
修正は必要ですが、すごく簡単ですよ。
drivers/misc/Makefileの以下の行の後に
obj-$(CONFIG_SRAM) += sram.o
次の行を追加するだけです。
obj-$(CONFIG_HWLAT_DETECTOR) += hwlat_detector.o
twlです。
tinkerさん、いつもながらのカーネルのご紹介、ありがとうございました。私も3.12.1-rt4_131209を試してみましたが、その前に日頃使用しているDDCをAmaneroから384kHz, DSD128対応可能なXMOS搭載のDDC(デジタルアイソレータ付)*に変更した上での検証であることをお断りしておきます。
* http://jlsounds.com/i2soverusb.html" target="_blank">http://jlsounds.com/i2soverusb.html
MPD0.18.5、Debian、DSD128のファイル再生で試しました。優先度指定なしではノイズが目立ちましたが、rtset.confその他の優先度設定を加えることによりノイズは激変、初めてノイズの目立たないDSD128の楽音が流れました。音の中断などは一切ありません。
もしかしてと思い、以前のtinkerさんの3.12.1-rt4_131203のカーネルもArchおよびDebianで試しましが、rt優先度指定のもとでは131209のものより、よりノイズの少ない再生音が得られました。以前に使用していたアイソレーターなしのAmanero Combo384に戻すと相変わらずひどいノイズを背景とした再生状況になりますので、この結果はディジタルアイソレーターの有無がノイズの出現背景に大きく関与しているといえそうです。
ところで、つい昨日ビルドした3.12.5のNelson版カーネル(Non-RT)はかなりいいですね。Amaneroも上記のXMOSもDSD128ファイルをまったくのノイズなしで楽々と再生してくれています。このカーネルのrt化は結構面白そうです。
root@arm:~# uname -a
Linux arm 3.12.1-rt4_131209 #7 SMP PREEMPT RT Mon Dec 9 21:38:43 JST 2013 armv7l GNU/Linux
root@arm:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: X20 [XMOS USB Audio 2.0], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
root@arm:~# top
top - 19:38:34 up 3 min, 1 user, load average: 0.80, 0.38, 0.15
Tasks: 77 total, 1 running, 76 sleeping, 0 stopped, 0 zombie
%Cpu(s): 10.4 us, 23.2 sy, 0.0 ni, 59.2 id, 0.0 wa, 0.0 hi, 7.1 si, 0.0 st
KiB Mem: 512940 total, 188608 used, 324332 free, 5008 buffers
KiB Swap: 0 total, 0 used, 0 free, 161800 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
64 root -56 0 0 0 0 S 33.3 0.0 0:30.69 irq/35-musb-hdr
2003 mpd -51 0 73912 9152 1912 S 8.5 1.8 0:08.15 mpd
1632 root -54 0 0 0 0 S 4.6 0.0 0:04.40 cifsd
79 root -54 0 0 0 0 S 3.6 0.0 0:04.14 irq/57-4a100000
80 root -54 0 0 0 0 S 1.0 0.0 0:01.09 irq/58-4a100000
2335 root 20 0 2672 1108 784 R 1.0 0.2 0:00.18 top
17 root 20 0 0 0 0 S 0.7 0.0 0:00.67 kworker/0:1
2239 root 20 0 8556 2716 2108 S 0.3 0.5 0:00.72 sshd
1 root 20 0 1688 644 540 S 0.0 0.1 0:01.49 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root -2 0 0 0 0 S 0.0 0.0 0:00.51 ksoftirqd/0
twlです。
新しくアナウンスされた3.12.5カーネルにつきNon-RT版およびRT版を作成しました。以下のURLにおきましたのでご検証下さい。
http://lydia.concorde.gr.jp/luke/export.tar.gz" target="_blank">http://lydia.concorde.gr.jp/luke/export.tar.gz
優先度の設定により、先述の384kHz対応のXMOS搭載DDCを使用した私の環境では、BBBを購入して以来初めてノイズのないDSD128の再生が可能となりました。Amanero Combo384使用においても比較的ノイズの目立たない再生環境となっております。
root@arm:~# uname -a
Linux arm 3.12.5-rt4_BBB_1215_RT+ #7 SMP PREEMPT RT Mon Dec 16 00:12:57 JST 2013 armv7l GNU/Linux
root@arm:~# top -H
top - 07:36:23 up 6:58, 1 user, load average: 2.41, 1.35, 1.18
Threads: 90 total, 1 running, 89 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.8 us, 26.9 sy, 0.0 ni, 61.4 id, 0.0 wa, 0.0 hi, 6.8 si, 0.0 st
KiB Mem: 503572 total, 498888 used, 4684 free, 4052 buffers
KiB Swap: 0 total, 0 used, 0 free, 464972 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
75 root -56 0 0 0 0 S 27.0 0.0 112:40.31 irq/35-musb-hdr
1630 root -54 0 0 0 0 S 3.9 0.0 17:38.12 cifsd
2004 mpd -54 0 74116 9984 2528 S 3.9 2.0 15:14.96 mpd
90 root -54 0 0 0 0 S 3.3 0.0 14:47.47 irq/57-4a100000
2001 mpd -50 0 74116 9984 2528 S 1.6 2.0 8:31.68 mpd
91 root -54 0 0 0 0 S 1.3 0.0 6:49.76 irq/58-4a100000
2474 root 20 0 2672 1120 780 R 1.3 0.2 0:00.36 top
2036 root 20 0 18404 948 656 S 1.0 0.2 3:01.91 cpufreqd
44 root 20 0 0 0 0 S 0.7 0.0 1:39.92 kswapd0
1999 mpd -53 0 74116 9984 2528 S 0.7 2.0 2:27.06 mpd
3 root -2 0 0 0 0 S 0.3 0.0 0:50.21 ksoftirqd/0
18 root 20 0 0 0 0 S 0.3 0.0 2:25.55 kworker/0:1
3.12.5rt6です。
https://drive.google.com/file/d/0BxnbJHx0_xurbkJ0WERndlNRVHc/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0BxnbJHx0_xurbkJ0WERndlNRVHc/edit?usp=sharing
1118のLocal versionだけを変更しました。
twlさんがおっしゃられているように、3.12.5は3.12.1より良いと思います。
はじめまして。沢といいます。
もっとも初歩的な質問ですみません。
よくzImageが出てきますがどの様につかうのでしょうか?
BBBへOSやMPDをインストールする過程が書かれてなかったもので
流れが読めません。
BBBでMPDを使えるようにするにはどの様にすればよいのでしょうか?
> BBBでMPDを使えるようにするにはどの様にすればよいのでしょうか?
今晩は。一番わかりやすいのは以下のURLで紹介されている方法ではないでしょうか。ご参照下さい。
http://community.phileweb.com/mypage/entry/2775/20130623/" target="_blank">http://community.phileweb.com/mypage/entry/2775/20130623/
twl
沢さん、こんばんは。
twlさんが書かれているページを参考にすれば、簡単にインストールできると思います。
Arch linuxであれば、syuさんがUPされているものもいいと思いますよ。
http://www.symphonic-net.com/kubotayo/cgi-bin/read.cgi?mode=all&list=topic&no=3509#3569" target="_blank">http://www.symphonic-net.com/kubotayo/cgi-bin/read.cgi?mode=all&list=topic&no=3509#3569
>よくzImageが出てきますがどの様につかうのでしょうか?
例えばsyuさんのイメージをUPされた時は、zImageのバージョンは3.8でした。現在のバージョンは3.12.5になっていますので、twlさんや私がUPしているものに差し替えることによって、新しいバージョンのzImageを使えるようになります。
また、lightMPDというものが以下のURLに公開されています。
https://sites.google.com/site/digififan/" target="_blank">https://sites.google.com/site/digififan/
lightMPDであれば、windows(or mac)で設定ができるので、Linuxに不慣れな場合はいいかもしれないです。
> 3.12.5rt6です。
う、もうrt6のパッチが出ていたのですね。昨日のkernel.orgではまだrt4だったのですが、tinkerさん、さすがにお仕事が早いです。追随して私も今rt6を構築中です。
ご紹介の新しいカーネルを試させていただきましたが、その結果です。
XMOSのDDCでは私の3.12.5rt4カーネル同様、問題なくDSD128を再生できました。私のと違い、mpdの優先度を設定しなくてもcifsdとmusb-hdrの優先度設定のみでノイズなしのきれいな再生音が得られました。しかしDDCをアイソレーターなしのAmanero Combo384に戻すとかなりのノイズが発生しますので、得られる再生音に対する印象がDDC次第で大きく異なる可能性がかなりありそうです。
root@arm:~# uname -a
Linux arm 3.12.5-rt6_131216 #1 SMP PREEMPT RT Mon Dec 16 19:54:34 JST 2013 armv7l GNU/Linux
root@arm:~# top -H
top - 21:32:58 up 17 min, 1 user, load average: 1.23, 0.54, 0.38
Threads: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.8 us, 16.7 sy, 0.0 ni, 71.7 id, 1.2 wa, 0.0 hi, 6.7 si, 0.0 st
KiB Mem: 512920 total, 266316 used, 246604 free, 1744 buffers
KiB Swap: 0 total, 0 used, 0 free, 241288 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
64 root -56 0 0 0 0 S 22.3 0.0 2:52.45 irq/35-musb-hdr
1612 root -54 0 0 0 0 S 4.6 0.0 0:24.69 cifsd
79 root -54 0 0 0 0 S 3.0 0.0 0:17.57 irq/57-4a100000
2406 mpd -54 0 73944 9972 2660 S 3.0 1.9 0:05.36 mpd
80 root -54 0 0 0 0 S 2.6 0.0 0:13.55 irq/58-4a100000
2405 mpd -50 0 73944 9972 2660 S 1.6 1.9 0:12.66 mpd
17 root 20 0 0 0 0 S 0.7 0.0 0:01.34 kworker/0:1
2025 root 20 0 18372 880 652 S 0.7 0.2 0:04.46 cpufreqd
2423 root 20 0 2672 1120 784 R 0.7 0.2 0:03.54 top
3 root -2 0 0 0 0 S 0.3 0.0 0:00.96 ksoftirqd/0
2403 mpd -53 0 73944 9972 2660 S 0.3 1.9 0:00.44 mpd
1 root 20 0 1688 644 540 S 0.0 0.1 0:01.48 init
twlさん。tinkerさん。ご親切にありがとうございます。
Arch linuxをインストールしようとしたらリンクが403なので
復旧を待ってみます。
syuさん、Arch linuxなのですが、ddiまたはimgでの配布はむずかしいでしょうか?
先ほどインストールしようと思いLinux機をだしてきたら
壊れていてインストールができません。
ddiならwindowsでDDWinを使い書き込む事ができるので、
もしよければよろしくお願いします。
Linux機故障かと思ったら電源ちがいでした。すみません。
syuさんのArch linuxをインストールしているのですが、6番で
sudo mount /dev/sdb2 rootとするとファイルシステムタイプを指定する必要があります
と出てマウントできません。
どの様に指定すればいいのでしょうか?
皆さん
はじめまして。野菜といいます。
半年ぐらい前からひっそりとお世話になってます。
梅雨入りバージョンとか0731rtあたりのimgを手順通りに行っても起動せず断念したりと躓いたりしていましたが、syuさんのmpd-dsd(#3569)からうまく動作していい音で楽しませてもらってます。
沢さん
多分sdb2のパーティションに適切なフォーマットが施されてないんじゃないでしょうか。
試しに適当に空のパーティション入れてmount /dev/sdb2 root実行(自分の場合はsdf2)してみたら以下のエラー?が出ました。
mount: you must specify the filesystem type
多分同じ感じですよね。
mkfs.ext4 /dev/sdb2が上手く出来てるか確認してみてはどうでしょうか。
しかしまぁ6番っていったらmount /dev/sdb1 bootのような気がしなくもないのですが・・・どうなんでしょう?
間違ってたらごめんなさい。
野菜さんありがとうございます。
どうも最初から上手くいってないみたいです。
dfでSDカードを確認するとFilesystemは/dev/sdb1になっているのでそれを踏まえて
http://cordblack.com/2013/06/24/23/20/39/" target="_blank">http://cordblack.com/2013/06/24/23/20/39/を参考にフォーマットしてるのですが、ちゃんとパーティションが出来ていないので
上手くいってない様です。
もう少し勉強してみます。
まとめて失礼いたします。
tinkerさん
どんどん新しくなりますね。3.12.5-rt6有難く頂戴しました^^;;
/build_files/ と /lib/modules/ がどんどん膨らんで、凄い数に。
3.12.5-rt6から画期的に変わりましたね。cpu負荷もかなり減って、音もさらにスッキリ。3.12.5-rt6/0176dsd-rtoptが現状最も好みです。ありがとうございました。今度自前でもやってみようと思います。
dsd128や24/192では、mpd0176dsd-rtoptの方が0185-rtoptより安定しています。数日間の連続再生をやってみましたが、0176dsd-rtoptならdsd128で中断なしに連続再生可能でした。
0185-rtoptではdsd128でボツと単発ノイズが頻繁に発生。また、安定している0176dsd-rtoptでの16/44.1でも、時々ですがタイミングがずれて、軽い音飛びが発生しませんか?私の環境だけかな。
twlさん
また凄いの探してこられますね。I2SoverUSBのご紹介ありがとうございます。bulgariaなんですね。DAC基盤と電源付きでポチッとしてしまいました♪
沢さん
私も初心者で、おまけに爺なので、fdisk苦手です。トロイけどGPartedを愛用しています。確認しやすくて良いですよ。
野菜さんも、ありがとうございます。
皆様こんばんは。
またまた初心者で手解きお願いします。
以前yo様が製作されたイメージでBBBを楽しんでおりますが最近のカーネルに入れ替える方法が分りません。(なんせLinuxのコマンド打ちもままならない程度なので・・・)
教えて頂けると幸いで御座います。
また何方か、一番音が良いと思われるイメージをアップして頂けると大変有り難いのですが・・・(SDカードに書き込んでNASの設定のみで動くモノ)
ご指導よろしくお願いします。
syuさん
3.12.5でずいぶん出音が違っているようです。1118と比べてどうでしょうか?
すでにrt7が出たみたいです。1日で新しいものがリリースされるってことは、なんか入れ忘れでもあったんでしょうね。
>安定している0176dsd-rtoptでの16/44.1でも、時々ですがタイミングがずれて、軽い音飛びが発生しませんか?私の環境だけかな。
私も0176dsd-rtoptとの組み合わせが一番好きですね。ただGMPCでrepeat mode and randam modeで再生すると数時間でmpdが落ちるようです。
しかたないので、0176dsd-no_rtoptで聞いています。
以前syuさんが紹介されていたALIXの後続のpre oderが始まってるみたいです。どんなもんなんでしょうね。値段は$175らしいです。
http://store.voyage.hk/KMPD3a.php?id=103" target="_blank">http://store.voyage.hk/KMPD3a.php?id=103
syuさんの紹介してくれたソフトのおかけでパーティション割りが無事できました。
コメントの通り色々編集して無事MPDが立ち上がってくれる所までは
きたのですが、ディレクトリ等を認識してくれません。
別途リンクを貼ったりしなければいけないのでしょうか?
もう少しで音出しまでいけそうなのにここで躓いてます。
よろしくお願いします。
沢さん
とりあえずLinuxの方でデータのマウントが成功されているか確認してみるということで
ls /root/music
を実行してみて格納してるデータが表示されなかったら
mount -a
(↑fstabで設定した内容をmountする感じな意味らしい)
を実行してみて再度
ls /root/music
Linux上でデータが表示されたらGMPCのメニュー「Server」のUpdate MPD Databaseを実行。
Linux上でデータが表示されなかったらfstabの内容を疑う。てな感じでどうですかね?
fstabの内容はデータを格納してあるデバイスのIP、IP以降の階層のパス名、userID,パスワードが間違っていないか見てみるとか。
拙い知識の推測ですけど、何かのお役に立てれば・x・