お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2018-12-24 13:24:21

kigyousensi
メンバ
From: Tokyo
登録日: 2010-11-14

18.10にアップデートしたら音が出なくなった

題記の通り、18.04から「ソフトウェアの更新」で18.10にデートしたら音が出なくなりました。

設定->サウンド->出力 を見ると「ダミー出力」だけになっているので、まずはここをなんとかしたいです。知恵を貸して下さい。

http://ajt.pupu.jp/rayfan/wp-content/uploads/2018/12/ubuntu2.jpg

ぐぐって調べてみた結果は以下のとおりです。
・ハードウェア ・・・ 多分認識できている
・ドライバ ・・・ 多分問題ない
・ALSA ・・・ 微妙
・PulseAudio ・・・ 全然わからない

以下、確認した内容です。
使いたいデバイスは青、気になるところは赤にしています。

■ ハードウェア

・PC本体: HP E8500
・オーディオ系のデバイス:
オンボード ・・・ チップセットがQ45なので多分82xxx系 ← ここから音を出したい
増設 ・・・NVIDIA
USB・・・Webカメラ
USB・・・キャプチャーデバイス(AverMedia) J:COMから映像を取り込むために使用。

■ OS (Ubuntu 18.10)

$ grep VERSION /etc/os-release
VERSION="18.10 (Cosmic Cuttlefish)"
VERSION_ID="18.10"
VERSION_CODENAME=cosmic

$ cat /proc/version
Linux version 4.18.0-13-generic (buildd@lgw01-amd64-048) (gcc version 8.2.0 (Ubuntu 8.2.0-7ubuntu1)) #14-Ubuntu SMP Wed Dec 5 09:04:24 UTC 2018

■ 物理デバイスの認識

$ lspci | egrep -i multimedia\|audio
00:1b.0 Audio device: Intel Corporation 82801JD/DO (ICH10 Family) HD Audio Controller (rev 02)
01:00.1 Audio device: NVIDIA Corporation GK208 HDMI/DP Audio Controller (rev a1)

■ ドライバ

$ lsmod | grep snd
snd_hrtimer            16384  1
snd_hda_codec_hdmi     49152  1
snd_hda_codec_realtek   106496  1
snd_hda_codec_generic    73728  1 snd_hda_codec_realtek
snd_hda_intel          40960  5
snd_hda_codec         126976  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core           81920  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_usb_audio         225280  4
snd_usbmidi_lib        32768  1 snd_usb_audio
snd_hwdep              20480  2 snd_usb_audio,snd_hda_codec
snd_seq_midi           16384  0
snd_seq_midi_event     16384  1 snd_seq_midi
snd_rawmidi            32768  2 snd_seq_midi,snd_usbmidi_lib
snd_pcm                98304  6 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_hda_core
snd_seq                65536  3 snd_seq_midi,snd_seq_midi_event
snd_seq_device         16384  3 snd_seq,snd_seq_midi,snd_rawmidi
snd_timer              32768  4 snd_seq,snd_hrtimer,snd_pcm
snd                    81920  30 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi
soundcore              16384  1 snd

■ カードとドライバ

$ cat /proc/asound/modules
0 snd_hda_intel
1 snd_usb_audio
2 snd_hda_intel
3 snd_usb_audio

$ cat /proc/asound/cards
0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xf3120000 irq 31

1 [U0x46d0x825    ]: USB-Audio - USB Device 0x46d:0x825
                      USB Device 0x46d:0x825 at usb-0000:00:1a.7-2, high speed
2 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xf3000000 irq 17
3 [Plus           ]: USB-Audio - Live Gamer Portable 2 Plus
                      AVerMedia Technologies, Inc. Live Gamer Portable 2 Plus at usb-0000:00:1a.7-5,

■ /dev/sndの状態 (controler/pcmが作られているのでたぶん問題なし)

$ ls /dev/snd
by-id      controlC1  hwC0D0    pcmC0D0p  pcmC2D3p  seq
by-path    controlC2  hwC2D0    pcmC0D2c  pcmC2D7p  timer
controlC0  controlC3  pcmC0D0c  pcmC1D0c  pcmC3D0c

■ ALSAが認識しているカード、デバイス、サブデバイス番号

$ aplay -l
カード 0: Intel [HDA Intel], デバイス 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
  サブデバイス: 0/1
  サブデバイス #0: subdevice #0
カード 2: NVidia [HDA NVidia], デバイス 3: HDMI 0 [HDMI 0]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 2: NVidia [HDA NVidia], デバイス 7: HDMI 1 [HDMI 1]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

■ ALSAのカードに設定されているエイリアス名?(よくわかっていない)

$ aplay -L | grep CARD
sysdefault:CARD=Intel
front:CARD=Intel,DEV=0
surround21:CARD=Intel,DEV=0
surround40:CARD=Intel,DEV=0
surround41:CARD=Intel,DEV=0
surround50:CARD=Intel,DEV=0
surround51:CARD=Intel,DEV=0
surround71:CARD=Intel,DEV=0

dmix:CARD=Intel,DEV=0
dsnoop:CARD=Intel,DEV=0
hw:CARD=Intel,DEV=0
plughw:CARD=Intel,DEV=0
hdmi:CARD=NVidia,DEV=0
hdmi:CARD=NVidia,DEV=1
dmix:CARD=NVidia,DEV=3
dmix:CARD=NVidia,DEV=7
dsnoop:CARD=NVidia,DEV=3
dsnoop:CARD=NVidia,DEV=7
hw:CARD=NVidia,DEV=3
hw:CARD=NVidia,DEV=7
plughw:CARD=NVidia,DEV=3
plughw:CARD=NVidia,DEV=7

■ ALSAの定義 (よくわかっていない)

$ cat /usr/share/alsa/alsa.conf
(大量にあるので一旦割愛。ここが怪しいというご指摘があれば掘り下げます。)
$ cat ~/.asoundrc (存在しない)
$ cat /etc/asound.conf (存在しない)

■ ミュートになっていないか (問題なさそう)

$ alsamixer
http://ajt.pupu.jp/rayfan/wp-content/uploads/2018/12/ubuntu1.jpg

■ ALSAから直接音を出してみた (sysdefaultをsudoすれば音が出る)

$ aplay -D sysdefault test.wav
ALSA lib pcm_dmix.c:1063:(snd_pcm_dmix_open) unable to create IPC semaphore
aplay: main:828: オーディオオープンエラー 許可がありません

$ sudo aplay -D sysdefault test.wav
再生中 WAVE 'test.wav' : Signed 16 bit Little Endian, レート 48000 Hz, モノラル
⇢スピーカーとヘッドホンの両方から音が出る

$ sudo aplay -D surround21 test.wav
aplay: main:828: オーディオオープンエラー デバイスもしくはリソースがビジー状態です

■ PluseAudioで認識しているデバイス?(よくわかっていない)

$ pactl list cards
カード #0
    名前: alsa_card.pci-0000_01_00.1
    ドライバー: module-alsa-card.c
    モジュール: 7
    プロパティ:
        alsa.card = "1"
        alsa.card_name = "HDA NVidia"
        alsa.long_card_name = "HDA NVidia at 0xf3000000 irq 17"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:01:00.1"
        sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1"
        device.bus = "pci"
        device.vendor.id = "10de"
        device.vendor.name = "NVIDIA Corporation"
        device.product.id = "0e0f"
        device.product.name = "GK208 HDMI/DP Audio Controller"
        device.string = "1"
        device.description = "GK208 HDMI/DP Audio Controller"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    プロフィール:
        output:hdmi-stereo: Digital Stereo (HDMI) 出力 (sinks: 1, sources: 0, priority: 5900, available: no)
        output:hdmi-surround: Digital Surround 5.1 (HDMI) 出力 (sinks: 1, sources: 0, priority: 800, available: no)
        output:hdmi-surround71: Digital Surround 7.1 (HDMI) 出力 (sinks: 1, sources: 0, priority: 800, available: no)
        output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) 出力 (sinks: 1, sources: 0, priority: 5700, available: no)
        output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) 出力 (sinks: 1, sources: 0, priority: 600, available: no)
        output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) 出力 (sinks: 1, sources: 0, priority: 600, available: no)
        off: オフ (sinks: 0, sources: 0, priority: 0, available: yes)
    有効なプロフィール: off
    ポート:
        hdmi-output-0: HDMI / DisplayPort (priority: 5900, latency offset: 0 usec, not available)
            Properties:
                device.icon_name = "video-display"
            プロファイルのパーツ: output:hdmi-stereo, output:hdmi-surround, output:hdmi-surround71
        hdmi-output-1: HDMI / DisplayPort 2 (priority: 5800, latency offset: 0 usec, not available)
            Properties:
                device.icon_name = "video-display"
            プロファイルのパーツ: output:hdmi-stereo-extra1, output:hdmi-surround-extra1, output:hdmi-surround71-extra1
:
以下、カード1(USB),カード2(USB AverMedia)に続く。
大量にあるので割愛。ご指摘あれば深堀りします
intelのカードが認識されていない様に見えるのが気になる。

$ pacmd list-sinks  | grep name:
name: <auto_null>

■ pluseaudioは起動しているの? (2つ起動している。rtkit-daemon?)

$ ps aux | grep pulse | grep -v grep
gdm           1892  0.0  0.1 1198976 17288 ?       Ssl  10:06   0:00 /usr/bin/pulseaudio --daemonize=no
kigyousensi 3553  0.4  0.1 2584668 19980 ?       S<sl 10:07   0:37 /usr/bin/pulseaudio --daemonize=no

$ pstree -H 1892
systemd -> systemd (sd-pam) -> pulseaudioであることがわかる

$ pstree -H 3553
systemd -> systemd (sd-pam) -> pulseaudioであることがわかる(1892とは別のツリー)

$ grep pulse /var/log/syslog
Dec 24 10:07:27 mypc pulseaudio[3553]: E: [pulseaudio] bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.TimedOut: Failed to activate service 'org.bluez': timed out (service_start_timeout=25000ms)

■ 過去のナリッジにあったもの

・alsaの設定をリセットしてみては?
$ sudo alsactl init
-> 変化なし

・PulseAudioの設定をリセットしてみては?
$ killall pulseaudio
$ rm -r ~/.config/pulse/*

-> 変化なし

・PulseAudioがロードしているモジュールを見直してみては?
$ sudo cp -p /etc/pulse/default.pa /etc/pulse/default.pa_20181224
$ sudo vi /etc/pulse/default.pa

-> どこをどう見直せばいいのかわからなかったので保留

・pavucontrolを使ってみては?
$ sudo apt install pavucontrol
$ pavucontrol

-> 出力装置は「ダミー出力」のみ。 Hardware Output devicesには「出力装置がありません」

・JACKを使ってみては?
-> 別の問題が増えそうなので保留。

オフライン

 

#2 2018-12-24 14:30:15

kigyousensi
メンバ
From: Tokyo
登録日: 2010-11-14

Re: 18.10にアップデートしたら音が出なくなった

追加 alsa-base.conf

$ cat /etc/modprobe.d/alsa-base.conf
# autoloader aliases
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

オフライン

 

#3 2018-12-24 14:57:37

kigyousensi
メンバ
From: Tokyo
登録日: 2010-11-14

Re: 18.10にアップデートしたら音が出なくなった

自己解決しました

$ sudo aplay -D sysdefault test.wav
でスピーカーとヘッドホンの両方から音が出ていてデバイスを正しく区別できていない可能性があったので
/etc/modprobe.d/alsa-base.conf
にintelのモジュールを優先的に読み込むように明示的してALSAを再起動したら
設定->サウンド->出力に「内部オーディオ」が表示されて音も出せるようになりました。(ダミー出力は残っていますが)

手順と確認事項は以下のとおりです

$ sudo vi /etc/modprobe.d/alsa-base.conf
options snd-hda-intel index=0 <-追加
options bt87x index=-2
options cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
:

$ sudo alsa force-reload
Terminating processes: 1182 3274.
:

この段階で「設定」に内部オーディオが追加されました

$ cat /proc/asound/modules
0 snd_hda_intel <- intelの優先順位が上がった
1 snd_hda_intel <- intelの優先順位が上がった
2 snd_usb_audio
3 snd_usb_audio

$ cat /proc/asound/cards
0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xf3120000 irq 31
1 [NVidia         ]: HDA-Intel - HDA NVidia <- intelの優先順位が上がった
                      HDA NVidia at 0xf3000000 irq 17
2 [U0x46d0x825    ]: USB-Audio - USB Device 0x46d:0x825
                      USB Device 0x46d:0x825 at usb-0000:00:1a.7-2, high speed
3 [Plus           ]: USB-Audio - Live Gamer Portable 2 Plus
                      AVerMedia Technologies, Inc. Live Gamer Portable 2 Plus at usb-0000:00:1a.7-5,

$ pactl list cards
->変化無し

$ pacmd list-sinks  | grep name:
name: <alsa_output.pci-0000_00_1b.0.analog-stereo> <-表示された

オフライン

 

#4 2018-12-27 20:34:14

kigyousensi
メンバ
From: Tokyo
登録日: 2010-11-14

Re: 18.10にアップデートしたら音が出なくなった

OSをリブートしたら再発しました。

$ sudo vi /etc/modprobe.d/alsa-base.conf
でalsa-base.confをもとに戻して
$ sudo alsa force-reload
で再び音が出るようになりました。

OS起動時にalsaがちゃんと起動できていないのが原因のようです。

オフライン

 

#5 2019-01-03 22:26:17

kigyousensi
メンバ
From: Tokyo
登録日: 2010-11-14

Re: 18.10にアップデートしたら音が出なくなった

追加

OSを再起動したらまた音が出なくなる問題について試行錯誤していましたが心が折れました。
・/lib/systemd/system/alsa*.serviceをいじる
→効果なし
・/etc/systemd/system/alsa-reload.serviceなるサービスを作って起動時に強制リロードさせる
→pulseaudioはユーザーログイン時に起動するので無意味

というわけで、気が進みませんがログイン時にsudo alsa force-reloadを実行することで解決しました。
1) kigyousensiにalsaのsudo権限を付与
$ sudo visudo
kigyousensi ALL=NOPASSWD: /sbin/alsa

2) ログイン時にalsaをリロードするスクリプトを実行させる設定
アプリボタン ->自動起動するアプリケーションの設定で/opt/kigyousensi/alsa-reload.shを登録。

3) /opt/kigyousensi/alsa-reload.shを作成する
$ USR="kigyousensi"
$ sudo mkdir /opt/${USR}
$ sudo touch /opt/${USR}/alsa-reload.sh
$ sudo chown -R /opt/${USR}
$ chmod 0755 /opt/${USR}/alsa-reload.sh
$ vi /opt/${USR}/alsa-reload.sh

コード:

#!/bin/sh
## define
## /var/log/syslogに開始メッセージを記録。PulseAudioが起動するまで待つ。
CNT=0 ; FLG="reload" ; WAIT=3
logger -i 'Start alsa-reload.sh' 
while [ $(ps -ef | grep pulse | grep -v grep | wc -l) -eq 0 ];do sleep 2;done 

## main
## pacmdの結果にalsa_outputがあるか確認。無ければ2回リトライ。それでも無ければalsa force-reloadを実行
while [ ${CNT} -lt 3 ]
do
  [ $( /usr/bin/pacmd list-sinks | grep name | grep alsa_output | wc -l ) -eq 0 ] && sleep ${WAIT} || { FLG="already" ; CNT=3 ;}
  CNT=$(( ${CNT} + 1 ))
done
[ "${FLG}" = "reload" ] && sudo /sbin/alsa force-reload

## end
## syslogに終了メッセージを記録。
logger -i "End alsa-reload.sh state:${FLG}"

何かの参考になれば。

オフライン

 

Board footer

Powered by FluxBB