【Raspberry Pi OS bullseye】ラズパイをイコライザー付きBluetoothレシーバーにする忘備録
ラズパイの最新OSに関する情報がまだあまりなくつまずいたため忘備録として。
【Homebridge】homebridge-pc-volumeがRaspbian Buster環境でミュート出来ないバグを修正する方法
amixer: Unable to find simple control 'PCM' 0 |
Homebridgeのプラグインで使わせてもらっているhomebridge-pc-volumeが、ミュート操作をするとエラーを吐いてしまう問題を修正する忘備録です。
参考にさせて頂いたサイト
Raspberry Pi 4B オーディオ出力先設定: PATHpilotのブログLatest Raspberry Pi OS update - May 2020 - Raspberry Pi
Linux - Default device · Issue #554 · JosephDuffy/homebridge-pc-volume · GitHub
背景
Raspberry Pi OSのアップデートによりALSAの仕様が変更され、サウンドデバイスを一括管理していたのがデバイスごとの個別管理に変わった。実際、ターミナルでミキサーを確認するとPCMデバイスがなくなっているのがわかる。$ amixer Simple mixer control 'Master',0 Simple mixer control 'Capture',0 ...
また、このプラグインの機能はnode-loudnessライブラリで実装されており、もろにこの変更の影響を受けている状態らしい。
修正
ソースでPCMデバイスを指定している箇所があるため、ここの自分の使っているデバイスに書き換えれば動作するようになるamixerコマンドで使用しているデバイスを確認する
$ amixer Simple mixer control 'Master',0
私の環境の場合はヘッドホンなどは使っておらずUSBDACからの出力のため、Masterデバイスが対象になる。
ソースを書き換える
$ sudo nano /usr/lib/node_modules/homebridge-pc-volume/node_modules/loudness/impl/linux.js # line 55; PCM to Master # return amixer('set', 'Master', (val ? 'mute' : 'unmute')).then(() => undefined)
Homebridgeからのアクセス権限を付与
$ sudo apt install pulseaudio pulseaudio-utils
PulseAudioのデーモンを作り自動起動に登録
$ sudo nano /etc/systemd/system/pulseaudio.service [Unit] Description=Pulse Audio [Service] Type=simple ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm [Install] WantedBy=multi-user.target $ sudo systemctl start pulseaudio.service $ sudo systemctl enable pulseaudio.service $ sudo usermod -a -G pulse-access homebridge
あとはhomebridgeを再起動して動作確認し、エラーを吐かず動作すれば完了となる。