- 最終更新日
- 記事公開日
ラズパイZEROでGPIO(PWM)から音を出すのを諦めた話/内蔵オーディオBCM2835を認識しない
ラズパイZEROでGPIO(PWM)から音を出すため、丸2日ハマリましたが、無理でした・・・
しかし、もしかしたら何だかのヒントになるかもしれないので、記録として残しておきます。
最終的に分かったのは、どうやら2020年12月にリリースされたRaspberry Pi OSだと、オーディオの実体がないと、内蔵オーディオBCM2835を認識しなくなった?
↑の記事に書かれているように、
sudo nano /boot/config.txt
に下記のコマンドを追記↓
dtoverlay = audremap、enable_jack = on
オーディオデバイスを確認↓
aplay -l
これで、一応「bcm2835 Headphones」を認識するようになりました。
ただ、他の方が紹介されている記事のような表示とは違います。
ちなみに、「audremap」は何を意味するのか?
- PWMサウンド出力をピン12および13に切り替えます
- swap_lrチャネル割り当てを逆にする
- オーディオジャックの出力を入れ替える(デフォルトはオフ)
- enable_jackオーディオジャック出力をオフにしません(デフォルトはオフ)
ここから先は他に情報もなく、手詰まりとなりました。
以降、試したオーディオ関連のコマンドをまとめておきます。
raspi-configが起動しない
オーディオの出力方法を変更しようと「raspi-config」の起動コマンドを実行↓
sudo raspi-config
ところが、「raspi-configが見つからない」とのエラーが表示されてしまいました。
sudo raspi-config command not found
以下のコマンドで「raspi-config」をインストール。
sudo apt-get install raspi-config
デフォルトで入っていなかったもよう。
raspi-configのAidioの場所が違う
多くの方がAudioをHDMIからPCMに変更する方法として、
[raspi-config]-[Advanced Opstions]- [Audio] - [Force 3.5mm (Headphone)]
と書いていました。
ところが、私がインストールした最新版のOSでは、
[raspi-config]-[1 System Options] - [S2 Audio]
となっており、Audioの位置が変わっていました。
※なお、クリックしたところで何も起こりませんでした。
オンボードのオーディオを有効に
「/boot/config.txt」に「dtparam=audio=on」を追記。
すでに記入されていました。
PWMピンの設定
sudo gpio -g mode 13 pwm
sudo gpio -g mode 18 pwm
gpio readallコマンドで確認したところ、ピンの状態は、
- GPIO13 → ALT0
- GPIO18 → ALT5
に変わっていました。
モジュールの確認
sudo cat /etc/modules
本来なら「snd_bcm2835」が表示されるらしいのですが、何も表示されず。
ロード済みモジュールの確認
lsmod
snd-bcm2835が入っていたので、読み込まれてはいるみたいです。
全てのサウンドカードとオーディオデバイスを表示
aplay -l
エラー
aplay: device_list:272: no soundcards found...
全ての定義された PCMを表示
aplay -L
認識されず。
null
Discard all samples (playback) or generate zero samples (capture)
サウンドカードの確認
cat /proc/asound/cards
認識されず。
--- no soundcards ---
サウンドシステム「alsa」の再インストール
sudo apt-get remove alsa-utils
sudo apt-get install alsa-utils
sudo reboot
音を鳴らすポートの選択
- 0:auto
- 1:analog
- 2:hdmi
「アナログ」を選択↓
amixer cset numid=3 1
エラー
amixer: Control default open error: No such file or directory
snd-bcm2835モジュールの追加
sudo modprobe snd-bcm2835
何も起こらず。
ラズパイが認識しているオーディオをリセット?
オーディオデバイスを抜き差しして、再起動すると、オーディオデバイスを認識する場合があるらしい。
サウンドミキサー関係の表示
サウンドミキサーの表示
alsamixer
サウンドミキサーの状態を表示
amixer
サンプル再生
元々入っているサンプル音を再生します。
sudo aplay /usr/share/sounds/alsa/Noise.wav