web-dev-qa-db-ja.com

MacbookおよびMatlab用にUbuntu 16.04でALSAを構成する方法

状況:Matlab 2016aのUbuntu 16.04でALSAを構成できない
システムの特性

  • /proc/asound/cards

    0 [HDMI           ]: HDA-Intel - HDA Intel HDMI
                         HDA Intel HDMI at 0xb0a10000 irq 54
    1 [PCH            ]: HDA-Intel - HDA Intel PCH
                         HDA Intel PCH at 0xb0a14000 irq 53
    
  • /usr/share/alsa/also.confが見つかりました ここ ファイルの最後で次のことを試みましたが、device 1が私の健全なもの(PCH)だと思うので失敗しました

    pcm.!default {
     type hw
     card 0
     device 1
    }
    

Matlabのテストコード

soundsc(230)

エラー

ALSA lib pcm_dsnoop.c:606:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1029:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:1029:(snd_pcm_dmix_open) unable to open slave

マニュアル提案

ブログ投稿で考えられる提案を1つ見つけました PyAudio、PortAudio、およびALSAメッセージ

  • pcm.rear cards.pcm.rear/usr/share/alsa/alsa.conf行を削除します。
  • alsa-libsnd_lib_error_set_handler()を使用して、デフォルトのエラーハンドラの代わりに新しいエラーハンドラを設定します。これを行う方法?

Monkeyman_stonesのアドバイスに従うことによる失敗した試み

Wikiページで同じ/類似のサウンドチップを使用している古いMacbook Airの手順に従います MacBookAir3-2/Meerkat> Sound 。うまくいかない

  1. ターミナル、Sudo vim /etc/modprobe.d/alsa-base.confを追加し、ファイルの最後にoptions snd-hda-intel model=mba31行を追加します。
  2. ターミナル、alsamixer、矢印キーを使用してフロントスピーカーを選択し(S/PDIFS/PDIF 1およびS/PDIF 2をテスト)、mおよび最後のESCを押します。できた!
  3. 出力:Matlabプロンプトでコードを実行した後の前と同じ警告。再起動後、システムはalsamixerのすべての変更を忘れます。 Sudo alsamixerでも試しました。これらの変更を永続的にするにはどうすればよいですか?

変更後の完全な/etc/modprobe.d/alsa-base.confには、snd-hda-intelの重複が1回だけ表示されますが、alsamixerにはまったく影響しないようです。

install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7

# Cause optional modules to be loaded above generic modules
install snd /sbin/modprobe --ignore-install snd $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe --quiet --use-blacklist snd-seq ; }
#
# Workaround at bug #499695 (reverted in Ubuntu see LP #319505)
install snd-pcm /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; }
install snd-mixer /sbin/modprobe --ignore-install snd-mixer $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-mixer-oss ; : ; }
install snd-seq /sbin/modprobe --ignore-install snd-seq $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; /sbin/modprobe --quiet --use-blacklist snd-seq-oss ; : ; }
#
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; : ; }
# Cause optional modules to be loaded above sound card driver modules
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-emu10k1-synth ; }
install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq ; }

# Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist saa7134-alsa ; : ; }
# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
options snd-usb-audio index=-2
options snd-usb-caiaq index=-2
options snd-usb-ua101 index=-2
options snd-usb-us122l index=-2
options snd-usb-usx2y index=-2
# Ubuntu #62691, enable MPU for snd-cmipci
options snd-cmipci mpu_port=0x330 fm_port=0x388
# Keep snd-pcsp from being loaded as first soundcard
options snd-pcsp index=-2
# Keep snd-usb-audio from beeing loaded as first soundcard
options snd-usb-audio index=-2

# https://help.ubuntu.com/community/MacBookAir3-2/Meerkat
# Start up a terminal, run alsamixer and use arrow keys to select Front Speaker and press m, then all is good sound-wise.
# TODO this is not affecting `alxamixer` at all; restart restores the defaults. Why?
options snd-hda-intel model=mba31

システム:Linux Ubuntu 16.04 64ビット
Linuxカーネル:4.6
Linuxカーネルオプション:wl
ハードウェア:Macbook Air 2013-mid
Matlab:2016a
Linuxのサウンドに関するMatlabの公式ドキュメント: ALSA Audio Playback
関連スレッド: HDA Intel PCHで音が出ないpython2.7でのAlsaの問題-スレーブを開けないなぜALSA libがそうではないのかUbuntuで動作しますか?

これらのエラーメッセージは、sound/soundsc/audioplayer/audiorecorderによって作成された関数audiodevinfo()の呼び出しが原因です。それらは、MathWorksによってアプリケーションで設計された無害です。私はそのようなデザインが好きではありません。関連: here ここで、チケットとサポートサービスのいくつかの応答。

これは、Ubuntu Meerkat(10.10)を対象としていますが、Alsa-base.confの設定はまったく変更されていないため、方向はまだ健全です: 初期のMacbookからの音声のUbuntuの方向空気

HDA Intelサウンドカードタイプを使用するため、/ etc/modprobe.d/alsa-base.confのデバイスのサウンドカード設定に固有の変更が必要です。

1