NetBSD + pkgsrc + pulseaudio メモの補足
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

NetBSD + pkgsrc + pulseaudio メモの補足

2017-01-09 04:10
    前回の NetBSD + pkgsrc における oss, alsa, pulseaudio についてのメモ のエントリで一部書き忘れていることがありました。

    このままだと「エントリに書いてあるとおりにやったのに鳴らない!!」ということになりそうだったので、いくつか補足してみます。

    dbus の設定

    pulseaudio で音を鳴らすためには dbus の daemon が走っている必要があるようです。

    pkgsrc で pulseaudio を入れると dbus も依存分として自動的にインストールされますが、 dbus daemon を明示的に起動するためには /etc/rc.conf に以下の記述を追加して
    dbus=YES
    かつ、(再起動をしない場合は) root 権限で以下のコマンドを実行して明示的に dbus のデーモンを開始する必要があります。
    # /etc/rc.d/dbus start
    上記 rc.d/dbus のスクリプトが /etc/rc.d/dbus として入るのか /usr/pkg/etc/rc.d/dbus として入るのか、実はよくわかっていません……。
    PKG_RCD_SCRIPTS=YES を設定するかどうかで変わる、という話もあった気がするのですが、ちゃんと調べていません。(すいません)

    サウンドボード固有の設定

    これもきちんと調べられていないのですが、マシンに搭載されているサウンドボードのデフォルトのサンプリング周波数によっては pulseaudio の再生で音程が狂ったり正常に再生してくれないアプリがあったりするようです。

    デフォルトの /usr/pkg/etc/pulse/daemon.conf の設定には以下の記述があります。
    ; default-sample-format = s16le
    ; default-sample-rate = 44100
    ; alternate-sample-rate = 48000
    いずれもコメントアウトされているものの、他のエントリの実績からするとここに記載されている値がバイナリビルド時のデフォルトに設定されていると予想されます。

    こちらの手元にあるマシンのうち、1つは以下のようなサウンドデバイスです。
    000:27:0: Intel 82801JD High Definition Audio Controller (mixed mode multimedia, revision 0x02)
    hdaudio1 at pci0 dev 27 function 0: HD Audio Controller
    hdaudio1: interrupting at ioapic0 pin 16
    hdafg1 at hdaudio1: ADI AD1984A
    hdafg1: DAC00 2ch: Speaker [Jack]
    hdafg1: ADC01 2ch: Mic In [Jack]
    hdafg1: ADC02 2ch: Line In [Jack]
    hdafg1: DAC03 2ch: HP Out [Jack]
    hdafg1: 2ch/2ch 8000Hz 11025Hz 16000Hz 22050Hz 32000Hz 44100Hz 48000Hz 88200Hz 96000Hz 192000Hz PCM16 PCM20 PCM24 AC3
    audio0 at hdafg1: full duplex, playback, capture, mmap, independent
    この場合、 44100Hz をサポートしている(?)ので問題は出ないようです。

    手元のもう一台のマシンは以下のようなサウンドデバイスです。
    000:20:2: ATI Technologies SBx00 Azalia (mixed mode multimedia)
    hdaudio1 at pci0 dev 20 function 2: HD Audio Controller
    hdaudio1: interrupting at ioapic0 pin 16
    hdafg1 at hdaudio1: VIA VT1708S
    hdafg1: DAC00 2ch: Speaker [Jack], HP Out [Jack]
    hdafg1: ADC01 2ch: CD [Built-In], Line In [Jack], Mic In [Jack]
    hdafg1: 2ch/2ch 48000Hz PCM16*
    audio0 at hdafg1: full duplex, playback, capture, mmap, independent
    この場合、 48000Hz しかサポートしていない(??)のか、 pulseaudio のデフォルトのままだと再生速度が狂ったりする場合がありました。

    pulseaudio の daemon.conf の記述を以下のようにするととりあえずそれなり(?)鳴るようです。
    ; default-sample-rate = 44100
    default-sample-rate = 48000
    daemon.conf の設定には "alternate-sample-rate" という設定もあるようなのですが、ちゃんと調べられていません。(これまたすいません)
    Arch の Wiki 等をもう一度調べるべきですね……。

    pkgsrc-2016Q4 firefox 50.1.0 の alsa + oss での問題

    前回のエントリで「ALSA にすれば OSS と PulseAudio を選択できる」と書きました。

    が、確かに aplay(1) コマンドでの再生では OSS 設定でも PulseAudio 設定でもどちらでもちゃんと音は鳴るのですが、どうも肝心の firefox は ALSA 設定でビルドされたバイナリでは ALSA で OSS を使う設定にした場合に正常に音が再生されないようです。

    ALSA で PulseAudio を使う設定にしている場合は問題ありません。

    こちらの環境および設定の問題なのかなと思っていたのですが、 pkgsrc-users のメーリングリストでも同様の報告がある ようです。

    上記 ML のメール返信でも書いているのですが、 "alsa_stream_destroy: pthread_cond_destroy failed: Invalid argument" のエラーメッセージについては pkgsrc のパッチで明示的に追加されているので、なにかしら組み合わせおよび設定に問題があるのかもしれません。
    とりあえず自分の環境では pulseaudio で困っていないので優先度が上がっていません……。


    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。