0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

リモートログイン時の ALSA デバイスのつかい方

Posted at

わけあって Ubuntu Xenial 上で libasound2 (v1.1.0) と仲良くしなくてはいけなくなったのだが、古いラップトップにインストールしたため、キーボードとかモニタとかトラックパッドがいまいち使いにくい。できれば ssh で全部終わりにしたい。その時の作業ログ。

  • リモートコンソールログイン(ssh)時に音を出したい

まず大前提として、基本的に ssh でのログイン時には ALSA デバイスにさわれない。aplay -l としても一つもデバイスが出てこない。たとえ modprobe snd-aloopとかして仮想デバイスを作ったとしても一覧に出てこない。
ログインしているユーザがaudioグループに属していないと音まわりにはさわれないようになっている。これが普通にX上の端末からだとできて、わけがわからなくなっていたが、LightDMがいろいろしてくれるらしい。

gpasswd -a <username> audio

色々検索すると結構あたりまえの話のようで、Raspberry Pi などで苦戦している先人たちが散見される。
speaker-testなどで確認してみると音が出せるようになっていると思う。alsamixerでコンソールからでも音量は調整できる。

  • モノラルなファイルをaplayすると謎のエラーが出る

libasound2 を使っているものを簡単にテストしたいときに、入出力デバイスをスピーカーにすると便利なのだが、スピーカーがステレオデバイスで、再生したいファイルがモノラルといった風にチャンネル数が合わないと色々面倒になる。
hw:x,y,z 形式でデバイスを指定すると、デバイスごとに決め打ちでチャンネルが定義されているため、それぞれが一致しないとエラーが出る。frontのようにaplay -Lで出てくる名前がついているものでも同様。aplay--disable-channelsがそういう用途なのかと思ったがそうではないらしい。

解決策としては、頭に"plug"をつけたplughw:x,y,zの形でデバイスを指定するか、/etc/asound.conf~/.asoundrcにて適切なチャンネルを持ったデバイスを新しく定義する。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?