/ 雑記帳

RaspberryPi5 今までの設定で音が出るのかぁ?!(>ω<)

事のはじまりはRaspberryPi5でPCIeカードを動作させることが可能になった事だった。
実際にサウンドカードを刺してみるとモジュールがロードされるのにalsaでは認識されない不具合が発生した!
確認のためその環境のままRaspberryPi4で問題なく動作していたI2S出力可能なHATを取り付けてみると
あれ!I2Sデバイスを認識しない!という困った状況が発生!そこから色々弄り始めたが自己破壊モードに入ったり(笑)
何度もやり直しテストが続いた...とにかく思いつく限りのキーワードでネットを検索していたら
前記事を見つけてこれだ!って思った。

この一行が鍵だった!!
dtoverlay=hifiberry-dacを併用すると有効になる
kkuma@raspberrypi:~$ uname -a (※通常のImagerでインストール可能なラズビアンで成功したのが嬉しい!)
Linux raspberrypi 6.6.20+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux

kkuma@raspberrypi:~$ cat /boot/firmware/config.txt

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
dtparam=i2s=on
dtoverlay=hifiberry-dac
dtoverlay=i2s-dac

kkuma@raspberrypi:~$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: vc4hdmi0 [vc4-hdmi-0], デバイス 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 1: vc4hdmi1 [vc4-hdmi-1], デバイス 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 2: sndrpirpidac [snd_rpi_rpi_dac], デバイス 0: RPi-DAC HiFi pcm1794a-hifi-0 [RPi-DAC HiFi pcm1794a-hifi-0]
サブデバイス: 0/1
サブデバイス #0: subdevice #0

追加でソースからalsacapコマンドを追加して見たが

kkuma@raspberrypi:~$ alsacap
*** Scanning for playback devices ***
Card 0, 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..192000 Hz
Sample formats: S16_LE, S24_LE
Buffer size range from 32 to 131072
Period size range from 16 to 1024

Subdevice 0, name `subdevice #0'

拡張kernelを作りたいが...作リ方が分からない...

※注意事項 
自分の環境はサウンドデバイスを使用せずRaspberryPi5のI2S出力ピンから
直接I2S信号を取り出している。
その後にAK4137基板でMCLKを加えDACへ送信している状態で音出し成功...

— posted by くま at 04:55 pm  

 

Interface 5月号 ラズベリーパイ5大研究

i2sデバイスが使える様にならないので
「Interface 5月号 ラズベリーパイ5大研究」を仕方がなく購入して
I2S関連部分だけ読んでみました。(笑)
なるほどrapi4までとはIO関連部分が違うのか!
新たに搭載されたI/O chip である RP1 に機能が移行(I2Sも含む)しているから
I2Sの扱いは今までどうりでは動作不可なんだぁ〜!
という事が分かった(早く買えよ
参考URL Raspberry Pi 5のRP1に搭載されているPIOは今のところ簡単には使えないという話

で!i2s対応関連では volumio OSが最先端? 
見たいな事が書いてあったので早速試して見ました。
おぉ久しぶりにi2s-DACデバイスが表示されるのを見ました(笑)
音もまずまずです。
たぶん5A仕様の電源で動かす効果なのか太くて力が漲る音がするのでは?(個人的見解
これなら仕様が明確になってi2sの使い方が何処かで公表されるまで使えそうだと思いました。

volumio-1


かなり以前にvolumioのカーネルを入れ替えて遊んでいた時期があったなぁ...
rt-kernel化とか帯域を最大限まで広げるとかやりたくなるが体力がぁ 今は無い残念!
--------------------------------------------------------------------------------------------
追記 2024/04/04
ここに知りたい事が書いてあった!うーんRaspberryPi5はAudioに適さないかも

/boot/config.txtの扱い

いつの間にやら/boot/firmware/config.txtへのリンクでもなくなった。
/boot/config.txtを編集してはいけない。
/boot/firmware/config.txtを編集すること。
仕様がころころと変わる。何が正しいのかわからない。

dtoverlay=audremapが有効にならない

RPI4の場合
$ pinctrl get 12,13
12: a0 pn | lo // GPIO12 = PWM0_0
13: a0 pn | lo // GPIO13 = PWM0_1
RPI5の場合
$ pinctrl get 12,13
12: no pd | -- // PIN32/GPIO12 = none
13: no pd | -- // PIN33/GPIO13 = none
ソースを調べたところoverlay_map.dtsでBCM2712はaudremapを外されている。
PWMオーディオは終わった。
RP1用PWMオーディオのドライバを作ればよいのだが大変な作業だ。
なぜかPRI5用にsnd-bcm2835ドライバが残っている。これをRP1に書き換えればよい。

dtparam=i2s=onの動きが異なる

RPI4の場合、有効になる
$ pinctrl get 18-21
18: a0 pd | hi // GPIO18 = PCM_CLK
19: a0 pd | lo // GPIO19 = PCM_FS
20: a0 pd | lo // GPIO20 = PCM_DIN
21: a0 pd | lo // GPIO21 = PCM_DOUT
RPI5の場合、有効にならない
$ pinctrl get 18-21
18: no pd | -- // PIN12/GPIO18 = none
19: no pd | -- // PIN35/GPIO19 = none
20: no pd | -- // PIN38/GPIO20 = none
21: no pd | -- // PIN40/GPIO21 = none
dtoverlay=hifiberry-dacを併用すると有効になる
$ pinctrl get 18-21
18: a2 pn | lo // PIN12/GPIO18 = I2S0_SCLK
19: a2 pn | lo // PIN35/GPIO19 = I2S0_WS
20: a2 pn | lo // PIN38/GPIO20 = I2S0_SDI0
21: a2 pn | lo // PIN40/GPIO21 = I2S0_SDO0
ドライバを併用しないとI2Sが有効にならない。
RP1の影響と思われる。
--------------------------------------------------------------------------------------------

— posted by くま at 12:11 pm  

<< 2024.4 >>
SMTWTFS
 1 2 34 56
7 8910 1112 13
1415 161718 1920
21 222324 2526 27
28 2930     
 
























T: Y: ALL: Online:
ThemePanel
Created in 0.3752 sec.