Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。 記事の転載や、基板・キットの商用利用の方は、ご連絡ください。学生やサークルの学習目的でまとめてご購入する場合は特別価格でご提供させていただきます。
無料ブログはココログ

スポンサー

« RaspberryPi 5 の公式OSは32bit版でも64bit? | トップページ | 秋の夜長にはRaspberryPi5 RT-linux セルフビルド »

2024年10月10日 (木)

秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル

RaspberryPi5 64bit版 というか、Pi5は32bit版がないので64bitになるのですが、Sabreberry32 ドライバのコンパイルに成功しましたので、その方法を書こうと思います。

Pi5_sabreberry32_00
    <  Pi5 のRaspberryPi OSは64bitのみ  >

 

Sabreberry32のドライバソースはkernel 6.1からちょっとだけ変更箇所がありました。

諸事情によりメールでお送りする方針でやっております。必要な方はメールください。よろしくお願いします。

 

 

■ kernelのビルド

こちらの方法を参考に最新版、もしくは安定版で一度、セルフビルドしてください。 

というのも、rpi-sourceが機能しなくなっていて起動中のkernelソースを取得することができなくなっているからです。現在のLinuxのデバイスドライバはkernelと完全にバージョン一致(config情報含めたハッシュが一致)していないと取り込めないセキュリティが掛かっています。

セキュリティ用のハッシュはkernelをビルドすると生成されます。

この記事の「そもそもの話」という部分に少しだけ詳しいことをかきました。

 

 

■ Sabreberry32デバイスドライバのビルド

ソース一式をwinSCPなどにてraspberryPi上の/home/piにコピーしたところから始めます。 macな方はSCPコマンドがターミナルから使えるようです。

unzip Sabreberry32_k6.6.zip

cd Sabreberry32_k6.6/

 

カーネルソースが/home/pi/linux にあることを前提にMakefileが作られています。必要に応じて編集してください。

sudo make all

make dtbs

sudo make modules_install

sudo make coeff_install

sudo make install_dtbo

これでコンパイルとインストールは完了です。

(※)一発でコンパイルからインストールまで実行するようMakefileを変更しました。

 

 

■ Sabreberry32デバイスドライバ組み込み

sudo make install

組み込まれたか見てみましょう。

pi@raspberrypi:~/Sabreberry32_k6.6 $ lsmod | grep sabre
sabreberry32   16384  2
sabre9018q2c   20480  2 sabreberry32
regmap_i2c    12288  1 sabre9018q2c
snd_soc_core   315392  5 sabre9018q2c,vc4,snd_soc_hdmi_codec,designware_i2s,sabreberry32
snd_pcm     143360  8 sabre9018q2c,snd_soc_hdmi_codec,designware_i2s,
snd_compress,snd_soc_core,sabreberry32,snd_pcm_dmaengine

大丈夫そうですね。

 

 

■ config.txtにSabeberry32指定

sudo nano /boot/firmware/config.txt   で編集します。 以前は/boot/config.txt でした。以下 青文字が追記するところです。

dtparam=i2c_arm=on
dtparam=i2s=on

・・・・・・

#dtparam=audio=on
dtoverlay=sabreberry32
#dtoverlay=hifiberry-dacplus-pro

・・・・・・

dtoverlay=vc4-kms-v3d,noaudio

・・・・・・

 

「Ctrl+X」 「Y」 「エンター」 で保存して閉じます。

サウンドカードを1つだけにすることでmpd設定を簡単にしています。

 

※ i2c_arm=on としてもi2cが使えないときがありました。 そんなときは

sudo raspi-config

  Interface Options -> I2C  ->   Enable  ->   <YES>  で設定します。

 

 

sudo reboot

再起動して確認します。

:::::起動をまちます:::::

 

pi@raspberrypi:~ $ dmesg | grep sabre
[ 5.361184] sabre9018q2c: loading out-of-tree module taints kernel.

とくにエラーもない様子。

pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SabreBerry32DAC [SabreBerry32DAC], device 0: SabreBerry32 DAC sabre9018q2c-dai-0 [SabreBerry32 DAC sabre9018q2c-dai-0]
Subdevices: 0/1
Subdevice #0: subdevice #0


 

認識していますね。

ちなみに、Pi5、Pi4で masterモード動作します。 slave指定すればslaveでも動作します。

 

 

以下のコマンドから好みのパラメータに設定してご使用ください。

alsamixer

Sabreberry32_alsamixer

 

 

(※) 10/14  pi5 でmaster 動作するようになりましたので記事を一部修正しました。

 

« RaspberryPi 5 の公式OSは32bit版でも64bit? | トップページ | 秋の夜長にはRaspberryPi5 RT-linux セルフビルド »

Raspberry Pi」カテゴリの記事

Sabreberry32」カテゴリの記事

コメント

Pi5にのっかってるSabreberry32の姿を見れて嬉しいです。
私自身、今までkernelをビルドした事がなく、というかkernelをビルドする意味も知らず
ラズパイで音楽を聴いてきましたが、先日の記事「秋の夜長〜」を読み、
linuxに対する興味が湧いてきました。
いつも丁寧、かつ分かりやすく、素晴らしい情報を発信してくださり、
ありがとうございます。

linux(というかソフトウェア全般)について知識も能力も不足している自分ですが、
Sabreberry32をより楽しむためにドライバのコンパイルをしてみたいと思っています。
もしよろしければ、ドライバのソースを譲っていただければ幸いです。

たかじんさん、

 bcm2712では、SND_SOC_DAIFMT_NB_NFは効かなくなった(無視されている)のでしょうか。逆に、明示的にslaveにしないと動かないものもある。

 Pi5が出て暫くたちますが、対応方法はあるのでしょうか。

あみのんさん

ありがとうございます。 
音楽を楽しむ上でLinuxの知識は必要ないように思われがちですが、この世界では「必要」です(笑)
Linux開発者のリーナスさんがインタビューに答えていた記事には、RT-linuxの修正依頼をかけた人はギターリストだったらしいです。その人の功績で、標準Linuxに RT-linuxが統合されました。 RT-linuxは音が良いという理由でリーナスさんに依頼したとか・・・

ドライバソースは、new_western_electric@yahoo.co.jpまでメールを頂ければ添付して返信いたします。
色々と自分好みのものに仕上げていければと思います。

よろしくお願いします。


AYOR さん

Pi5でもmasterモードで動作するHAT基板があるのでSND_SOC_DAIFMT_NB_NFが無効化されたわけではないハズです。

現在調査中ではあるのですが、ネットワークが切れまくって思うように作業が進みません。

どうも、最新のkernel 6.6.51はネットワークが不安定なようです。 SSH接続すると普通につながるんですが、5~10分くらいで切れてしまいます。 有線も無線もです。
6.6.31ではそんな事ないので、最新版kernel ソースをgetするのは良くないようです。 ラズパイ公式のビルド方法説明としてはそうせざるを得ないのでしょうけど。

この記事です。 とあるギタリストがRT-Linuxを推したという話。

https://japan.zdnet.com/article/35224173/

たかじんさん、
 
 情報有難うございます。

 よろしかったら、masterモードで動作するHAT基板を教えて頂けますか。私は、未だ出会えておりません(特にDAC系)。ソースは見れるものでしょうか。

 動作確認ができているカーネルをビルドした方が良さそうですね。

 

AYORさん

SB32+Pro DoPはDACマスターで動いていますよ。マスターモード時に点灯するLEDが光っているので間違いないです。

たかじんさん、

 灯台下暗しといいましょうか。
Pi5、64bitカーネルでマスターモードで動作可ということですか。
となると、私が他のものと混同していた...
 
 ということは、HifiberryDAC+PRO等も上記(slaveの明示なしで)で動作可の可能性があるということでしょうか。BCM2712になってクロック関係が変わってしまったと思っていました。

 Hifiberryのサイトでは、5.4以上のカーネルでも、HAT上のEEPROMを読みに行かない(あるいはEEPROMがない?)なら、(Raspi5でも?)以前と同じようにドライバーをロードすれば、カードが認識されるという記載はあります。これは、マスターモードで動作することを意味していたのか確認がとれていませんでした。

たかじんさん

Sabreberry32のドライバソースを送信いただき、ありがとうございます。
Pi4 (raspberrypi 6.6.54-v8)にインストールできました。
mpdはキタムラデザインさんのmuteでインストールし、
マスターモードで音が出ています。
syncモードも使えてとても満足しています。

また、RT-Linuxの記事も興味深く拝見しました。
ギタリストがプログラムの躍進に貢献なんて、夢があって良いですね。

AYOR さん

Pi5が出た当初、そういう話が上がっていました。 IO周りが独立したICになり、Pi4と随分変わったからだと思います。
HATのEEPROM搭載は、あまり積極的ではなくなったように思います。 自動でドライバが取り込まれる仕組みを作っていましたが、結局、対応する基板(EEPROMを搭載する基板)が少なかったからでなないでしょうか。

HifiberryDAC+PROは、私も1枚持っていたはずなのですが誰かに貸したきり行方不明です。 おそらくPi5 でもmasterで動作すると思います。


あみのんさん

なんと。早いですね。 成功おめでとうございます。 カーネルソースに安定板があることに気が付いて、先日の記事を修正しました。 6.6.31です。

そして、ちょうどいま、Fully Preemptible Kernel のRt-Linux起動に成功しました。 問題ないか少しチェックしてから紹介する予定です。

お楽しみに。

たかじんさん

rt-kernelは、やはり良いですよね。
当方も、Pi5で動作する非公式のArchLinuxのrt-kernelをビルドして遊んでいます(^^;

えふさん

RT-Linuxで再生すると、確かに音が違うんですよね。 緊迫感というか演奏者の気迫が違って聴こえる。

それにしてもPi5の発熱・・・ 夏には向きませんね。

Pi4はeeprom更新により発熱が下がったそうです。

Raspberry Pi5 + Sabreberry32 で Volumio3 を使用したいのですが、
ソースコードを譲っていただけないでしょうか?
宜しくお願いいたします。

h-takaさん

お手数ですが、以下までメールをお願いいたします。
new_western_electric@yahoo.co.jp

コメントを書く

(ウェブ上には掲載しません)

« RaspberryPi 5 の公式OSは32bit版でも64bit? | トップページ | 秋の夜長にはRaspberryPi5 RT-linux セルフビルド »

サイト内検索(new)

2025年3月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31