#chiroruLab

趣味と日々の雑記録

【Homebridge】homebridge-pc-volumeがRaspbian Buster環境でミュート出来ないバグを修正する方法

f:id:chiroru_27:20210222235656p:plain

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を再起動して動作確認し、エラーを吐かず動作すれば完了となる。



homebridgeは便利なプラグインがたくさん

いつかは私もなにか作りたいな。以上、@chiroru_27 でした。

【Buster対応】Raspberry PiでShairport Syncを使ってAirPlayレシーバーを作る

f:id:chiroru_27:20210130214532p:plain f:id:chiroru_27:20210130214537p:plain

以前にまとめた方法が古くなってきたので、最新のラズパイ(Buster)で対応できるように再整理。
Linuxの仕組みも少しは理解できてきたので、備忘録としてここに残します。

Read more

【スクレイピング】Pythonプログラムをサービス化し、自動起動させる方法

f:id:chiroru_27:20210119222318p:plain
前回スクレイピングが出来るようにchromiumseleniumを入れる工程をまとめました。
それは2021/01/19現在も、コピペするだけで動作する内容になっているのでもう少しパワーアップさせようと思います。

エラーで落ちたり、再起動したりすると手動で起動し直す必要がありますた。
そこで今回はもっと手軽に使えるようにするため、それをサービスとして登録し自動起動できるように設定していきます。

Read more

【2021】Raspberry PiでBluetooth(A2DP)オーディオレシーバーを作る


起動しない、繋がらない、音が出ない、出てもぶつぶつノイズと大遅延。
ggってもサイトごとに対処が違う、真似しても治らない、そもそもソースが少ない。
そんな絶望的状況から30回以上のクリーンインストールを得て、やっとたどり着いた最適解。

備忘録としてここに残します。

Read more