さてさて、今回もまたThinkPad X240でのArchLinuxネタでございます。
WEBサーバ用途ではありますが、データセンタでなく、自宅サーバで筆者のデスクの上の棚に設置してます。

そこでサーバに何かあった際のイベント通知に音声での警告が可能なようサウンドの設定をします。

ArchLinuxは音声設定も自分で設定が必要です

ArchLinuxの場合は音声も手動でパッケージを導入して、設定する必要があります。

Linux初心者の方にはこの辺がハードルが高いと感じる点かと思いますが、
各種情報を調べながら設定することで自身のLinuxの知識やスキルを高めることができますので、
エンジニアを目指す方や、エンジニアがLinuxを勉強をするには良いディストリビューションです。

Linuxでサウンド設定するにあたり、筆者は今回はALSA(Advanced Linux Sound Architecture)を選択しました。


最近では「PulseAudio」とか「Jack Audio Connection kit」とかありますね。

PulseAudioにはMacOSX向けのドライバもあります。
ひょっとしたらHackintoshマシンでサウンドを認識しない場合の代替に使えるかも?



Jack Audio Connection kitはDAW用途に使うLinuxサウンドドライバーですね。
筆者としてはデスクトップLinuxで使う場合には興味がありますね。


やはり最新のパッケージにも興味はありますが、筆者の今回の要件は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にチャレンジしたくなった際にでも
参考にしていただければ幸いです。