Scribble at 2021-02-26 09:48:37 Last modified: 2021-02-26 10:02:23

2月に入ってから PulseAudio と ALSA のドキュメントを読んでいる時間がかなり多くなっているし、実際に Raspberry Pi Zero W で色々な設定をしては apt remove, apt purge, apt install を繰り返している。もう pulseaudio は30回くらいインストールをやりなおしている気がする(インストール時からの正しい手順を経て成功しないと記録にならない)。つまり、これまでマイクから拾った音を無線 LAN で別の Raspberry Pi に繋がれたスピーカーへ送るという、かなり単純に思える仕組みがぜんぜん実装できていない。

幾つか問題はあるのだが、最大の問題は pulseaudio のプロセスがあまりにも頻繁に落ちてしまうことだ。そして /home/pi/.conf/pulse/client.conf にて "autospawn = yes" にしていようと、再起動しない。最近の systemd は、リモートのターミナル・エミュレータから ssh でログインしたユーザがセッションを終了させても、そのユーザが立ち上げたプロセスを強制終了させるという凶悪な挙動はディフォールトで無効にしてあると聞いたのだが、KillUserProcesses がディフォールトで、つまり Raspbian 用のソースコードでは有効になってるんだろうか(設定ファイルではコメントアウトしてるから、ディフォールトの動きに依存する)。なんにせよ、ユーザ・セッションで起動する pulseaudio はプロセスが落ちて常時監視のような用途にはまるで使えないため、system-wide でデーモンとする他に実装の答えはなさそうな気がする。

あと、PulseAudio なり Raspberry Pi に限った話ではないのだが、この手の工作系の話って、オンラインで検索しても大多数が GUI でボタンをポチポチ押した後の成功時談を書いているだけで、設定ファイルのパスも知らなければディレクティブの意味も分かってないような人たちが8割くらいを占めているので、シングルボード・コンピュータでも大して技術的な知見が深まらない。僕が既に公開した記事だけでなく、いま書いている記事でも参考にしているのは、結局は PulseAudio のソースコードだったりする。そして、こんなふうにして結果的に成功したとしても、紆余曲折がありすぎて、技術的な観点から何か書こうにも筋道が複雑だし、試行錯誤が何度もあるため、正確なところ正しい手順というものが僕ら自身にも分からなくなることが多い。それゆえ、丁寧に複雑な手順を幾つも試したという、僕らが本当に学びたいと思っている人物に限って記事やページを書こうにも書けないということになりやすく、イージーに GUIでポチポチやってたり、たまたま適当にいじくり回してうまく行っただけの人々が手軽にブログ記事を書いては「やってみた」系のクズを撒き散らして終わることになる。

そう思うと、一口に "holiday programmer" とか「日曜工作」などと言っても、実態は大きく二つに分かれるのだろう。つまり、一方はレゴのキットを買ってきてマニュアルどおりのものを組み上げる人々であり、もう一方はレゴをバラで買ってきて組みたいものを組み上げる人々だ。どちらにも目的があるだろうから、もちろんどちらも目的を成就できた方がいいに決まっているわけだが、レゴについて学ぶべきなのは、どう考えても後者のような「変人」や「暇人」だ。Raspberry Pi でこれこれの画面を操作して音が鳴りました、なんてことをブログ記事にいちいち書いてるような連中から学ぶことはない。「今日は晴れでした」と書いてるブログ記事ですら、気象学や農作業の参考になるが、既製品を組み立てた話など小学生の絵日記以下である。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook