【ArchLinux】ThinkPad X240でalsaを使って音(wav,mp3)を鳴らす
さてさて、今回もまたThinkPad X240でのArchLinuxネタでございます。
WEBサーバ用途ではありますが、データセンタでなく、自宅サーバで筆者のデスクの上の棚に設置してます。
そこでサーバに何かあった際のイベント通知に音声での警告が可能なようサウンドの設定をします。
ArchLinuxは音声設定も自分で設定が必要です
ArchLinuxの場合は音声も手動でパッケージを導入して、設定する必要があります。
Linux初心者の方にはこの辺がハードルが高いと感じる点かと思いますが、
各種情報を調べながら設定することで自身のLinuxの知識やスキルを高めることができますので、
エンジニアを目指す方や、エンジニアがLinuxを勉強をするには良いディストリビューションです。
Linuxでサウンド設定するにあたり、筆者は今回はALSA(Advanced Linux Sound Architecture)を選択しました。
![](https://osmaniax.1banzaka.com/wp-content/uploads/2021/12/advancedlinuxsoundarchitecturepj-1024x990.png)
最近では「PulseAudio」とか「Jack Audio Connection kit」とかありますね。
PulseAudioにはMacOSX向けのドライバもあります。
ひょっとしたらHackintoshマシンでサウンドを認識しない場合の代替に使えるかも?
![](https://osmaniax.1banzaka.com/wp-content/uploads/2021/12/pulseaudio-1024x602.png)
Jack Audio Connection kitはDAW用途に使うLinuxサウンドドライバーですね。
筆者としてはデスクトップLinuxで使う場合には興味がありますね。
![](https://osmaniax.1banzaka.com/wp-content/uploads/2021/12/jackconnectionkit-1024x684.png)
やはり最新のパッケージにも興味はありますが、筆者の今回の要件はWEBサーバであって、
単に警告音が鳴らせれば良く、デスクトップ用途やLinuxでのDAW用途ではないので、
これまでのALSAで十分に本来の要件を満たせるのでALSAで設定をしていきます。
ALSAのパッケージをインストールする
というわけでAlsa関連の以下のパッケージをArchLinuxに追加しました。
$ sudo pacman -S alsa-oss alsa-utils alsa-tools
デバイスの確認
以下コマンドでデバイスが認識されているか確認します。
$ cat /proc/asound/cards
0 [HDMI ]: HDA-Intel - HDA Intel HDMI
HDA Intel HDMI at 0xe0630000 irq 52
1 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xe0634000 irq 50
aplayコマンドでも確認できます。
$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: HDMI [HDA Intel HDMI], デバイス 3: HDMI 0 [HDMI 0]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 0: HDMI [HDA Intel HDMI], デバイス 7: HDMI 1 [HDMI 1]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 0: HDMI [HDA Intel HDMI], デバイス 8: HDMI 2 [HDMI 2]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 0: HDMI [HDA Intel HDMI], デバイス 9: HDMI 3 [HDMI 3]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 0: HDMI [HDA Intel HDMI], デバイス 10: HDMI 4 [HDMI 4]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 1: PCH [HDA Intel PCH], デバイス 0: ALC3232 Analog [ALC3232 Analog]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
設定ファイルを記述する
カードは1、デバイスは0と判明したので、
以下、設定ファイルに記述します。
$ vi /etc/asound.conf
pcm.!default {
type hw
card 1
device 0
}
ctl.!default {
type hw
card 1
device 0
}
audioグループにユーザを追加する
上記の状態ではrootではサウンド再生できるのに一般ユーザではサウンド再生ができません。
これはaudioグループに一般ユーザを追加することで再生が可能になります。
$ sudo vi /etc/group
audio:x:996:
以下のようにユーザを追加し、一度ログアウトしてログインすると権限が反映されます。
audio:x:996:osmaniax
サウンドを鳴らしてみる
スピーカーテスト
以下コマンドでスピーカーテストが可能です。
ザーッという音声が出てくればOKです。
$ speaker-test -D plughw:1,0
wavファイルを再生してみる
何かwavファイルを再生してみましょう。
以下コマンドで再生が可能です。
$ aplay hogehoge.wav
ファイルのフォーマットによっては指定が必要なケースもあります。
$ aplay -D plug:default hogehoge.wav
$ aplay -D plughw:1,0 hogehoge.wav
※筆者はwindowsの警告音のding.wavなどをイベント通知用に設定しようと思います。
mp3ファイルを再生してみる
以下コマンドではmp3ファイルも再生できます。
$ mpg123 hogehoge.mp3
まとめ
いかがでしたでしょうか。
というわけで今回はThinkPad X240にインストールしたArchLinuxで
ALSAのサウンドを再生可能にする手順を紹介しました。
脱Linux初心者となる頃に、いずれArchLinuxにチャレンジしたくなった際にでも
参考にしていただければ幸いです。