最終更新日
記事公開日

ラズパイZEROでGPIO(PWM)から音を出すのを諦めた話/内蔵オーディオBCM2835を認識しない

ラズパイZEROとスピーカー

ラズパイZEROでGPIO(PWM)から音を出すため、丸2日ハマリましたが、無理でした・・・

しかし、もしかしたら何だかのヒントになるかもしれないので、記録として残しておきます。

最終的に分かったのは、どうやら2020年12月にリリースされたRaspberry Pi OSだと、オーディオの実体がないと、内蔵オーディオBCM2835を認識しなくなった?

PiZeroにサウンドカードが見つかりません(英訳)

↑の記事に書かれているように、

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
この記事のURLをコピー

メールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

関連情報

運営者プロフィール
コダマ

職業はIT系フリーランス。過去、電子配線業務の経験が10年ある為、はんだづけも得意です。宮崎県在住、30代・2児の父親。

プロが教える!イチからわかるハンダ付けのコツ(工学社)の著者です。

カテゴリー