• Raspberry Pi 5

    @kkumax
    やっぱりこれが理解出来ると音が出る気がする。
    ARM: dts: Add dts for .....

    https://patchwork.kernel.org/project/alsa-devel/patch/[email protected]/#23689129

  • @kkumax さん

    と云うか、この問題を解決しないと無理なのではと…

    スクリーンショット 2024-03-03 112621.png

    まあ、当方のスキルを遙かに超越していますが(笑)

  • @えふ さん
    このエラーは起動時に出るのかなぁ?
    一連のテストで
    RaspberryPi5のPCIeでサウンドカードを使用するのは
    かなり厳しいというのははっきりした様に思います。
    仮に可能になったとしてもその先で
    aoeのリヤエンドとして動作する様になれば?!
    という事になると現状それは無理筋
    この辺で中断というのが良いかと考えています。

  • みなさま

    「Arch Linux linux-rt-lts kernel and modules」で公開していた
    pi5用のArchlinuxイメージは、「Audio over Ether ②」スレッドへ
    移動させていただきましたm(_ _)m

  • @kkumax
    PCIeはちょっと厳しい感じてしばらく放置(笑)
    RasoberryPi5の高性能をプレーヤー側で試して見たくて
    うどさん作成の
    2023-12-11-raspios-bookworm-arm64-lite-aoe.img.xz に
    mpd と upmpdcli をインストールして通常i2sデバイスで出力してみました。

    root@raspberrypi:~# uname -a
    Linux raspberrypi 6.6.16-rt22-v8-16k+ #2 SMP PREEMPT_RT Sun Feb 18 12:17:27 JST 2024 aarch64 GNU/Linux
    root@raspberrypi:~# aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: vsound [vsound], device 0: AoE VSOUND [Audio over Ether Virtual sound card]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
    card 1: sndrpirpidac [snd_rpi_rpi_dac], device 0: RPi-DAC HiFi pcm1794a-hifi-0 [RPi-DAC HiFi pcm1794a-hifi-0]
    Subdevices: 0/1
    Subdevice #0: subdevice #0

    個人的感想ですが低音域に力があり良い感じだと思います。

  • udosanさん
    いつもありがとうございますm(_ _)m
    もし可能であればお願いがあります。
    このイメージの i2s-dac alsaドライバーを
    32bit/768kHz仕様にしていただけないでしょうか?
    自分の環境で挑戦していますが理解度が低すぎて
    できません(泣)

  • @udosan さん
    いつものkernel8を作る事は出来るのですが
    参考URL https://forums.raspberrypi.com/viewtopic.php?t=357580
    うどさんのイメージの中の
    vmlinuz -> boot/vmlinuz-6.1.0-rpi7-rpi-v8 とか
    initrd.img -> boot/initrd.img-6.1.0-rpi7-rpi-v8 につながる?部分が?
    どうすれば良いのか分かりません。

  • @kkumax さん
    AoEに出力するのではなく直接RPi-DACを使うという事ですか?
    ちょうどベースのイメージが更新されているのでやってます。

    カーネルの入れ替えは公式マニュアル通りにしかしてないのでvmlinuzとか私自身はよく分かってません😅
    https://www.raspberrypi.com/documentation/computers/linux_kernel.html#cross-compiling-the-kernel

  • Raspberry Pi 5で@udosanが発言 :

    AoEに出力するのではなく直接RPi-DACを使うという事ですか?
    (RPi-DACはどうもi2s-dacという名前に変わったと思います。)
    はいそうです。良い感じの音がするように思います。

    現状はこうなっていてmpd.confでdevice "hw:1,0"として音出ししています。

    root@raspberrypi:~# aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: vsound [vsound], device 0: AoE VSOUND [Audio over Ether Virtual sound card]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
    card 1: sndrpirpidac [snd_rpi_rpi_dac], device 0: RPi-DAC HiFi pcm1794a-hifi-0 [RPi-DAC HiFi pcm1794a-hifi-0]
    Subdevices: 1/1
    Subdevice #0: subdevice #0

    一応手動で拡張に必要な変更をソースに加えてコンパイル後に
    kernel8として/boot/にコピーしたのですが起動するkernelが切り変わりません?
    /boot/firmwareにもしてみましたがダメでした。

  • @kkumax さん
    イメージはただいま作成中です。

    えーとRPi5のカーネルはkernel8ではなくkernel_2712です。
    公式のマニュアルを参照されることをお薦めします。

  • と言うわけで最新のイメージです。

    カーネルは6.6.25-rt28です。
    rpi5のpcieの追加ドライバーはigbのみです。
    @kkumax さんのご要望にお応えしてローカルでも直接rpi-dacで768KHz再生が出来るようにしたつもりです(試してはいません)。

    https://udo.sakura.ne.jp/aoe/2024-03-15-raspios-bookworm-arm64-lite-aoe.img.xz

  • @udosan さん
    ありがとうございますm(_ _)m
    ちょっと実測はまだですがコマンドだと
    root@raspberrypi:~# uname -a
    Linux raspberrypi 6.6.25-rt28-v8-16k+ #2 SMP PREEMPT_RT Sun Apr 7 12:53:04 JST 2024 aarch64 GNU/Linux
    root@raspberrypi:~# alsacap
    *** Scanning for playback devices ***
    Card 0, ID vsound', name vsound'
    Device 0, ID AoE VSOUND', name Audio over Ether Virtual sound card', 1 subdevices (1 available)
    2 channels, sampling rate 44100..768000 Hz
    Sample formats: S16_LE, S24_LE, S32_LE
    Buffer size range from 188 to 524288
    Period size range from 47 to 16384

      Subdevice 0, name `subdevice #0'
    

    Card 1, ID sndrpirpidac', name snd_rpi_rpi_dac'
    Device 0, ID RPi-DAC HiFi pcm1794a-hifi-0', name RPi-DAC HiFi pcm1794a-hifi-0', 1 subdevices (1 available)
    2 channels, sampling rate 8000..384000 Hz
    Sample formats: S16_LE, S24_LE, S32_LE
    Buffer size range from 32 to 131072
    Period size range from 16 to 1024

      Subdevice 0, name `subdevice #0'
    

    DSD64を再生時のステイタスはこうなります。
    root@raspberrypi:~# cat /proc/asound/card1/pcm0p/sub0/hw_params
    access: RW_INTERLEAVED
    format: S24_LE
    subformat: STD
    channels: 2
    rate: 352800 (352800/1)
    period_size: 512
    buffer_size: 65536

    DSD128も同じ表示になるので??
    音質的にはとても良いと個人的には思います。
    で!実は自分環境でもrtカーネルではありませんが
    通常カーネルソースを32bit/768000 Hzになる様に修正し
    ビルドに成功した環境でも同じ様に768000 Hzになりません??

  • @kkumax
    追記
    このアドバイスでコンパイルは何とか可能になりましたm(_ _)m

    >えーとRPi5のカーネルはkernel8ではなくkernel_2712です。
    >公式のマニュアルを参照されることをお薦めします。

    やはりrt-linuxの威力は凄いかもです。
    自分環境なので参考になるかどうか?ですが
    柔らかで低音域の力強さは素晴らしいと個人的には感じます。

  • みなさん
    話しの流れから最新版はAoE2の方に掲載しました。
    https://www.symphonic-mpd.com/forum/topic/194/audio-over-ether/613

  • @kkumax
    RaspberryPi5にシリアルコンソールを接続して見ました。
    とても安定していてssh接続でCLI操作ならこちらの方が良いと思います。
    シリアル.jpg

  • みなさん

    カーネルが少しバージョンアップしたので6.6.30-rt30にしました。
    clangでビルドしてあります。
    RPi4/5でi2s-dacで768KHz出るようになってます。
    RPi5でigb/igcが使えるようにしてあります。
    よろしければお試し下さい。
    https://udo.sakura.ne.jp/aoe/2024-03-15-raspios-bookworm-arm64-lite-clto-aoe.img.xz

  • @udosan さん
    何時もありがとうございます。
    どこか?自分が間違っていると思いますが...
    DSD512まで再生可能になっている様な??
    音は力強さに分解能も良く素晴らしいと思います。

    root@raspberrypi:~# cat /proc/asound/card0/pcm0p/sub0/
    hw_params info prealloc prealloc_max status sw_params
    root@raspberrypi:~# cat /proc/asound/card0/pcm0p/sub0/hw_params
    access: RW_INTERLEAVED
    format: S32_LE
    subformat: STD
    channels: 2
    rate: 1536000 (1536000/1)
    period_size: 512
    buffer_size: 65536

  • @kkumax さん
    ありがとうございます。
    1536KHzとかは単に定義を書いているだけで実際に音が出るかは全く試してないです😅

  • @udosan さん
    Raspberry Pi 5で@udosanが発言 :

    1536KHzとかは単に定義を書いているだけで実際に音が出るかは全く試してないです

    現状、変換無しでこの周波数を試すにはAK4499EX DAC-ICを使った機器でしか
    試す事が出来ないと思います。
    自家用システムはI2S信号用デジタルチャンネルデバイダーを使っていて
    PCM192KHzまでしか対応していませんがプレーヤー部分の高性能化は
    何かしらのメリットがあるように感じています。

  • @udosan さん
    >1536KHzとかは単に定義を書いているだけで実際に音が出るかは全く試してないです

    申し訳ないのですが 1536000Hzまで拡張するために追加する部分が良く分からないので
    教えていただけないでしょうか。
    特に linux/include/sound/pcm.hのこの部分です。
    1411200 と 1536000 で良いですか?
    (何時ものやってみたい病ですm(_ _)m)

    $ diff linux/include/sound/pcm.h linux.ori/include/sound/pcm.h
    122,125d121
    < #define SNDRV_PCM_RATE_705600 (1U<<15) /* 705600Hz /
    < #define SNDRV_PCM_RATE_768000 (1U<<16) /
    768000Hz /
    < #define SNDRV_PCM_RATE_1411200 (1U<<17) /
    1411200Hz /
    < #define SNDRV_PCM_RATE_1536000 (1U<<18) /
    1536000Hz */
    138,144c134,136
    < #define SNDRV_PCM_RATE_8000_384000 (SNDRV_PCM_RATE_8000_192000|SNDRV_PCM_RATE_352800|
    < SNDRV_PCM_RATE_384000)
    < #define SNDRV_PCM_RATE_8000_768000 (SNDRV_PCM_RATE_8000_384000|SNDRV_PCM_RATE_705600|
    < SNDRV_PCM_RATE_768000)
    < #define SNDRV_PCM_RATE_8000_1536000 (SNDRV_PCM_RATE_8000_768000|SNDRV_PCM_RATE_1411200|
    < SNDRV_PCM_RATE_1536000)