/ 雑記帳

電源基板 for I2SSender

ああ!嫌になる何故I2S-Sender基板の電源が
こんなにも音質に影響するのか??
LoT電源IC程度で良いと思っていたがどうも違うらしい。
2A以上流せるRaspberryPi4やAPU用基板クラスまでは要らないと思っていたが
違いが聴こえてしまうと外す事が出来なくなる(苦笑)

紹介していなかったが熊電源基板3.3V版を一枚だけ作っていた。
経験的に良いと思われる贅沢部品の搭載と
自分的には嫌いなブリーダー抵抗をつけて安定させている基板だ。
(出力電圧が低くてフィードバックをかけないための処置ではある)
それをI2SSender基板へ繋ぐと明らかに音の勢いが違う
もう...なんでだろーなんでだろーの世界へ突入だな。

現在取り組んでいる 64bit rt-kernel でRaspberryPi4やKALI Reclocker基板を動作させると
とにかく電流が必要になり普段よりも電圧を上げて動作させている。
そうしないと動作がまったく安定しない。RaspberryPi4側はLow Voltageの警告が出る。
KALI Reclocker基板の方は反応しなくなる?高価な基板なので非常に怖い。
電圧をかけ過ぎで壊してしまいそうな感じが絶えずしていて緊張しっぱなし(笑)

ラズパイってこんな音も出るんだ...とか今更ながら思っています。

— posted by くま at 09:54 pm  

 

スクリプト

母艦がLinuxじゃないと使えないと思うけど....
RaspberryPiがネットワーク上に出現したら
-----------------------の間のコマンドを実行するスクリプトです。
自分は自動ログインしてターミナルが開くスクリプトを実行しています。
発見するまでループを継続します。
色々とイジるため必要になり書いてみました。
普通であればログインではなくプレーヤーソフトを起動するのが良いと思います。

#! /bin/bash

ipn=`ip a | grep UP | grep enp | awk -F": " '{print $2}'`
dev=`sudo arp-scan -I $ipn 192.168.1.0/24 | grep Raspberry`
sen=`sudo arp-scan -I $ipn 192.168.1.0/24 | grep Raspberry | awk '{print $3}'`

echo "$sen"
echo "$dev"

until [[ $sen == "Raspberry" ]]
sen=`sudo arp-scan -I $ipn 192.168.1.0/24 | grep Raspberry | awk '{print $3}'`
echo "-----------------------"
/usr/local/bin/Raspberry-login.sh
echo "-----------------------"
do
read sen
done

— posted by くま at 10:41 am  

ArchlinuxをRaspberryPi4へインストール(4) まとめ?

1.Archlinux最初の段階でこのパッケージを参考ページの方法でインストールする。
wget http://jp.mirror.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz
Archlinuxなのでそのまますんなりは起動しない。もちろんsshで接続出来ない。
HDMI端子を接続して起動画面に表示されるエラーメッセージから何処に問題があるか?判断する。
自分の場合はエラーメッセージからSDカードのパーテーション名が見つからないと訴えていた様だったので
fdisk -l コマンドで調べた。
※fstabの記述が実際のパーテーションと合致していないので修正する必要有り。
そのままでは起動するだけで有り難い。Audioなんてまったく無理な状態である。

2.すべての不具合の原因はkernelだと思われたので入れ替えをする事にした。
ちょうどrt-kernelをイジっていたのでそれを組み込んで見る事にした。
そのためArchlinuxが動作しているデスクトップPC上にクロスコンパイル環境を構築する。
以前に上げたページが参考になるがこれはDebian環境のものなのでArchlinux環境に置き換えて作業する。
ビルドユーティリティの互換性は無い。

3.以前に上げたソースとパッチの組み合わせでrt-kernelを構築する。この際に使うconfigは
1.でインストールしたArchlinuxから引っこ抜いたモノをベースとして作成する。

4.コンパイルが終了したらRaspberryPi4本体へコピーとモジュールインストールを行う。
たぶんこの作業後の起動時に再度fstabを修正する必要がある。
無事に起動したらpacmanで更新を行いめでたく完成となる。

※細かい作業内容のアップの希望があったが...あぁでも無いこうでも無いと色々やって(笑)
 正確な記述は難しいのでご勘弁...
 一度でも完成すればclonezillaでimgを作って後は短時間でクローンSDカードが作れるので
 面倒な再度の検証しないからまともに書けないというのが理由だったりする。 

余談 こんなに苦労しても Archlinux に拘るのは自分が Archlinux 信者だからである。
   理屈も根拠も全く無いが Archlinux は音が良いと多くの人々に信じられているのである(笑)

— posted by くま at 07:43 pm  

 

ArchlinuxをRaspberryPi4へインストール(3) 設定編

固定アドレスにする。
[root@alarm network]# cat eth0.network
[Match]
Name=eth0

[Network]
DHCP=No
DNSSEC=no
Address=192.168.1.23
Gateway=192.168.11.1
DNS=8.8.8.8
DNS=8.8.4.4

ドライバーがロードされる様に
[root@alarm boot]# cat config.txt
enable_uart=1

gpu_mem=32
initramfs initramfs-linux.img followkernel
max_usb_current=1
disable_splash=1
disable_overscan=1
dtparam=krnbt=on
#dtparam=audio=on
dtparam=i2s=on
dtoverlay=allo-digione
#dtoverlay=rpi-dac

なんでこんな設定が...
[root@alarm etc]# cat fstab
# Static information about the filesystems.
# See fstab(5) for details.

#
/dev/mmcblk0p1 /boot vfat defaults 0 0
/dev/mmcblk0p2 / ext4 defaults 0 0

snd関連モジュール
[root@alarm etc]# lsmod | grep snd
snd_soc_wm8804_i2c 16384 1
snd_soc_rpi_wm8804_soundcard 16384 1
snd_soc_bcm2835_i2s 16384 2
snd_soc_wm8804 20480 1 snd_soc_wm8804_i2c
snd_soc_core 253952 3 snd_soc_rpi_wm8804_soundcard,snd_soc_bcm2835_i2s,snd_soc_wm8804
snd_compress 20480 1 snd_soc_core
regmap_i2c 16384 1 snd_soc_wm8804_i2c
snd_pcm_dmaengine 20480 1 snd_soc_core
snd_pcm 135168 6 snd_soc_bcm2835_i2s,snd_soc_wm8804,snd_compress,snd_soc_core,snd_pcm_dmaengine
snd_timer 36864 1 snd_pcm
snd 98304 5 snd_timer,snd_compress,snd_soc_core,snd_pcm

— posted by くま at 12:39 pm  

ArchlinuxをRaspberryPi4へインストール(2)

元カーネルはモジュールが使用出来ない状態なのか?
Audio用に使えない様だったので思い切ってrt-kernelに置き換えをした。
トラブルの内容はここに書かれている内容そのものだった。
https://archlinuxarm.org/forum/viewtopic.php?f=65&t=15090
一番不可解であった部分...
overlaysディレクトリーはrt-kernelをビルドしたときにソースツリー内に出来たので
それを所定の位置に丸ごとコピーしてconfig.txtに追記する事でロード出来た。

それで結果としては
[root@alarm ~]# uname -a
Linux alarm 5.16.0-rc3-rt7-v8 #2 SMP PREEMPT_RT Thu Dec 16 11:20:10 JST 2021 aarch64 GNU/Linux

[root@alarm ~]# al
**** List of PLAYBACK Hardware Devices ****
card 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 2: sndrpirpidac [snd_rpi_rpi_dac], device 0: RPi-DAC HiFi pcm1794a-codec-0 [RPi-DAC HiFi pcm1794a-codec-0]
Subdevices: 0/1
Subdevice #0: subdevice #0

Archlinux 64bit rt-kernel とりあえず起動!
まずは音出し成功!! 時間がかかりました^^;
ああこれから仕事です。残念...もっと聴きたい。
DebianベースOSと比較して明確に音が違います。
嬉しくなって来ました(笑)

追記:今回の成功の鍵は...aarch64-linux-gnu-binutils-2.37-1-x86_64.pkg.tar.zst
   これですね。
最初にrt-kernelを作った時に使ったツール(Debian系)とArchlinuxのkernelを作るツールは互換性が無いという...

— posted by くま at 02:07 pm  

ArchlinuxをRaspberryPi4へインストール(1)

ここを参考にArchlinuxをインストールして見ました。 Raspberry Pi 4
今、upmpdcliの依存関係と戦っています(笑)
あちゃ...ドライバーが無い。overlayディレクトリ-が無い??
[root@alarm ~]# al
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 7/7
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: vc4hdmi0 [vc4-hdmi-0], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: vc4hdmi1 [vc4-hdmi-1], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

— posted by くま at 11:22 am  

ADC...

お気楽kit製のADC基板を制作、動作確認OKです。
本当は旭化成製のICを使ったkitの方を狙っていたのですが
例の火災でこちらを使う事としました。
気がついて見ると我が家には
テストに使うRCA出力端子の付いた機器が
ほとんど存在しませんでした(笑)
この基板にはレコードプレーヤーの入力を入れる予定ですが
カートリッジの出力電圧が低いので
間にオペアンプかゲインが高めのトランスを入れようかと考え中...

ADC



— posted by くま at 05:44 pm  

Linux rAudio 5.16.0-rc3-rt7-v8 #1 SMP PREEMPT_RT Wed Dec 8 13:04:50 JST 2021 aarch64 GNU/Linux

moct氏から教えてもらった新しいプレーヤーソフト
開発している方々は元々volimio開発のメンバーから袂を分けた方々らしいです。
(GUIがそっくり??)
download先 rAudio-1
さっそく rAudio-1-64bit-20121203.img.xz を使ってみると中々音が良いので
ちょっと悪戯してrt-kernelをインストールをしてみました。
最近いじっているDebian系のkernelと作業内容は同じでした。
で!このプレーヤーソフトをイジって見ようと思った理由は
ズバリ!開発ベースが Archlinux だからです。
プラシーボダラダラ状態ですが素晴らしい音がすると思います。

rAudio-11


rAudio-rt



追記 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  

clonezilla 万歳!

自分は新しいソフトのテストや新規OSインストール時は
作業の節目で必ずクローンのHDを作ってそこまで戻れる様にしている。
その時までの貴重な作業が無駄にならないために!
その様な用途で使用するクローンコピーソフトが clonezilla だ。
現在まで有料のソフトも含めてこの手のソフトを使って来たが
成功率はこのソフトがTOPだ。
成功率と書いたのは何らの条件下では失敗する事もあるから...
この事はこの手のソフトを使った経験ある方なら理解して貰えるはず...
で! 今回このclonezillaがOSのデスクトップ上で使える様になった!!
とても嬉しい。以前はUSBメモリーに書き込んでそこから起動して使うモノであった。
Archlinuxでのインストールは極めて簡単で pacman -S clonezilla これでOKである。
(ubuntuならapt-get install...)

早速テストを兼ねてRaspberryPi rt-kernelをインストールしたSDカードを
イーメージ化して他のSDカードにレストアしてみた。
問題なくクローンSDカードが出来上がっていた...感動である。
しかも常用していたddコマンドより圧倒的に早い。

2021-12-0600-37-05



参考URL  clonezilla 万歳!

— posted by くま at 11:16 am  

64bit rt-kernel への道(2)

パッチのdownload先
https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/
カーネルソースのdownload先
https://github.com/raspberrypi/linux

一番参考になったサイトは
64bit 版 Raspberry Pi OS のカーネルモジュールのビルド環境設定
1.gcc のビルドという部分は実はクロスコンパイル環境の構築するための作業になっている。
なのでこれをintel-CPUのPC上で行えばクロスコンパイル環境が出来る。
ただしrpi-sourceは使用しなかった。
このソース取得部分はたかじん氏のサイトの方法を真似させていただきましたm(_ _)m
このサイトの説明で大変に重要な事は最後の2行です(笑)
$ KERNEL=kernel8 make ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu-
※ ビルドコマンドが make の場合
とにかく例外なくこの呪文を使えと
たとえばKERNEL=kernel8 make menuconfig ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu-

使用したソース等
2021-05-07-raspios-buster-arm64-lite.img
linux-9299025206cb3f9b1146aa2c3c1de5df8fc92e9c
(linux-rpi-5.16.y.zip)
patch-5.16-rc3-rt7.patch.xz
binutils-2.37.tar.xz
gcc-8.4.0.tar.xz

ここまで来ればもう根性しかない(笑)という事で
パッチを当てたソースをコンパイルじゅうたん爆撃をした結果として

root@raspberrypi:~# uname -a
Linux raspberrypi 5.16.0-rc3-rt7-v8 #1 SMP PREEMPT Sat Dec 4 19:35:24 JST 2021 aarch64 GNU/Linux

「rt7」です。憧れ?のリアルタイムカーネルです。

root@raspberrypi:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndallodigione [snd_allo_digione], device 0: Allo DigiOne HiFi wm8804-spdif-0 [Allo DigiOne HiFi wm8804-spdif-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

問題なくサウンドカードを認識しています。

音出し成功です。
肝心の音は疲れすぎで後日コメントします(笑)
とりあえずddコマンドでバックアップを取り
それを書き戻して動作が確認できたので一安心です。
ところが...
追記12/05 えふさんのコメントからプリエンプションのミスが発覚しました!
本来Fully Preemptible Kernel (Real-Time)を選択すべき部分でした。

RT


再度configしてコンパイルをやり直してSDカードに反映しました。
コンパイル終了後に残っている.configをエディターで開いて再度確認しました。

CONFIG_HAVE_PREEMPT_LAZY=y
CONFIG_PREEMPT_LAZY=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_RT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y

大丈夫な様です^^;

— posted by くま at 03:57 pm   commentComment [8] 

<< 2021.12 >>
SMTWTFS
   1 2 3 4
56 789 1011
12 131415 16 17 18
1920 2122 23 24 25
26 27 282930 31 
 
























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