Raspberry Piの環境構築とトラブル事例2025年10月20日 19時37分41秒

Raspberry PiにヘッドレスAudirvanaを載せるのはよいとして、問題はOSをどうするかである。

ちまたの情報によれば、OSの音への影響はかなりあるらしい。最もシンプルなものが最もよい結果を得られるのではないかと、だれもが考える。Raspberry OSインストーラーを開くと、各種のOSがそろえてあって、たとえばVolumioを使いたいというのであれば専用OSをここで選択できる。最初はとにかくRaspberry環境に慣れるため特殊なものは避けて、Desktop環境を含んだフル版からはじめてDesktop環境がないLite版あたりを使っていた。

しかし今回の目的のためには、いかにも無駄な機能が多すぎる。もっとコンパクトなほうがよい。こうして最終的にたどり着いたのが、DietPiである。Audirvanaのフォーラムを覗いてみると、結構使っている人が多そう。これはdietpi.comから直接ダウンロードできる。

インストール方法も詳しく書かれているので迷うことはない。しかしそのままというわけにはいかない。いくつか手を加える必要がある

まず一番最初に入れるべきなのはエディタである。私の場合、もっとも使い慣れているのがvimエディタ。
次に、Macの音声をRaspberry Piで受信できる環境を構築するために、shairport-syncを入れる。
もちろんAudiruvanaだけしか使わないというのであれば、必要ない。しかし、YouTubeには素晴らしい音源がごろごろ転がっていて、これを見逃す(聞き逃す)手はない。
shairport-syncでMacとRaspberry Piがつながることで、ネットワーク環境に問題がないことが確認できる。Audirvanaを動かしていて、何か不具合が起きたときの問題の切り分けに大いに役立つ。

最後にAudirvanaをインストールして完了。こちらもフォーラムに詳しい情報が掲載されている。IDとパスワードを入れて認証が完了する。

こんなふうにして数ヶ月間、あまりトラブルなく使っていたのだが、数日前に突然Audirvanaが不調になってしまった。最初はAudirvanaのほうに何か問題が起きたのかといろいろ試してみたのだが、まったく進展がない。そのうちshairport-syncもぶつぶつ切れるようになってしまった。ネットワークに問題があるのかといろいろやってみたがいずれも白。
万策尽きて、新しいSDカードにOSを入れる所からやり直してみた。そうしたらあっさり動くではないか。
試しに、障害が起きたSDカードをもう一台のRaspberry Piにさして起動してみると、こちらも同じ現象が起きた。
不具合の原因として二つ考えられる。一つは、OSや設定フィアルのどこかをいじったために整合性がとれなくなり、動かなくなったか。しかし全く覚えがない。不思議なのは、うごかしているうちにどんどん症状が変化していくこと。頭の中は???でいっぱいになる。

次に考えられるのは、SDカードに何かの障害が起きてファイルが一部壊れたか。Macのディスクユーリティーで確認すると、64GBあるはずなのに数百MBと表示されて、明らかに異常である。

SDカードが壊れやすいということは聞いていたが、経験したのは初めて。れっきとした一流メーカー製なのに。たった数ヶ月で壊れるようではたまらない。読み出し専用フィルはSDカードに残し、頻繁に書き込みするファイルはUSBドライブに切り分けたほうがよいのかもしれない。

なにごともそうであるが、奥を極めるためにはいろいろなトラブルを経験してノウハウを積まなければならない。

Raspberry Pi + TDA1541A/S1 DACの製作(1)2025年09月29日 21時00分22秒

Raspberry Pi からI2S経由でTDA1541AのSimultanus mode対応の信号を取り出すことが確認できたので、次にこれを実機としてまとめ上げていくことにする。

そこで最初に問題となるのがハコである。入れ物が決まらないと、何をどこまで実装するかが定まらない。
今のDACのケースをそのまま使うことを考えたのだが、どうやっても納まりきらない。新しいケースを探すことにした。
予算、筐体のデザイン、実装能力もろもろを考慮したら、結局Mac Pro(2010Mid)に落ち着いた。いつの間にか我が家に3台も並ぶことになるとは、我ながらあきれかえるというか。。

某オークションで入手したものは、中身が抜き取られていてケースのみ。中を開けて不要なパネルやスタッドをはずし、これで準備は整った。
とりあえず現DACから電源部を移植していくことから始める。その間に、入出力端子の実装方法を考えていこう。

Raspberry Pi4BからI2S出力 その42025年09月23日 21時09分53秒

Raspberry Pi→OSC基板→I2stoPCM基板と接続し、I2StoPCMからの信号を確認した。
上のチャンネルがLEで下のチャンネルが音声信号を示す。
クロック信号は示していないが、興味深いことにI2StoPCM基板は音声信号を出力する16bit区間だけクロックを出し、それ以外はクロックは停止する。ノイズ抑制が目的らしい。クロックが停止していてもDACは正常動作する。これはI2StoPCM基板の大きな特徴である。

Raspberry Pi4BからI2S出力 その42025年09月23日 20時53分17秒

前回からの続き。以下、備忘録。
Raspberry Pi上で次のコマンドを打つ。
(1)
git clone https://github.com/MKSounds/ADAU1701-I2S-Audio-Driver-for-Raspberry-Pi.git
(2)
ダウンロードしたら下に書かれた名前のファイルを探してコマンドを打つ。
sudo cp generic_audio_out_i2s_master.dtbo /boot/overlays
(3)
/boot/firmware/config.txtに以下のコードを書き込む。
dtoverlay=generic_audio_out_i2s_master
(4)
airplayの環境
/etc/shairplay-sync.confに以下のコードを書き込む。
outputdevice=hw="0:0"
ただし、0:0の部分はaplay -lやaplay -Lでcard番号とdevice番号を確認して、適宜書き換えること。

Raspberry PiのGPIO端子のpin40に信号が出力されることを確認できれば、正常に動作している。

Raspberry Pi4BからI2S出力 その42025年09月12日 20時59分57秒

デバイスドライバの勉強

ということでTDA1541Aマスターモードのデバイスドライバについて。
山に登るためには基礎が肝心。Linuxカーネルから勉強しなければということで、「私はどのようにしてLinuxカーネルを学んだか Device Tree編」をKindle版で買って読んでみた。
これはこれでゼロからデバイスドライバを書こうという人には役に立つであろう。私にも、デバイスドライバとは何かというイメージをつかむためには有益であったが、ちょっと詳しすぎる。20年前なら学ぶ意欲をかき立てられただろうに、こちらは時間がない。

そこで次にネットを検索してみると、いくつかヒットする。しかし10年以上も前の情報である。Linuxの世界も日進月歩で、そのまま使うことができない。

その中でも一番に目星をつけたのが、以下のサイト。
Raspberry Piで、DACチップ無しでI2Sを出力する

Raspberry Pi 上に必要なファイルをダウンロードし、カーネルのビルド環境を整え、書かれている従ってファイルを書き、ビルドしてみる。ところが最後の最後でどうしでもエラーが出てしまう。私の知恵では二進も三進もいかず、断念。

そのほかにもいろいろなサイトを参考に挑戦したが、すべて敗退。
途中経過を省略して、最後にたどり着いたのがMKSoundsさんが公開している以下のリポジトリ。
thub.com/MKSounds/ADAU1701-I2S-Audio-Driver-for-Raspberry-Pi">ADAU1701-I2S-Audio-Driver-for-Raspberry-Pi
詳細はまた次のコラムで。