[ カテゴリー » Raspberry Pi4 Model B ]
ArchlinuxベースでRaspberryPi用のrt-kernel作成
2023/3/26
ArchlinuxベースでRaspberryPi用の最新rt-kernel作成につまずいている。
何が問題なのか?
カーネル再構築に必要な最新sourceにrtパッチが綺麗に当たらない。
(腕がないのか??)
少し古いsourceでも上手く当たる組合せを探したが見つからない。
恐ろしいのが arch/arm64/configs/ に
bcm2711_defconfigが存在しないsourceが多く存在している事。
まだまだ勉強が足りないのかなぁ...
参考URL 64bit rt-kernel への道(2)
何が問題なのか?
カーネル再構築に必要な最新sourceにrtパッチが綺麗に当たらない。
(腕がないのか??)
少し古いsourceでも上手く当たる組合せを探したが見つからない。
恐ろしいのが arch/arm64/configs/ に
bcm2711_defconfigが存在しないsourceが多く存在している事。
まだまだ勉強が足りないのかなぁ...
参考URL 64bit rt-kernel への道(2)
— posted by くま at 09:33 am
CLK5340基板接続(3)
2023/3/24
今、RaspberryPi4で聴いていますが良いです。(意味不明^^;
以前からラズパイの弱点はクロックだ!と言われていましたが
確かそうだと納得です。
SRC4137基板との組合せでMCLKを付加してDACに入れると結構良いと感じていたが
今回SRC4137基板に入れるクロックをCLK5340基板から供給すると
やはり更に音質が向上する事が判明!(個人的見解です。)
素晴らしい....音のうなりというか余韻というかタメが聴こえる。
デスクトップPCに比較して音の勢い力がちょっと...と思っていたのだが
これが弱っちいと思っていたラズパイの音なのかと(笑)
余計なHAT基板は使わず絶縁ICを介したI2S差動送信基板のみを搭載しています。
こうするとドライバーの制約が少なくなり
無茶?なサンプリング周波数で試す事が可能になります(笑)
紫色のジャンパー線が見えています。
これは10PIN2列のヘッダーから送信基板一次側の電源を供給するために配線しましたが
元々は近くに見えるJSTのXH 2PINのコネクターから電源を供給する様に設計していました。
どんどん電源を独立供給設計にしていたら電源基板が何枚も必要になって
前段の基板からi2s信号と電源を貰う様に追加配線したものです。
苦肉の策なワケです(笑)
以前からラズパイの弱点はクロックだ!と言われていましたが
確かそうだと納得です。
SRC4137基板との組合せでMCLKを付加してDACに入れると結構良いと感じていたが
今回SRC4137基板に入れるクロックをCLK5340基板から供給すると
やはり更に音質が向上する事が判明!(個人的見解です。)
素晴らしい....音のうなりというか余韻というかタメが聴こえる。
デスクトップPCに比較して音の勢い力がちょっと...と思っていたのだが
これが弱っちいと思っていたラズパイの音なのかと(笑)
余計なHAT基板は使わず絶縁ICを介したI2S差動送信基板のみを搭載しています。
こうするとドライバーの制約が少なくなり
無茶?なサンプリング周波数で試す事が可能になります(笑)
紫色のジャンパー線が見えています。
これは10PIN2列のヘッダーから送信基板一次側の電源を供給するために配線しましたが
元々は近くに見えるJSTのXH 2PINのコネクターから電源を供給する様に設計していました。
どんどん電源を独立供給設計にしていたら電源基板が何枚も必要になって
前段の基板からi2s信号と電源を貰う様に追加配線したものです。
苦肉の策なワケです(笑)
— posted by くま at 10:17 pm
NFD基板のI2S位相切換機能って...
たぶん動いていると^^;
一応何時も左右チャンネルがテレコになっていないか?のテスト用音源で
スクリプトを実行した時に左右チャンネルが入れ替わるのが確認出来た。
ただし自分の環境ではスクリプト内容を少しイジらないと動作しなかった。
こんな感じに変更した。
# cat hdmi_inv.py
import RPi.GPIO as GPIO
#INV_PIN = 27
GPIO.setmode(GPIO.BCM)
GPIO.setup(27, GPIO.OUT)
GPIO.output(27, GPIO.HIGH)
この機能を動かすためにはRaspberryPiのI2Cコントロール機能を
有効にしなければならなかったので結構面倒だった(笑)
このNFD基板にも例のクロック基板から闘魂注入をして見たい。
どんな音になるのかなぁ マスターモードからの引き出しは関係してくるのかどうか?
参考URL Use I2C on raspberry pi with archlinux-arm
一応何時も左右チャンネルがテレコになっていないか?のテスト用音源で
スクリプトを実行した時に左右チャンネルが入れ替わるのが確認出来た。
ただし自分の環境ではスクリプト内容を少しイジらないと動作しなかった。
こんな感じに変更した。
# cat hdmi_inv.py
import RPi.GPIO as GPIO
#INV_PIN = 27
GPIO.setmode(GPIO.BCM)
GPIO.setup(27, GPIO.OUT)
GPIO.output(27, GPIO.HIGH)
この機能を動かすためにはRaspberryPiのI2Cコントロール機能を
有効にしなければならなかったので結構面倒だった(笑)
このNFD基板にも例のクロック基板から闘魂注入をして見たい。
どんな音になるのかなぁ マスターモードからの引き出しは関係してくるのかどうか?
参考URL Use I2C on raspberry pi with archlinux-arm
— posted by くま at 05:27 pm
シームレスな再生環境にはまだ遠いが(笑)
2023/3/22
色々なディストリと色々な機器と色々なソフト設定の組み合わせがあり
ブログでは完璧な説明が出来ない事を最初に書いておきます。
まぁ管理人自身のポカ、勘違いもあるのでご指摘いただけると有り難いですm(_ _)m
カーネル再構築でドライバーの守備範囲を広げた環境はまだイジっていて
自分の目標であるPCM-DSD再生環境をシームレスにするためのアプローチの一つです。
# alsacap
*** Scanning for playback devices ***
Card 0, ID `sndrpirpidac', name `snd_rpi_rpi_dac'
Device 0, ID `RPi-DAC HiFi pcm1794a-codec-0', name `RPi-DAC HiFi pcm1794a-codec-0', 1 subdevices (1 available)
2 channels, sampling rate 8000..384000 Hz
Sample formats: S16_LE, S24_LE, S32_LE
Subdevice 0, name `subdevice #0'
この状態で
OS:
# uname -a
Linux alarm 5.16.0-rc3-rt7-v8 #4 SMP PREEMPT_RT Sat Apr 2 22:52:37 JST 2022 aarch64 GNU/Linux
ハード:
RaspberryPi4 + Renew SRC4137(サンプリングレートコンバーター) + HDMIコネクタI2S差動送信基板
※リクロック基板、ハットDACからのI2S横取無し。送信基板のみ。
mpd設定:
dop "yes"
allowed_formats "384000:32:2 44100:*:2 48000:*:2 88200:*:2 96000:*:2 96000:*:2 176400:*:2 192000:*:2 352800:*:2 384000:*:2 dsd64:2=dop dsd128:2=dop dsd256:2=dop"
audio_buffer_size "12288"
buffer_before_play "50%"
max_output_buffer_size "131072"
max_connections "128"
この状態で下の様な仕様の音源をDoP変換再生すると
まともに再生出来る場合と雑音混じりになってしまう場合がある。
つい最近までその原因はドライバーの拡張が無茶(笑)だったと考えていたのだが...
あくまで自分の環境の話だが判明した原因はその時のマスタークロックが44.1系なのか48系なのか!
それだけだった。自分の環境ではデジタルチャンネルデバイダーを使っているので
デバイダー入力周波数がコロコロ変わると曲の頭が切れるので固定していた。
SRC基板を入れていて気がつくのに時間がかかったという顛末
Audio
Format : DSD
Format/Info : Direct Stream Digital
Commercial name : DSD64
Format settings : Little
Duration : 8 min 28 s
Bit rate : 5 645 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 2 822 kHz
Compression mode : Lossless
Stream size : 342 MiB (100%)
ブログでは完璧な説明が出来ない事を最初に書いておきます。
まぁ管理人自身のポカ、勘違いもあるのでご指摘いただけると有り難いですm(_ _)m
カーネル再構築でドライバーの守備範囲を広げた環境はまだイジっていて
自分の目標であるPCM-DSD再生環境をシームレスにするためのアプローチの一つです。
# alsacap
*** Scanning for playback devices ***
Card 0, ID `sndrpirpidac', name `snd_rpi_rpi_dac'
Device 0, ID `RPi-DAC HiFi pcm1794a-codec-0', name `RPi-DAC HiFi pcm1794a-codec-0', 1 subdevices (1 available)
2 channels, sampling rate 8000..384000 Hz
Sample formats: S16_LE, S24_LE, S32_LE
Subdevice 0, name `subdevice #0'
この状態で
OS:
# uname -a
Linux alarm 5.16.0-rc3-rt7-v8 #4 SMP PREEMPT_RT Sat Apr 2 22:52:37 JST 2022 aarch64 GNU/Linux
ハード:
RaspberryPi4 + Renew SRC4137(サンプリングレートコンバーター) + HDMIコネクタI2S差動送信基板
※リクロック基板、ハットDACからのI2S横取無し。送信基板のみ。
mpd設定:
dop "yes"
allowed_formats "384000:32:2 44100:*:2 48000:*:2 88200:*:2 96000:*:2 96000:*:2 176400:*:2 192000:*:2 352800:*:2 384000:*:2 dsd64:2=dop dsd128:2=dop dsd256:2=dop"
audio_buffer_size "12288"
buffer_before_play "50%"
max_output_buffer_size "131072"
max_connections "128"
この状態で下の様な仕様の音源をDoP変換再生すると
まともに再生出来る場合と雑音混じりになってしまう場合がある。
つい最近までその原因はドライバーの拡張が無茶(笑)だったと考えていたのだが...
あくまで自分の環境の話だが判明した原因はその時のマスタークロックが44.1系なのか48系なのか!
それだけだった。自分の環境ではデジタルチャンネルデバイダーを使っているので
デバイダー入力周波数がコロコロ変わると曲の頭が切れるので固定していた。
SRC基板を入れていて気がつくのに時間がかかったという顛末
Audio
Format : DSD
Format/Info : Direct Stream Digital
Commercial name : DSD64
Format settings : Little
Duration : 8 min 28 s
Bit rate : 5 645 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 2 822 kHz
Compression mode : Lossless
Stream size : 342 MiB (100%)
— posted by くま at 10:51 am
RaspberryPiの製造ライセンスが終了の様だ
2022/8/10
注文していたモノが自動キャンセルになっている。
今後の入手性は改善されるのだろうか?
たぶん悪くなると予想している。
日本業者の購買課の能力は世界のトップレベルだと自分は思っているのが根拠だ。
今後の入手性は改善されるのだろうか?
たぶん悪くなると予想している。
日本業者の購買課の能力は世界のトップレベルだと自分は思っているのが根拠だ。
— posted by くま at 10:03 pm
最近気がついたミス...Allo Kali I2S Reclockerの電源供給
2022/4/14
Allo Kali I2S Reclockerには重ね合わせて使用する時に
下のRaspberryPiと電源を共通にするか、あるいは別々にするかを
選択するためのジャンパーが付いている。
この二本のピンは片側がRaspberryPiの電源
もう片方はReclockerに接続されている。
自分はもちろん別電源で供給するためこのジャンパーピンはショートせず
この部分を起点にRaspberryPi4へ電源供給するためのサブ基板を作成
取り付けて使用していたがぁ----
信号線を確認していた時に
Kali I2S ReclockerのIOピンは面実装部品だと改めて認識した(笑)
という事はピンは貫通していないという事になる。
悪い予感がしてテスターで当たってみるとこのジャンパーピンから電源供給すると
逆流防止ダイオードを通過してから供給する構造になっていた ええぇ!!
しかも当該ダイオードは約0.2Vも背負っている。 ええぇ!!
仕方がなくRaspberryPiに電源を供給するためだけの基板を追加して
RaspberryPi自身の保護回路も前述のダイオードも通過せず電源が接続するようにしてみた!
音は...音は明らかに変わった!
下のRaspberryPiと電源を共通にするか、あるいは別々にするかを
選択するためのジャンパーが付いている。
この二本のピンは片側がRaspberryPiの電源
もう片方はReclockerに接続されている。
自分はもちろん別電源で供給するためこのジャンパーピンはショートせず
この部分を起点にRaspberryPi4へ電源供給するためのサブ基板を作成
取り付けて使用していたがぁ----
信号線を確認していた時に
Kali I2S ReclockerのIOピンは面実装部品だと改めて認識した(笑)
という事はピンは貫通していないという事になる。
悪い予感がしてテスターで当たってみるとこのジャンパーピンから電源供給すると
逆流防止ダイオードを通過してから供給する構造になっていた ええぇ!!
しかも当該ダイオードは約0.2Vも背負っている。 ええぇ!!
仕方がなくRaspberryPiに電源を供給するためだけの基板を追加して
RaspberryPi自身の保護回路も前述のダイオードも通過せず電源が接続するようにしてみた!
音は...音は明らかに変わった!
— posted by くま at 07:01 pm
Archlinux rt-kernel パラメーターその後...
2021/12/30
Preemption Modelは
「5」のFully Preemtible Kernel を選択
プリエンプションの周波数は
300Hz
これが我が家では良い様に聴こえます(笑)
参考URL RaspberryPiに最新のRT-Linuxを入れる方法
秋の夜長は Raspberry Pi 3 で RT-Linux ビルドに挑戦
この記事を読むと
------------------------------------------------------
タスク切り替えがこの周波数で強制的におきます。
あまり速くしすぎると実行効率が落ちてしまうので気をつけます。
タスクを切り替える時間がゼロではないからです。
------------------------------------------------------
とあります。
実は1000Hzも試して見ました。音がスカスカになりました(笑)
秋の夜長編の方に
------------------------------------------------------
マスターモードI2SがないDACの場合の方が効果が大きくでるかもしれません。
------------------------------------------------------
とあります。正にそう言う結果が出ています。
allo kali基板 が水を得た魚の様に歌います。
「5」のFully Preemtible Kernel を選択
プリエンプションの周波数は
300Hz
これが我が家では良い様に聴こえます(笑)
参考URL RaspberryPiに最新のRT-Linuxを入れる方法
秋の夜長は Raspberry Pi 3 で RT-Linux ビルドに挑戦
この記事を読むと
------------------------------------------------------
タスク切り替えがこの周波数で強制的におきます。
あまり速くしすぎると実行効率が落ちてしまうので気をつけます。
タスクを切り替える時間がゼロではないからです。
------------------------------------------------------
とあります。
実は1000Hzも試して見ました。音がスカスカになりました(笑)
秋の夜長編の方に
------------------------------------------------------
マスターモードI2SがないDACの場合の方が効果が大きくでるかもしれません。
------------------------------------------------------
とあります。正にそう言う結果が出ています。
allo kali基板 が水を得た魚の様に歌います。
— posted by くま at 05:48 pm Comment [1]
I2S出力の基板(サウンドカード的モノ)
2021/12/26
1.PinkFaun I2S Bridge-Card
2.KALI Reclocker
3.North Fox Digi
現状3系統のプレーヤーをメインシステムに接続して
あーでもないこうでもないを楽しんでいる。
今回すべてのRaspberryPi4の使用OSはArchlinux 64bit rt-kernelとした。
いずれの場合も
mpd + upmpdcli + upplay でプレーヤーは最低限完結する。
音質的にはどのプレ−ヤ−も良い所まで来ている様に思う。
少し前まではハード、特に電源を追いかけていたが
現状やってみたい事はすべてやってみて(笑)
今まで見てみぬふりというか他力本願だったOSをイジっている。
lightmpd smpd-aoe rAUDIO volumio等
無料配布されているプレーヤーソフトも可能な限り試してみた。
その中でもsmpd-aoeは一番だと個人的には思う。
だから何もイジらないでそれで聴いていれば良いものを
どうも血が騒ぐのを止められず archlinux rt-kernel をイジり始める。
たまたま上手く行って音が出始めた。プラシーボ全開の良い音で(笑)
追記 今回のrt-kernelはKali (i2s Reclocker)と相性が良い。
2.KALI Reclocker
3.North Fox Digi
現状3系統のプレーヤーをメインシステムに接続して
あーでもないこうでもないを楽しんでいる。
今回すべてのRaspberryPi4の使用OSはArchlinux 64bit rt-kernelとした。
いずれの場合も
mpd + upmpdcli + upplay でプレーヤーは最低限完結する。
音質的にはどのプレ−ヤ−も良い所まで来ている様に思う。
少し前まではハード、特に電源を追いかけていたが
現状やってみたい事はすべてやってみて(笑)
今まで見てみぬふりというか他力本願だったOSをイジっている。
lightmpd smpd-aoe rAUDIO volumio等
無料配布されているプレーヤーソフトも可能な限り試してみた。
その中でもsmpd-aoeは一番だと個人的には思う。
だから何もイジらないでそれで聴いていれば良いものを
どうも血が騒ぐのを止められず archlinux rt-kernel をイジり始める。
たまたま上手く行って音が出始めた。プラシーボ全開の良い音で(笑)
追記 今回のrt-kernelはKali (i2s Reclocker)と相性が良い。
— posted by くま at 08:15 pm
そう言えばArchphile というのもあった....
2021/12/24
Archphileはかなり昔、RaspberryPi2の頃にしばらく使用していたが
有料化の話が出てきて程なく消えた記憶がある。
思い出して64bit版imgは配布されていないのか?と暫く徘徊していると見つけた!さっそく焼いてみた。
起動も問題なかったが pacman -sy を確認して見るとエラーしか出ない?
# pacman -Sy
:: Synchronizing package databases...
error: failed retrieving file 'core.db' from mirror.archlinuxarm.org : Resolving timed out after 10000 milliseconds
error: failed to update core (download library error)
error: failed retrieving file 'extra.db' from mirror.archlinuxarm.org : Resolving timed out after 10000 milliseconds
error: failed to update extra (download library error)
error: failed retrieving file 'community.db' from mirror.archlinuxarm.org : Resolving timed out after 10000 milliseconds
error: failed to update community (download library error)
error: failed retrieving file 'alarm.db' from mirror.archlinuxarm.org : Resolving timed out after 10000 milliseconds
error: failed to update alarm (download library error)
error: failed retrieving file 'aur.db' from mirror.archlinuxarm.org : Resolving timed out after 10000 milliseconds
error: failed to update aur (download library error)
error: failed retrieving file 'archphile.db' from archphile.org : Resolving timed out after 10000 milliseconds
error: failed to update archphile (download library error)
error: failed to synchronize all databases
カーネルのバージョンを見る限り開発がかなり前ストップしたまま?なんだろうか。
翌朝...深夜の頭脳はボケボケで(笑)そういえばgpg-keyをいじってなかったなぁと....
pacman-key --init
pacman-key --populate
key更新コマンドを実行して再度アップデートを試みるとおお!始まった!!
でも...うーん余りに低速!どうなんだろう。
# uname -a
Linux archphile 5.10.83-1-rpi-ARCH #1 SMP PREEMPT Tue Dec 7 15:21:39 UTC 2021 aarch64 GNU/Linux
スタートラインには立てたがこれからまた時間が必要になる。
参考リンク Archphile 1.19 beta - codename Corona for the Raspberry Pi 4 is up
— posted by くま at 11:58 pm
Linux rAudio 5.16.0-rc3-rt7-v8 #1 SMP PREEMPT_RT Wed Dec 8 13:04:50 JST 2021 aarch64 GNU/Linux
2021/12/9
moct氏から教えてもらった新しいプレーヤーソフト
開発している方々は元々volimio開発のメンバーから袂を分けた方々らしいです。
(GUIがそっくり??)
download先 rAudio-1
さっそく rAudio-1-64bit-20121203.img.xz を使ってみると中々音が良いので
ちょっと悪戯してrt-kernelをインストールをしてみました。
最近いじっているDebian系のkernelと作業内容は同じでした。
で!このプレーヤーソフトをイジって見ようと思った理由は
ズバリ!開発ベースが Archlinux だからです。
プラシーボダラダラ状態ですが素晴らしい音がすると思います。
追記 HDMI出力ではタッチパネルで操作出来る様になっているがそのままでは日本語が表示出来ない。
表示はchromiumを改造して行っている様なので/usr/share/applications/chrome.desktopの
Exec 行に env LANG=ja_JP.UTF-8 を追加する。
こんな感じ Exec=env LANG=ja_JP.UTF-8 /usr/bin/chromium %U
localeをイジるとぶっ壊れます。
開発している方々は元々volimio開発のメンバーから袂を分けた方々らしいです。
(GUIがそっくり??)
download先 rAudio-1
さっそく rAudio-1-64bit-20121203.img.xz を使ってみると中々音が良いので
ちょっと悪戯してrt-kernelをインストールをしてみました。
最近いじっているDebian系のkernelと作業内容は同じでした。
で!このプレーヤーソフトをイジって見ようと思った理由は
ズバリ!開発ベースが Archlinux だからです。
プラシーボダラダラ状態ですが素晴らしい音がすると思います。
追記 HDMI出力ではタッチパネルで操作出来る様になっているがそのままでは日本語が表示出来ない。
表示はchromiumを改造して行っている様なので/usr/share/applications/chrome.desktopの
Exec 行に env LANG=ja_JP.UTF-8 を追加する。
こんな感じ Exec=env LANG=ja_JP.UTF-8 /usr/bin/chromium %U
localeをイジるとぶっ壊れます。
— posted by くま at 09:50 am
Comments