alsamixer は asound.conf ファイルがあるとクラッシュしますが、それがなくても問題ありません。

alsamixer は asound.conf ファイルがあるとクラッシュしますが、それがなくても問題ありません。

alsamixer で奇妙な問題が発生しています。「USBStreamer」デバイスのチャンネル再マッピングを実行する asound.conf ファイルがあります。

pcm.usbSTR {
  type hw
  card USBStreamer
  device 0
}

pcm.usbREMAP {
  type plug
  slave.pcm usbSTR
  ttable.0.8 1
  ttable.1.9 1
}

pcm.!default {
  type plug
  slave.pcm usbREMAP
}

ctl.!default {
  type plug
  slave.pcm usbREMAP
}

コマンドライン引数なしで上記の asound.conf ファイルを使用して alsamixer を実行すると、alsamixer はクラッシュし、あまり役に立たないエラー メッセージが表示されます。

ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/i386-linux-gnu/alsa-lib/libasound_module_ctl_plug.so
cannot open mixer: No such device or address

asound.conf ファイルを削除すると、alsamixer は正常に動作します。

残念ながら、mpd を動作させるにはチャネルの再マッピングが必要です。

チャンネルを再マッピングして alsamixer がクラッシュしないようにする方法はありますか?

参考までに: USBStreamer デバイスを指定すると、alsamixer は正常に動作します。残念ながら、mpd は alsamixer を呼び出すときにそれほど具体的ではないようです。

編集: asound.conf から ctl.!default ブロックを削除し、alsa を再起動すると、デバイスを指定しなくても alsamixer は正常に動作します。 . . mpd考えるALSA で再生されていますが、スピーカーから音が出ません。ctl.!default ブロックが重要な処理を行っていると思います。

また、speaker-testは動作しなくなりました。リソースがビジーであるとエラーが出ています。

speaker-test -c 10 -t sin -D plughw:USBStreamer

speaker-test 1.1.0

Playback device is plughw:USBStreamer
Stream parameters are 48000Hz, S16_LE, 10 channels
Sine wave rate is 440.0000Hz
Playback open error: -16,Device or resource busy

以下は/etc/mpd.confのaudio_outputの部分です。

audio_output {
type "alsa"
name "USB Streamer - LX521.4"
device "hw:USBStreamer,0"
}

これは私の問題とは関係ありませんが、asound.conf ファイルが少し見苦しいと感じました。ALSA 構成ファイルについての私の理解は初歩的ですが、これは上記 (ctl.!default の部分が削除されている) と同等だと思います。

pcm.!default {
  type plug
  slave.pcm {
    type hw
    card USBStreamer
    device 0
    }
   ttable {
    0.8 1
    1.9 1
  }
}

サウンド デバイスの amixer「シンプル コントロール」は次のとおりです。

amixer -D hw:USBStreamer scontrols
Simple mixer control 'Mic',0
Simple mixer control 'Mic',1
Simple mixer control 'USBStreamer Clock Selector',0
Simple mixer control 'USBStreamer Output',0
Simple mixer control 'USBStreamer Output',1

なるほど! おそらく mpd は ALSA を使用しているため、スピーカー テストを実行できないようです。

 sudo fuser -v /dev/snd/*
[sudo] password for rybu: 
                     USER        PID ACCESS COMMAND
/dev/snd/controlC0:  mpd         935 F.... mpd
/dev/snd/pcmC1D0p:   mpd         935 F...m mpd

mpd がフリーズしているようです。mpc へのリクエストは永遠にかかり、次のようなエラー メッセージが表示されます。

mpc
mpd error: Timeout

しばらく mpd を停止する必要があります。 . . できるかどうか確認してみましょう。 「sudo service mpd stop」でうまくいくと思います。 この要求には長い時間がかかります。 . . よし、speaker-test が再び動作するようになりました。

しかし、mplayer は動作しません:

[AO_ALSA] alsa-lib: pcm.c:2135:(snd_pcm_open_conf) type is not defined
[AO_ALSA] Playback open error: No such file or directory
Failed to initialize audio driver 'alsa'
[AO SDL] Samplerate: 44100Hz Channels: Stereo Format s16le
[AO SDL] using aalib audio driver.
[AO SDL] Unable to open audio: 
Failed to initialize audio driver 'sdl:aalib'
Could not open/initialize audio device -> no sound.
Audio: no sound

さて、mplayer 引数「ao=alsa:device=default」でこれを修正しました。これにより、asound.conf で再マップされたデフォルト デバイスを使用するように指示されます。

次はmpd。進歩していて気持ちがいいです。

チャンネルの再マッピングが行われるように、mpd をデフォルトの ALSA デバイス (hw:USBStreamer ではない) を使用するように設定しました。mpd を再起動すると、再び完全に動作します。

ありがとう、問題は解決しました。

答え1

そのctlデバイスについては忘れてください。mpdミキサーを設定するには、ミキサータイプおよび/またはミキサーデバイス(デバイスに使用可能なミキサー コントロールがない場合は、ソフトウェア ミキサーを使用する必要がある場合があります。)

ビジー エラーは、他のプログラム (おそらく PulseAudio) がデバイスを開いているために発生します。 (PID は で確認できます/proc/asound/cardX/pcm0p/sub0/status。)

関連情報