Ubuntu上でサウンドカードをALSAのドライバで使用する際にデバイスファイル/dev/dspが存在しない件に関して(10.10時点)
既にまとめドキュメントでは少し触れているが、Ubuntuでは、バージョン10.10の時点ではALSAサウンドシステムのドライバを使用した環境において、OSSのサウンドシステムにおけるデバイスファイル/dev/dspは、ディストリ標準のカーネルには存在しない。また、OSSのミキサー/dev/mixerについても同様となる。
デバイスファイルを提供するエミュレーションドライバについて
上記デバイスファイル群はALSAサウンドシステムのPCMとミキサーそれぞれのOSSサウンドシステム向けのエミュレーションドライバにより提供されるもので、それぞれ
というカーネルモジュールが機能を提供する。
ディストリ標準のカーネルではこれらの機能が無効化されている。
$ egrep "SND_(PCM|MIXER)_OSS[ =]" /boot/config-2.6.35-25-generic # CONFIG_SND_MIXER_OSS is not set # CONFIG_SND_PCM_OSS is not set
背景についての想像
PulseAudioが音声の出力先として常に使われるようにしたいというディストリ側の意向があるような気がする。
PCM音声のOSSエミュレーションはPulseAudioのようなサウンドデーモンや他のALSAアプリケーションが音を出しているときに同時に音を出すこともできない仕様だが、PulseAudioが動作していれば色々なアプリケーションからの出力を合成して同時に鳴らすことができる上、/dev/dspを用いたOSSアプリケーションもpadspを用いることでPulseAudioを出力先とすることもできるため、そもそも必要がないと考えられているような気がする。
ミキサーのエミュレーションについてもALSAサウンドシステム向けのミキサーがあれば不要と考えられているのかもしれない。
対処
OSSアプリケーションの音声出力先を変更する
PulseAudioが動いていれば
padsp [OSSアプリケーションのコマンド行]
としてpadspからOSSアプリケーションを起動し、動いていなければ
aoss [OSSアプリケーションのコマンド行]
としてaossでALSAサウンドシステムへ出力することもできる。メニュー項目にあるアプリケーションに対して適用したい場合はデスクトップなどにランチャ項目を作ってからコマンド部分の先頭にコマンド名を追加することになる。
自分でカーネルをビルドする場合
何らかの事情で上記の方法を用いずに従来のOSSエミュレーションの機能が用いたい場合はカーネルソースのパッケージをインストールして自分でビルド設定を変更し、ビルドしたものをインストールするという方法もあるが、他の目的でカーネルを自分でビルドするのでなければ上の方法で充分なので、おすすめはしない。ビルドする場合の手順は「Debian/Ubuntuでカーネルソースパッケージからカーネルパッケージを作成する(前半)」と「Debian/Ubuntuでカーネルソースパッケージからカーネルパッケージを作成する(後半)」を参照。
下はミキサー,PCMに加え、SequencerのOSSエミュレーションも含めて有効にするビルド設定例。
Device Drivers ---> <M> Sound card support ---> [CONFIG_SOUND] <M> Advanced Linux Sound Architecture ---> [CONFIG_SND] <M> Sequencer support [CONFIG_SND_SEQUENCER] <M> OSS Mixer API [CONFIG_SND_MIXER_OSS] <M> OSS PCM (digital audio) API [CONFIG_SND_PCM_OSS] [*] OSS PCM (digital audio) API - Include plugin system [CONFIG_SND_PCM_OSS_PLUGINS] [*] OSS Sequencer API [CONFIG_SND_SEQUENCER_OSS]
関連記事:
- /dev/dspを使用するアプリケーションからaossを使用してALSAで音を鳴らすときの設定
- GNU/Linux上のサウンドシステムについて(前半)
- GNU/Linux上のサウンドシステムについて(後半)
- Debian/Ubuntuでカーネルソースパッケージからカーネルパッケージを作成する(前半)
- Debian/Ubuntuでカーネルソースパッケージからカーネルパッケージを作成する(後半)
まとめドキュメント:
- 音声と映像(マルチメディア) > オーディオ > サウンドシステム概要
- 音声と映像(マルチメディア) > オーディオ > Advanced Linux Sound Architecture (ALSA)
使用したバージョン:
- Linux 2.6.35.10