LINUX.ORG.RU

Я случайно починил звук. Объясните, как я это сделал.

 , , ,


3

1

У меня вот такое железо и дистрибутив:

vsevolod@hp15debian9:~$ uname -a
Linux hp15debian9 4.9.0-5-amd64 #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04) x86_64 GNU/Linux
vsevolod@hp15debian9:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 9.3 (stretch)
Release:	9.3
Codename:	stretch
vsevolod@hp15debian9:~$ cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xc521c000 irq 47
 1 [HDMI           ]: HDA-Intel - HDA Intel HDMI
                      HDA Intel HDMI at 0xc5218000 irq 48
vsevolod@hp15debian9:~$ lspci | grep -i audio
00:03.0 Audio device: Intel Corporation Broadwell-U Audio Controller (rev 09)
00:1b.0 Audio device: Intel Corporation Wildcat Point-LP High Definition Audio Controller (rev 03)

Ранее у меня заикался звук, а в логе PulseAudio:

D: [alsa-sink-ALC3227 Analog] protocol-native.c: Implicit underrun of 'audio stream'

Но недавно я экспериментировал с QEMU. Я решил попробовать на ней звук без PulseAudio, для чего тупо

apt remove pulseaudio
. Звук не работал, тогда я дописал в /etc/environment
SDL_AUDIODRIVER=alsa
AUDIODEV=hw
QEMU_AUDIO_DRV=sdl
QEMU_AUDIO_DRV=alsa
QEMU_SDL_SAMPLES=2048
Но звук так и не заработал. Я бросил попытки, после чего
apt install pulseaudio
и закомментировал строчки, что ввел ранее.

На данный момент PulseAudio стоит, звук идет через него без заиканий,

vsevolod@hp15debian9:~$ cat /etc/environment
QT_QPA_PLATFORMTHEME=gtk2
#QT_STYLE_OVERRIDE=gtk2

#SDL_AUDIODRIVER=alsa
#AUDIODEV=hw
#QEMU_AUDIO_DRV=sdl
#QEMU_AUDIO_DRV=alsa
#QEMU_SDL_SAMPLES=2048

Объясните мне — почему звук _перестал_ глючить, строчки в /etc/environment ведь закомментированны?

Да, и хоть у меня Xfce, недавно я сменил xfwm4 на openbox — но я не знаю, связано ли это?

UPD: openbox не при чем, удалил закомментированные, перезагрузился, все норм со звуком:

vsevolod@hp15debian9:~$ cat /etc/environment
QT_QPA_PLATFORMTHEME=gtk2
#QT_STYLE_OVERRIDE=gtk2

★★★★★

Последнее исправление: Vsevolod-linuxoid (всего исправлений: 5)
Ответ на: комментарий от Vsevolod-linuxoid

Ну хз. С научной точки зрения пока твой опыт уникален и не может рассматриваться, т.к. повторить невозможно. Жди когда заглючит снова. Или добейся :)

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

Для чистоты эксперимента стоит удалить те закомментированные строчки, но жалко терять возможный результат, вдруг не восстановится.

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

В твоём случае теория совпадает с практикой. После удаления пакета, ты удалил всё говно вместе с ним и установил пакет заново с новыми конфигами. Вот так ты и починил звук.

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

Удалил закомментированные, перезагрузился, ничего не изменилось — звук по прежнему работает нормально.

Vsevolod-linuxoid ★★★★★
() автор топика
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от anonymous

пакет заново с новыми конфигами

конфиги удаляет purge, а remove не удаляет.

deep-purple ★★★★★
()

На всякий случай...

У меня идентичный Debian и идентичное же железо:

$ cat /proc/asound/cards
 0 [HDMI           ]: HDA-Intel - HDA Intel HDMI
                      HDA Intel HDMI at 0xf7d14000 irq 37
 1 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf7d10000 irq 35
$ lspci | grep -i audio
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 9 Series Chipset Family HD Audio Controller

Если захочешь выкинуть PA и настроить звук средствами голой ALSA, то вот мой ~/.asoundrc:

pcm.!default {
        type plug
        slave {
                pcm "asymed"
        }
}

ctl.!default {
        type hw
        card PCH
}

pcm.asymed {
        type asym
        playback {
                pcm "dmixer"
        }
        capture {
                pcm "hw:CARD=PCH"
        }
}

pcm.dmixer {
        type dmix
        ipc_key 1024
        slave {
                pcm "hw:CARD=PCH"
        }
}
Bass ★★★★★
()

Ты просто напугал пшшаудио. Пригрозил удалением, так сказать.

a1batross ★★★★★
()
Ответ на: комментарий от i-rinat

Зачем тогда настраивать вручную, если по умолчанию будет работать?

По умолчанию работает на картах, которые поддерживают аппаратное микширование звука (напр., Yamaha YMF 7x4 или SB Live).

На Intel HDA восход солнца приходится городить вручную с использованием dmixer. Но устройство dmixer не поддерживает ввод сигнала с микрофона или Line In (capture), поэтому дополнительно вводится asymed.

Bass ★★★★★
()
Ответ на: комментарий от Bass

По дефолту включены plug, dmix и dsnoop, так что одновременные воспроизведение и захват несколькими приложениями должны работать. У меня работают на встроенной intel hda, например. Без явных конфигов. Грузится /usr/share/alsa/alsa.conf, а там дальше хитрая магия грузит ещё кучу конфигов. Я в них глядел немного, но никогда не менял. Работает же.

Но если начинаешь писать свой конфиг в ~/.asoundrc, всё это приходится описывать заново. Тогда да, не работает. И нужно самому настраивать dmix, dsnoop, plug и что там ещё.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

одновременные воспроизведение и захват несколькими приложениями должны работать.

Я бы не заморачивался с настройкой, если бы работало из коробки.

По умолчанию приложения монопольно блокировали устройство, и, дополнительно, не работал режим «full duplex» (т. е. при общении в Slack через браузер либо слышали меня, а у меня в ушах тишина, либо наоборот).

Ну и, дополнительно, если пользуешься VirtualBox, то в виртуальных машинах тоже Intel HDA:

$ cat /proc/asound/cards
 0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xf0804000 irq 21
$ lspci -v | grep -i audio
00:05.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 01)
        Subsystem: SigmaTel 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller

-- но в гостевых ОС (Debian 8 и 9) тоже из коробки не работает, и нужно настраивать руками.

Bass ★★★★★
()

Я правильно понял, что в самом «стабильном» дистрибутиве не смогли сконфигурировать пульсу? И вот эта куча людей, удаляющая пульсу и оставляющая альсу, могли бы просто вот этим способом воспользоваться и у них бы всё работало? И пульса (в данном случае) вообще не виновата?

onlybugs ★★
()

У меня обычно всегда заикается звук в debian stretch на ванильном ядре. Ставлю ядро от liquorix, и этот баг пропадает.

Zomba444ok
()
Ответ на: комментарий от Bass

У тебя какой-то странный глюк. Мне никогда не приходилось настраивать что-либо. C ALSA звук работал что называется, «из коробки». Ну разве что нужно было регуляторы громкости с нуля поднять до каких-нибудь средних значений. И это с одновременным выводом и захватом. Возможно, мне везло на встроенное аудио, и под него уже были конфиге в дефолтной ALSA.

С PulseAudio тоже в общем-то работает. Но там есть проблемы mute/unmute при регуляции громкости через ALSA.

i-rinat ★★★★★
()
Ответ на: комментарий от onlybugs

Я правильно понял, что в самом «стабильном» дистрибутиве не смогли сконфигурировать пульсу?

Нет, не правильно. Тут дело в том, что у некоторых всё-таки не работает, и сообщения в основном от них. Кто в здравом уме будет бегать по форумам и создавать темы в духе «у меня работает звук, ура»?

i-rinat ★★★★★
()
Ответ на: комментарий от onlybugs

Этот баг с железом связан. На Fedora, OpenSUSE, Ubuntu, CentOS звук заикался точно так же.

Vsevolod-linuxoid ★★★★★
() автор топика

Смотри какие действия совершает пакет при установке, скорее всего отработал какой-то скрипт, который и починил тебе звук.

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