Memo
2023/4/7
[root@alarm binutils-2.40]# ldd --version
ldd (GNU libc) 2.35
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
[root@alarm binutils-2.40]# gcc --version
gcc (GCC) 12.1.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
------------------------------------------------------------------------------
クロスコンパイルintel i5
[kkuma@archserver:~/Desktop]$ ldd --version
ldd (GNU libc) 2.37
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
作者 Roland McGrath および Ulrich Drepper。
[kkuma@archserver:~/Desktop]$ gcc --version
gcc (GCC) 12.2.1 20230201
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
ldd (GNU libc) 2.35
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
[root@alarm binutils-2.40]# gcc --version
gcc (GCC) 12.1.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
------------------------------------------------------------------------------
クロスコンパイルintel i5
[kkuma@archserver:~/Desktop]$ ldd --version
ldd (GNU libc) 2.37
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
作者 Roland McGrath および Ulrich Drepper。
[kkuma@archserver:~/Desktop]$ gcc --version
gcc (GCC) 12.2.1 20230201
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
— posted by くま at 05:26 pm
HQPlayer...
2023/4/6
このrygel-1:0.42.1-1パッケージが更新される時に
恐らくHQPlayerのパッケージも同時に更新されるのでは無いかと
待っているのだが...全然兆しが無い。
そうなったら1536KHzへ挑戦しようかとクレイジーな考えが(笑)
そのための準備とかしていたりする。
HAT基板を一切使わないRaspberrypi4の動作は思っていたより軽いので
実験してみる価値はあると思う。
蛇足:独り言
某掲示板が少し前から画像up機能廃止になってから技術的解説投稿が皆無となり
商売がらみ?のAudio関連リンク板になってしまった様な気がする。
管理者の方は文系思考に近い方なのかと推測してしまう(m(_ _)m悪気は無いです)
技術的な説明は多行を費やしたテキストよりも
実画像や図面で見せられた方が理解しやすいと思うのだが違うかなぁ?
セキュリティ的問題が多いが元に戻ってくれないかと個人的には思う。
恐らくHQPlayerのパッケージも同時に更新されるのでは無いかと
待っているのだが...全然兆しが無い。
そうなったら1536KHzへ挑戦しようかとクレイジーな考えが(笑)
そのための準備とかしていたりする。
HAT基板を一切使わないRaspberrypi4の動作は思っていたより軽いので
実験してみる価値はあると思う。
蛇足:独り言
某掲示板が少し前から画像up機能廃止になってから技術的解説投稿が皆無となり
商売がらみ?のAudio関連リンク板になってしまった様な気がする。
管理者の方は文系思考に近い方なのかと推測してしまう(m(_ _)m悪気は無いです)
技術的な説明は多行を費やしたテキストよりも
実画像や図面で見せられた方が理解しやすいと思うのだが違うかなぁ?
セキュリティ的問題が多いが元に戻ってくれないかと個人的には思う。
— posted by くま at 12:42 am
Modprobed-db
2023/4/5
某掲示板にudosanがkernel更新の度に「dprobed.db」をアップしているのを見て
どう使うのか?であった。よく調べない自分が悪いのだが...
それで今回調べて見たら これは便利かも という事で試して見る。
参考リンク Modprobed-db
どう使うのか?であった。よく調べない自分が悪いのだが...
それで今回調べて見たら これは便利かも という事で試して見る。
参考リンク Modprobed-db
— posted by くま at 04:39 pm
RaspberryPi3 復活させた...
尖ったOS(笑)ばかり追求していたがたまには普通路線という事で
打ち捨てられた?RaspberryPi3があったので
(以前はsmpdの旧バージョンで運用していたが音源ソースDirのマウントが面倒になって...)
普通のRaspberryPiOSをインストール
mpd upmpdcli をインストールして音楽再生環境を作った。
だがしかし時代は古いものには厳しく特にupmpdcliのインストールは面倒だった!
以前はppaのレポジトリを追加してaptコマンドでインストール可能だったハズ^^;
今回はダメ!?だった。ここで諦めてmpd単体でも音出しは可能だが(笑)
ちょっと粘ったら...半徹夜状態になってしまった(笑)
重要なlib類はほとんどaptではインストール不可でソースをdownloadして来て
ビルドするという もう何だかなぁ
libupnpp-0.22.4 libnpupnp-5.0.1 upmpdcli-1.6.3 等
で!依存関係を無事クリアー!エラーも特に出ない状態でインストール完了したのに
得意のエラーlibupnpp.so.12が無いとか?起動しない!依存関係がぁ!?
エラーが出てないのに??
結論としては pupnpのインストールが必要だった。
忘れているのかなぁ自分(苦笑)
蛇足 ソースインストールには常にOS環境破壊(笑)とか元に戻せなくなるとか
恐ろしいリスクがあるのでは?とういう事で自分はこの様な場合にporgを活用しています。
porg は自分ビルドのパッケージ管理用ツールで以前は paco だったが現在は porg として開発が継続
自分ビルドをインストールする際にporgコマンドを使う事でインストール内容を追跡記録してくれます。
その機能により綺麗にアンインストールが出来るので元に戻して仕切り直しが可能(笑)
RaspberryPiはそのコストパフォーマンスと手軽さ?がウケて初心者の入門用として語られているのを良く見るけど
ホントにそうなんだろうか?と何時も思う。思いどうりになんて全然動かない(笑)
打ち捨てられた?RaspberryPi3があったので
(以前はsmpdの旧バージョンで運用していたが音源ソースDirのマウントが面倒になって...)
普通のRaspberryPiOSをインストール
mpd upmpdcli をインストールして音楽再生環境を作った。
だがしかし時代は古いものには厳しく特にupmpdcliのインストールは面倒だった!
以前はppaのレポジトリを追加してaptコマンドでインストール可能だったハズ^^;
今回はダメ!?だった。ここで諦めてmpd単体でも音出しは可能だが(笑)
ちょっと粘ったら...半徹夜状態になってしまった(笑)
重要なlib類はほとんどaptではインストール不可でソースをdownloadして来て
ビルドするという もう何だかなぁ
libupnpp-0.22.4 libnpupnp-5.0.1 upmpdcli-1.6.3 等
で!依存関係を無事クリアー!エラーも特に出ない状態でインストール完了したのに
得意のエラーlibupnpp.so.12が無いとか?起動しない!依存関係がぁ!?
エラーが出てないのに??
結論としては pupnpのインストールが必要だった。
忘れているのかなぁ自分(苦笑)
蛇足 ソースインストールには常にOS環境破壊(笑)とか元に戻せなくなるとか
恐ろしいリスクがあるのでは?とういう事で自分はこの様な場合にporgを活用しています。
porg は自分ビルドのパッケージ管理用ツールで以前は paco だったが現在は porg として開発が継続
自分ビルドをインストールする際にporgコマンドを使う事でインストール内容を追跡記録してくれます。
その機能により綺麗にアンインストールが出来るので元に戻して仕切り直しが可能(笑)
RaspberryPiはそのコストパフォーマンスと手軽さ?がウケて初心者の入門用として語られているのを良く見るけど
ホントにそうなんだろうか?と何時も思う。思いどうりになんて全然動かない(笑)
— posted by くま at 10:23 am
rt-kernelの確認
2023/4/3
あらぁ こんなの見つけた うちのは大丈夫かな(笑)
CONFIG_HIGH_RES_TIMERS=y
CONFIG_NO_HZ_IDLE=y
CONFIG_PREEMPT=y # low-latency kernel
CONFIG_PREEMPT_RT=y # real-time kernel
CONFIG_HIGH_RES_TIMERS=y indicates your kernel has high resolution timer support, the CONFIG_NO_HZ_IDLE means your kernel is tickless and the CONFIG_PREEMPT options indicate you're either running a low-latency kernel (CONFIG_PREEMPT) or a real-time kernel (CONFIG_PREEMPT_RT_FULL).
CONFIG_HIGH_RES_TIMERS=y はカーネルが高解像度タイマーをサポートしていることを示し、
CONFIG_NO_HZ_IDLE はカーネルがティックレスであることを示し、
CONFIG_PREEMPT オプションは低レイテンシ カーネル (CONFIG_PREEMPT)
またはリアルタイム カーネル (CONFIG_PREEMPT_RT_FULL) を実行していることを示します。
/proc/config.gz が見当たらない
普段カスタマイズしたカーネルを使っているので、いつものようにカーネルを再構築しようとしたところ /proc/config.gz が見当たらない。
そんなときは、
$ sudo modprobe configs このコマンドを実行すると/proc/config.gz が出現する!
CONFIG_HIGH_RES_TIMERS=y
CONFIG_NO_HZ_IDLE=y
CONFIG_PREEMPT=y # low-latency kernel
CONFIG_PREEMPT_RT=y # real-time kernel
CONFIG_HIGH_RES_TIMERS=y indicates your kernel has high resolution timer support, the CONFIG_NO_HZ_IDLE means your kernel is tickless and the CONFIG_PREEMPT options indicate you're either running a low-latency kernel (CONFIG_PREEMPT) or a real-time kernel (CONFIG_PREEMPT_RT_FULL).
CONFIG_HIGH_RES_TIMERS=y はカーネルが高解像度タイマーをサポートしていることを示し、
CONFIG_NO_HZ_IDLE はカーネルがティックレスであることを示し、
CONFIG_PREEMPT オプションは低レイテンシ カーネル (CONFIG_PREEMPT)
またはリアルタイム カーネル (CONFIG_PREEMPT_RT_FULL) を実行していることを示します。
/proc/config.gz が見当たらない
普段カスタマイズしたカーネルを使っているので、いつものようにカーネルを再構築しようとしたところ /proc/config.gz が見当たらない。
そんなときは、
$ sudo modprobe configs このコマンドを実行すると/proc/config.gz が出現する!
— posted by くま at 11:25 am
最新kernel sourceでrt-kernel環境を構築 ついでにdriver改造
2023/3/30
[root@alarm ~]# uname -a
Linux alarm 6.3.0-rc4-rt1-v8 #1 SMP PREEMPT_RT Thu Mar 30 20:12:33 JST 2023 aarch64 GNU/Linux
[root@alarm ~]# 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..768000 Hz
Sample formats: S16_LE, S24_LE, S32_LE
Subdevice 0, name `subdevice #0'
これが実現出来た組合せ(3/30現在)
patch: patch-6.3-rc1-rt1.patch.xz
source: https://github.com/raspberrypi/linux/tree/rpi-6.3.y
VERSION = 6
PATCHLEVEL = 3
SUBLEVEL = 0
EXTRAVERSION = -rc4
現実に戻って冷静になると...
まずrpi-dacドライバーのソース部分をイジって
本来のpcm1794aのハードウェア仕様とはかけ離れた仕様に改造している。
この改造をしても一般的なハードにはメリットがない様に思う。
DSD音源ファイルをDoP、I2S形式で出力する場合にだけメリットがある様に思う。
自分の環境ではAK4137というサンプリングコンバーターICとの組合せで動作を確認している。
RaspberryPiはMCLKを出力出来ないため一般的なスレーブモード動作のDACセットと組み合わせるためには
MCLKを発生させなければならないから
例えばAlloラズパイ用リクロッカー KALI Reclocker基板等と組み合わせる必要がある。
まだ試していないがこの基板使用時に組み合わせるドライバーもrpi-dacドライバーなので
恐らく動作する様に思う。
参考URL:
0028-nikkov-i2s-spdif-2.0.patch
ALSA: pcm: Add support for 705.6KHz and 768KHz sample rate
NanoPi-NEO2 の I2SでMCLK出力 & 384kHz, 768kHz, 1536kHz, 8kHz対応
linux-kernel-projects-rt-6.3
RaspberryPiに最新のRT-Linuxを入れる方法
Raspberry Pi 3とリアルタイムカーネル(1)[RT Preempt導入編]
追記 3/31 intel i9 j8でビルドしてこのぐらいの時間がかかる。
作業概要
1.kernel sourceにリアルタイムカーネルパッチを当てる。
2.RPi-DACの仕様変更のため下に示した部分のsourceを変更する。
3.クロスコンパイル環境でコンパイルを行う。
4.エラー無くコンパイルが終了したらSDカードの該当部分にコピー、再起動して確認する。
パッチと言うものを作った事が無いのでこれで...
#----sound/soc/codecs/pcm1794a.c----------------------------#
29c29
< .rates = SNDRV_PCM_RATE_8000_768000,
---
> .rates = SNDRV_PCM_RATE_8000_192000,
31,32c31
< SNDRV_PCM_FMTBIT_S24_LE |
< SNDRV_PCM_FMTBIT_S32_LE
---
> SNDRV_PCM_FMTBIT_S24_LE
#----include/sound/pcm.h------------------------------------#
124,126d123
< #define SNDRV_PCM_RATE_705600 (1U<<15) /* 705600Hz */
< #define SNDRV_PCM_RATE_768000 (1U<<16) /* 768000Hz */
<
139,143c136,138
< #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_384000 (SNDRV_PCM_RATE_8000_192000|¥
> SNDRV_PCM_RATE_352800|¥
> SNDRV_PCM_RATE_384000)
#----sound/core/pcm_native.c--------------------------------#
2460c2460
< 48000, 64000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
---
> 48000, 64000, 88200, 96000, 176400, 192000, 352800, 384000
#----sound/soc/bcm/bcm2835-i2s.c----------------------------#
770c770
< .rate_max = 768000,
---
> .rate_max = 384000,
780c780
< .rate_max = 768000,
---
> .rate_max = 384000,
KERNEL=kernel8 make menuconfig ARCH=arm64 CROSS_COMPILE=/usr/bin/aarch64-linux-gnu-
を実行する時に忘れてはいけない事!
CONFIG_PREEMPT_RT=y
CONFIG_HIGH_RES_TIMERS=y
Linux alarm 6.3.0-rc4-rt1-v8 #1 SMP PREEMPT_RT Thu Mar 30 20:12:33 JST 2023 aarch64 GNU/Linux
[root@alarm ~]# 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..768000 Hz
Sample formats: S16_LE, S24_LE, S32_LE
Subdevice 0, name `subdevice #0'
これが実現出来た組合せ(3/30現在)
patch: patch-6.3-rc1-rt1.patch.xz
source: https://github.com/raspberrypi/linux/tree/rpi-6.3.y
VERSION = 6
PATCHLEVEL = 3
SUBLEVEL = 0
EXTRAVERSION = -rc4
現実に戻って冷静になると...
まずrpi-dacドライバーのソース部分をイジって
本来のpcm1794aのハードウェア仕様とはかけ離れた仕様に改造している。
この改造をしても一般的なハードにはメリットがない様に思う。
DSD音源ファイルをDoP、I2S形式で出力する場合にだけメリットがある様に思う。
自分の環境ではAK4137というサンプリングコンバーターICとの組合せで動作を確認している。
RaspberryPiはMCLKを出力出来ないため一般的なスレーブモード動作のDACセットと組み合わせるためには
MCLKを発生させなければならないから
例えばAlloラズパイ用リクロッカー KALI Reclocker基板等と組み合わせる必要がある。
まだ試していないがこの基板使用時に組み合わせるドライバーもrpi-dacドライバーなので
恐らく動作する様に思う。
参考URL:
0028-nikkov-i2s-spdif-2.0.patch
ALSA: pcm: Add support for 705.6KHz and 768KHz sample rate
NanoPi-NEO2 の I2SでMCLK出力 & 384kHz, 768kHz, 1536kHz, 8kHz対応
linux-kernel-projects-rt-6.3
RaspberryPiに最新のRT-Linuxを入れる方法
Raspberry Pi 3とリアルタイムカーネル(1)[RT Preempt導入編]
追記 3/31 intel i9 j8でビルドしてこのぐらいの時間がかかる。
作業概要
1.kernel sourceにリアルタイムカーネルパッチを当てる。
2.RPi-DACの仕様変更のため下に示した部分のsourceを変更する。
3.クロスコンパイル環境でコンパイルを行う。
4.エラー無くコンパイルが終了したらSDカードの該当部分にコピー、再起動して確認する。
パッチと言うものを作った事が無いのでこれで...
#----sound/soc/codecs/pcm1794a.c----------------------------#
29c29
< .rates = SNDRV_PCM_RATE_8000_768000,
---
> .rates = SNDRV_PCM_RATE_8000_192000,
31,32c31
< SNDRV_PCM_FMTBIT_S24_LE |
< SNDRV_PCM_FMTBIT_S32_LE
---
> SNDRV_PCM_FMTBIT_S24_LE
#----include/sound/pcm.h------------------------------------#
124,126d123
< #define SNDRV_PCM_RATE_705600 (1U<<15) /* 705600Hz */
< #define SNDRV_PCM_RATE_768000 (1U<<16) /* 768000Hz */
<
139,143c136,138
< #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_384000 (SNDRV_PCM_RATE_8000_192000|¥
> SNDRV_PCM_RATE_352800|¥
> SNDRV_PCM_RATE_384000)
#----sound/core/pcm_native.c--------------------------------#
2460c2460
< 48000, 64000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
---
> 48000, 64000, 88200, 96000, 176400, 192000, 352800, 384000
#----sound/soc/bcm/bcm2835-i2s.c----------------------------#
770c770
< .rate_max = 768000,
---
> .rate_max = 384000,
780c780
< .rate_max = 768000,
---
> .rate_max = 384000,
KERNEL=kernel8 make menuconfig ARCH=arm64 CROSS_COMPILE=/usr/bin/aarch64-linux-gnu-
を実行する時に忘れてはいけない事!
CONFIG_PREEMPT_RT=y
CONFIG_HIGH_RES_TIMERS=y
— posted by くま at 08:30 pm Comment [2]
うぉ----- DoP万歳!
[root@alarm ~]# 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..768000 Hz
Sample formats: S16_LE, S24_LE, S32_LE
Subdevice 0, name `subdevice #0'
pcm1794aハードウエアのサポート範囲を超えた値の設定に成功したと思う(笑)
DSD256音源ファイル再生時のステータスは
access: RW_INTERLEAVED
format: S24_LE
subformat: STD
channels: 2
rate: 705600 (705600/1)
period_size: 16384
buffer_size: 65536
うお-----DoPが大好きだぁ(笑)
これからデバック作業に入るが
上手く行けばDSD256も問題なくDoPで再生出来るハズ!
※パッチの内容について現在 精査中です...
参考URL DSD再生環境(1) 混乱していますがこれでOK?
*** 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..768000 Hz
Sample formats: S16_LE, S24_LE, S32_LE
Subdevice 0, name `subdevice #0'
pcm1794aハードウエアのサポート範囲を超えた値の設定に成功したと思う(笑)
DSD256音源ファイル再生時のステータスは
access: RW_INTERLEAVED
format: S24_LE
subformat: STD
channels: 2
rate: 705600 (705600/1)
period_size: 16384
buffer_size: 65536
うお-----DoPが大好きだぁ(笑)
これからデバック作業に入るが
上手く行けばDSD256も問題なくDoPで再生出来るハズ!
※パッチの内容について現在 精査中です...
参考URL DSD再生環境(1) 混乱していますがこれでOK?
— posted by くま at 08:49 am
ちょっと_φ(・_・
USB type-C ケーブルでの給電はしっかりしたモノを使わないと
エライ事になるとの認識がある。(笑)
今回は U2C-AC10BK
これを使用して問題はなかった。ほっとする。
RaspberryPi400とか言うモノを今イジっています。
エライ事になるとの認識がある。(笑)
今回は U2C-AC10BK
これを使用して問題はなかった。ほっとする。
RaspberryPi400とか言うモノを今イジっています。
— posted by くま at 08:42 am
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
Comments