2017/03/06

aplay実行時のエラー

Plamo LinuxをインストールしているNUCは、/etc/modprobe.d/alsa-base.confに以下の記述をしています。
$ cat /etc/modprobe.d/alsa-base.conf
options snd slots=snd_usb_audio,snd_hda_intel
options snd_usb_audio index=0
options snd_hda_intel index=1

その結果、/proc/asound/modulesは以下のようになっています。
$ cat /proc/asound/cards
 0 [Mojo           ]: USB-Audio - Mojo
                      Chord Electronics Ltd Mojo at usb-0000:00:14.0-2, high speed
 1 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0x81414000 irq 119

ところが、aplayでWAVファイルを再生するとMojoではなく内蔵イヤホン端子から音が出てしまうので、~/.asoundrcに以下のような記述をしました。
$ cat .asoundrc 
pcm.!default {
  type hw
  card 0
}

ctl.!default {
  type hw
  card 0
}

この状態でaplayを実行すると以下のエラーになります。
$ aplay a.wav 
再生中 WAVE 'a.wav' : Signed 16 bit Little Endian, レート 44100 Hz, ステレオ
aplay: set_params:1297: サンプルフォーマットが使用不可能
Available formats:
- S32_LE

~/.asoundrcを以下のように記述したところ、aplayで問題無くMojoから音が出ました。
$ cat .asoundrc 
# pcm.!default {
#   type hw
#   card 0
# }
# 
# ctl.!default {
#   type hw
#   card 0
# }
pcm.!default { type plug slave { pcm "hw:0,0" } } ctl.!default { type hw card 0 }

すべてのユーザで設定が反映されるように、/etc/asound.confを以下のように修正しました。
$ cat /etc/asound.conf 
pcm.pulse {
  type pulse
}

ctl.pulse {
  type pulse
}

# pcm.!default {
#   type pulse
# }
# 
# ctl.!default {
#   type pulse
# }
pcm.!default { type plug slave { pcm "hw:0,0" } } ctl.!default { type hw card 0 }

0 件のコメント: