LINUX.ORG.RU

volume meter: звук есть, в наушниках звука нет

 ,


0

1

Этой проблеме много лет уже. До сих пор, в Арче, лечилось перезагрузкой. Но вот обновил Федору 33, и всё, звук пропал окончательно, хотя volumemeter в pavucontrol показывает что на headphones-output звук выводится. Да, в прошлом, я был почти уверен, что такой баг наблюдается в следующей сессии если в предыдущей сессии уровень громкости поставить >100% а в лотке привода (уже в текущей загрузке) есть какой-нибудь диск. Словом, я действительно, не понимаю что происходит :(

$ pactl list short

0	module-device-restore		
1	module-stream-restore		
2	module-card-restore		
3	module-augment-properties		
4	module-switch-on-port-available		
5	module-udev-detect		
6	module-alsa-card	device_id="0" name="pci-0000_00_1b.0" card_name="alsa_card.pci-0000_00_1b.0" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1"	
7	module-bluetooth-policy		
8	module-bluetooth-discover		
9	module-bluez5-discover		
10	module-esound-protocol-unix		
11	module-native-protocol-unix		
12	module-default-device-restore		
13	module-always-sink		
14	module-intended-roles		
15	module-suspend-on-idle		
16	module-systemd-login		
17	module-position-event-sounds		
18	module-role-cork		
19	module-filter-heuristics		
20	module-filter-apply		
0	alsa_output.pci-0000_00_1b.0.analog-stereo	module-alsa-card.c	s16le 2-канальный 4800	SUSPENDED
0	alsa_output.pci-0000_00_1b.0.analog-stereo.monitor	module-alsa-card.c	s16le 2-канальный 4800	SUSPENDED
1	alsa_input.pci-0000_00_1b.0.analog-stereo	module-alsa-card.c	s16le 2-канальный 4410	SUSPENDED
0	module-systemd-login.c	(null)
7	protocol-native.c	vlc
13	protocol-native.c	firefox
18	protocol-native.c	pactl
0	audio-volume-change	s16le 2-канальный 4410	0,067
0	alsa_card.pci-0000_00_1b.0	module-alsa-card.c

$ pactl list sinks

Аудиоприёмник №0
	Состояние: SUSPENDED
	Имя: alsa_output.pci-0000_00_1b.0.analog-stereo
	Описание: Встроенное аудио Аналоговый стерео
	Драйвер: module-alsa-card.c
	Спецификация отсчётов: s16le 2-канальный 4800
	Схема каналов: front-left,front-right
	Модуль-владелец: 6
	Звук выключен: нет
	Громкость: front-left: 50980 /  78% / -6,54 dB,   front-right: 50980 /  78% / -6,54 dB
	        баланс 0,00
	Базовая громкость: 65536 / 100% / 0,00 dB
	Мониторный источник: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
	Задержка: 0 мкс, настроено на 0 мкс
	Флаги: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
	Свойства:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "VT1705 Analog"
		alsa.id = "VT1705 Analog"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "0"
		alsa.card_name = "HDA Intel"
		alsa.long_card_name = "HDA Intel at 0xfeaf8000 irq 26"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1b.0"
		sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "27d8"
		device.product.name = "NM10/ICH7 Family High Definition Audio Controller"
		device.form_factor = "internal"
		device.string = "front:0"
		device.buffering.buffer_size = "352800"
		device.buffering.fragment_size = "176400"
		device.access_mode = "mmap+timer"
		device.profile.name = "analog-stereo"
		device.profile.description = "Аналоговый стерео"
		device.description = "Встроенное аудио Аналоговый стерео"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	Порты:
		analog-output-lineout: Line Out (type: Line, priority: 9000, available)
		analog-output-headphones: Headphones (type: Наушники, priority: 9900, availability unknown)
	Активный порт: analog-output-headphones
	Форматы:
		pcm

$ aplay -L

null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
default
    Default ALSA Output (currently PulseAudio Sound Server)
sysdefault:CARD=Intel
    HDA Intel, VT1705 Analog
    Default Audio Device
front:CARD=Intel,DEV=0
    HDA Intel, VT1705 Analog
    Front output / input
surround21:CARD=Intel,DEV=0
    HDA Intel, VT1705 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Intel,DEV=0
    HDA Intel, VT1705 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Intel,DEV=0
    HDA Intel, VT1705 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Intel,DEV=0
    HDA Intel, VT1705 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Intel,DEV=0
    HDA Intel, VT1705 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Intel,DEV=0
    HDA Intel, VT1705 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers

P.S: да, на колонках, звук есть, там всё нормально, проблема только с наушниками

Собственно, проблемы с управлением наушниками были всегда: pulse в моей системе не хочет управлять наушниками отдельно от колонок, я даже такой костыль придумал, в файле /usr/share/pulseaudio/alsa-mixer/paths|analog-output-headphones.conf изменил так строки:

[Element Hardware Maser]
switch = on ; по-умолчанию было mute

[Element Master]
switch = on ; по-умолчанию было mute

[Element Headphone]
switch = on ; по-умолчанию было mute

[Element Front]
switch = on ; по-умолчанию было mute
volume = off ; по-умолчанию было zero

Но сейчас, с обновлением, прилетел исходный конфиг.


Я в своей Fedora 33 просто жму на иконку динамика, захожу в Sound Settings и выбираю наушники или встроенный в лептоп звук. УМВР.

hummer
()
Ответ на: комментарий от eternal_sorrow

Предложу радикальное решение - откажись от pulseaudio в пользу pipewire.

Попробовал. Спасибо. Один раз загрузился со звуком, следующая загрузка уже без. Главное, нигде не пишет ни про какую ошибку, вот в чём загадка этой ситуации, по прежнему показывает что на наушниках звук есть. Но всё равно - Спасибо большое - понравилось, буду, действительно, вместо пульсы ставить :)

dymdin
() автор топика
Ответ на: комментарий от dymdin

Главное, нигде не пишет ни про какую ошибку, вот в чём загадка этой ситуации

точно? ни в journalctl --user-unit pipewire ни в journalctl --user-unit pipewire-pulse?

eternal_sorrow ★★★★★
()

PipeWire, наконец, штатно заработал:

Строка сервера: /run/user/1000/pulse/native
Версия протокола библиотеки: 34
Версия протокола сервера: 34
Выполняется локально: да
Номер клиента: 76
Размер блока памяти: 65472
Имя пользователя: mylogin
Имя хоста: mydomain.localdomain
Имя сервера: PulseAudio (on PipeWire 0.3.20)
Версия сервера: 14.0.0
Спецификация отсчётов по умолчанию: float32le 2-канальный 
Схема каналов по умолчанию: front-left,front-right
Аудиоприёмник по умолчанию: alsa_output.pci-0000:00:1b.0.analog-stereo
Источник по умолчанию: alsa_input.pci-0000:00:1b.0.analog-stereo

…но проблема молчащих наушников осталась, можно в alsamixer переключиться напрямую в alsa и там «подёргать» туда-сюда переключатель loopback, тогда звук появляется, но управляется параллельно с колонками.

Вопрос к знатоках pipewire есть-ли здесь замена директории /usr/share/pulseaudio/alsa-mixer куда бы можно было бы скидывать звуковые правила от пульсы ? Та схема правки /usr/share/pulseaudio/alsa-mixer/paths|analog-output-headphones.conf в пульсе вполне работала, хотелось завести подобное и в pipewire :)

dymdin
() автор топика
Ответ на: комментарий от eternal_sorrow

откажись от pulseaudio в пользу pipewire

Я мимокрокодил и не в тему, но интересно. А в пипваре есть что-то на замену PulseEffects? Ну или хотя бы эквалайзер.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

А в пипваре есть что-то на замену PulseEffects? Ну или хотя бы эквалайзер.

и то и другое от пульсы должно работать. а ведь есть ещё совместимость с jack

eternal_sorrow ★★★★★
()

Нашёл новый путь для правил: /usr/share/alsa-card-profile/mixer/paths

Но наушники после старта сессии молчат, и запускаются только через loopback из альсы, хелп :-/

фев 03 20:10:46 localdomain pipewire[1199]: alsa-pcm 0x563bdc0075f8: snd_pcm_status error: Broken pipe
фев 03 20:11:02 localdomain pipewire-media-session[1203]: GetManagedObjects() failed: org.freedesktop.DBus.Error.NoReply
фев 03 20:16:37 localdomain pipewire[1199]: alsa-pcm 0x563bdc0075f8: snd_pcm_status error: Broken pipe
фев 03 20:16:37 localdomain pipewire[1199]: 18 events suppressed
dymdin
() автор топика
Последнее исправление: dymdin (всего исправлений: 2)

Звук в наушники можно вернуть даунгрейдом ядра

$ dnf --showduplicates list kernel
Установленные пакеты
kernel.x86_64                     5.8.15-301.fc33                       @fedora 
kernel.x86_64                     5.10.14-200.fc33                      @updates
kernel.x86_64                     5.10.16-200.fc33                      @updates
Имеющиеся пакеты
kernel.x86_64                     5.8.15-301.fc33                       fedora  
kernel.x86_64                     5.10.16-200.fc33                      updates

Сравнил lsmod-ы загрузки когда звук есть в наушниках, когда нет:

Звук в наушниках есть (kernel 5.8.15):

snd_hda_codec_via      24576  1
snd_hda_codec_generic    98304  1 snd_hda_codec_via
ledtrig_audio          16384  1 snd_hda_codec_generic
snd_hda_intel          57344  4
snd_intel_dspcfg       24576  1 snd_hda_intel
snd_hda_codec         163840  3 snd_hda_codec_generic,snd_hda_intel,snd_hda_codec_via
snd_hda_core          110592  4 snd_hda_codec_generic,snd_hda_intel,snd_hda_codec,snd_hda_codec_via
snd_hwdep              16384  1 snd_hda_codec
snd_pcm               131072  4 snd_hda_intel,snd_hda_codec,snd_hda_core
kvm_intel             319488  0
snd                   106496  18 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_hda_codec_via,snd_pcm
kvm                   823296  1 kvm_intel
intel_pmc_bxt          16384  1 iTCO_wdt

нет в наушниках звука (kernel 5.10.{14,16}):

snd_hda_codec_via      24576  1
snd_hda_codec_generic    98304  1 snd_hda_codec_via
ledtrig_audio          16384  1 snd_hda_codec_generic
snd_hda_intel          57344  5
snd_intel_dspcfg       24576  1 snd_hda_intel
soundwire_intel        45056  1 snd_intel_dspcfg
soundwire_generic_allocation    16384  1 soundwire_intel
snd_soc_core          323584  1 soundwire_intel
soundwire_cadence      36864  1 soundwire_intel
kvm_intel             327680  0
snd_hda_codec         172032  3 snd_hda_codec_generic,snd_hda_intel,snd_hda_codec_via
intel_pmc_bxt          16384  1 iTCO_wdt
kvm                   909312  1 kvm_intel
snd_hda_core          110592  4 snd_hda_codec_generic,snd_hda_intel,snd_hda_codec,snd_hda_codec_via
snd_hwdep              16384  1 snd_hda_codec
snd_pcm               131072  9 snd_hda_intel,snd_hda_codec,soundwire_intel,snd_compress,snd_soc_core,snd_hda_core,snd_pcm_dmaengine
snd                   110592  21 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_compress,snd_hda_codec_via,snd_soc_core,snd_pcm

Появляются модули: soundwire_generic_allocation, soundwire_intel, soundwire_cadence и snd_soc_core, хорошо, пытаюсь их записать в /etc/modprobe.d/blacklist.conf:

blacklist soundwire_generic_allocation
blacklist soundwire_intel
blacklist snd_soc_core
blacklist soundwire_cadence

Но в следующей сессии эти модули снова загружаются, и звука опять в наушниках нет :( Что делать ? И вообще, не понимаю почему volumemeter показывает что звук на analog-output-headphones есть, тогда когда его нет ?

dymdin
() автор топика
Последнее исправление: dymdin (всего исправлений: 1)
Ответ на: комментарий от dymdin

Не знаю, имеет ли отношение к данной проблеме, но в f34 выскакивает ошибка:

modprobe: FATAL: Module soundwire_dspcfg not found in directory /lib/modules/5.11.0-156.fc34.x86_64

В ядре 5.8 такого файлика не было :(

dymdin
() автор топика

Неужели ни у кого никаких идей нет ?

Может, дело в этом:

# alsactl restore
alsactl: set_control:1461: Cannot write control '2:0:0:Independent HP:0' : Device or resource busy

Как это исправить ?

dymdin
() автор топика
Ответ на: комментарий от eternal_sorrow

Но проблему удалось частично решить с помощью hdajackretask

Правда, теперь, таким же способом, не удаётся микрофон включить :(

Кстати нашёл точно такую же тему (жаль не видел ранее) с уточнением когда появилась эта ошибка

Re: PulseAudio не видит наушники (комментарий)

проблемы начались с 5.10.3, а не 5.10.2

dymdin
() автор топика
19 января 2022 г.

Подниму-ка эту тему: 100% надёжного решения до сих пор нет. Предыдущий способ с использованием hdajackretask тоже не всегда работает, плюс проблемы с микрофоном. Нашёл ещё один способ растормошить звук:

Шаг 1. Сбросить все программы использующие звук
Шаг 2. Остановить пульсу:  systemctl --user stop pulseaudio.socket && systemctl --user stop pulseaudio.service
Шаг 3. В alsamixer включить переключатели 'Dynamic','Independ', 'Loopback' в положение 'Enable'
Шаг 4. Включить пульсу systemctl --user start pulseaudio.service
Шаг 5. Проиграть любой медиафайл (звука пока нет)
Шаг 6. Повторить шаги 1-5, установив упомянутые в шаге 3 переключатели в положение 'Disable'

Выполнив все эти действия звук в наушниках стабильно появляется во всех дистрибутивах и версиях ядра 5.10 и более свежих. Прошу не кидать тапками, но ничего другого не проглядывается. Как можно автоматизировать эти действия ? Практически уверен, проблема решается грамотным ~/.asoundrc. Но как составить для моего случая ? В принципе, в арче годится .asoundrc из темы тамошнего форума:

pcm.snd_card {
  type hw
  card 0
  device 0
}

pcm.dmixer {
  type dmix
  ipc_key 1024
  ipc_key_add_uid false
  ipc_perm 0660
  slave {
    pcm "snd_card"
    #rate 44100
    channels 2
    period_time 0
    period_size 1024
    buffer_time 0
    buffer_size 5120
  }
}

pcm.sch {
  type route
  slave.pcm dmixer
  #slave.channels 2
  ttable.0.0 1
  ttable.1.1 1
}

pcm.!default {
  type asym
  playback.pcm {
    type plug
    slave.pcm dmixer
  }
  capture.pcm  {
    type plug
    slave.pcm {
      type hw
      card 2
      device 0
      format S16_LE
      channels 1
      #rate 22050
    }
  }
}

Но это работоспособно только для Archlinux (и на его базе) для других дистров - не работает :(

dymdin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.