RaspberryPi 3 Model B にて、USBスピーカーを使えるようにする。
USBスピーカーにある音量ボタンも使えるようにする。
使用する機材
- RaspberryPi 3 Model B
- USBスピーカー ELECOM MS-P05UBK
本体にボリュームボタン、MUTEボタンが付いている。
準備
- Raspbianをインストール
- SSH設定
作業用
作業
- 音声出力先をUSBスピーカーにする
- alsa-base.confを作成
bash: /etc/modprobe.d/alsa-base.conf
options snd slots=snd_usb_audio,snd_bcm2835
options snd_usb_audio index=0
options snd_bcm2835 index=1
- 音声出力先優先度確認
cat /proc/asound/modules
0 snd_usb_audio
1 snd_bcm2835
- 再生テスト
以下でスピーカーから音が出ればOK
aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Center.wav
(補足)
-D plughw:0,0 の指定について
aplay -l にて、接続デバイスを確認
カード0、デバイス0が、対象のデバイス(USBスピーカー)なので、0,0を指定する
aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: Set [C-Media USB Headphone Set], デバイス 0: USB Audio [USB Audio]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 1: ALSA [bcm2835 ALSA], デバイス 0: bcm2835 ALSA [bcm2835 ALSA]
サブデバイス: 8/8
サブデバイス #0: subdevice #0
サブデバイス #1: subdevice #1
サブデバイス #2: subdevice #2
サブデバイス #3: subdevice #3
サブデバイス #4: subdevice #4
サブデバイス #5: subdevice #5
サブデバイス #6: subdevice #6
サブデバイス #7: subdevice #7
カード 1: ALSA [bcm2835 ALSA], デバイス 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
- ボリュームを設定する
amixerにて、コマンドラインから設定可能
ボリュームを上げる
amixer set PCM 1%+ unmute
- ボリュームを下げる
amixer set PCM 1%- unmute
- ミュート(Toggle)
amixer set PCM toggle
- ボリューム設定をキーマッピングに設定
以下、lxde-pi-rc.xml抜粋
xml: /home/pi/.config/openbox/lxde-pi-rc.xml
<keyboard>
<!-- Keybindings for audio volume media keys -->
<keybind key="XF86AudioRaiseVolume">
<action name="Execute">
<command>amixer set PCM 1%+ unmute</command>
</action>
</keybind>
<keybind key="XF86AudioLowerVolume">
<action name="Execute">
<command>amixer set PCM 1%- unmute</command>
</action>
</keybind>
<keybind key="XF86AudioMute">
<action name="Execute">
<command>amixer set PCM toggle</command>
</action>
</keybind>
</keyboard>
上記は、デスクトップユーザー向けのキーマッピング設定である為、
デスクトップユーザーでログインしないと使えない
そこで、デスクトップユーザーとしてログインしておくことで、キーを有効となるようにする。
電源ONでデスクトップユーザーとしてログインしておくようにraspi-configにて設定
sudo raspi-config
3 Boot Options Configure options for start-up
B1 Desktop / CLI Choose whether to boot into a desktop environ
B4 Desktop Autologin Desktop GUI, automatically logged in as 'pi' user ** <- こちらを選択 **
改善したい点
デスクトップユーザーでログインした状態にすることで、ボリュームボタンが有効になるようにしている。
ログインした状態にせずにボリュームボタンを有効にしたい。