Як Windows підступно ламає звук в Linux або болісні пошуки бага

Замість вступу
Дешева «кімната страху» — темно і скрізь граблі.
Задумливо поглядаючи на падіння в глибокі безодні корекцію курсу рубля, я вирішив, що залишатися зі стрімко девальвує папером на руках немає сенсу і пора оновити застаріле залізо. Вибір зупинився на Gigabyte GA-Z97-D3H, так як хотілося мати інтерфейси для SSD «на виріст». M.2 і Sata Express обіцяють до 10 Гбіт/с порт, що не може не радувати на тлі стрімкого зростання швидкості накопичувачів. Зібрав, здійснив обряд нанесення термопасти і урочисто окропив пивом системний блок, як годиться і негайно поринув у захоплюючий світ граблів і загадкових багів.

Винуватець торжества.

Прості радості линуксоида
Відразу хочу сказати — я не суворий бородатий железячнік зцілює контролери покладанням рук. Максимум — злегка щетинистый linux-user, використовує відкрите ПЗ в роботі і житті. У таємній підземної лабораторії з вирощування хедкрабов, в якій я працюю, часто виникають завдання з обробки аудіо — і відеоматеріалів, отриманих у результаті роботи. Писки вылупляющегося зерглинга там обробити або ще щось… Коротше, без Audacity і Kdenlive нікуди. Realtek ALC1150 на материнській платі як завжди обіцяв неземне блаженство і кришталеві дзвіночки, тріпотіли під весняним вітром на вершині Гімалаїв.

У пошуках грабель

І ось, я звично розбив SSD на розділи для Windows 7 (так, я не люблю плитки) і Kubuntu 14.04 LTS. Після поверхневої конфігурації Windows ребутнулся в Linux і здивувався відсутності звуку. Вирішивши, що ядро як завжди не встигає за свіжим залізом, я поліз шукати відомі баги за z97-чіпсету. Перший баг, який попався, сумно оповідав про викривлення і охриплості на цьому чіпсеті у користувачів Ubuntu 14.04. Я побіжно проглянув рекомендації і спробував виконати це:
echo "options snd-hda-intel vid=8086 pid=8ca0 snoop=0" >> /etc/modprobe.d/alsa-base.conf

Після ребута тиша раніше наповнювала динаміки. Не сильно засмутившись, я помітив, що у версії ядра >3.16 проблема повинна бути усунена. Мабуть, незважаючи на обіцянки сидіти на стабільних LTS релізах, Всесвіт підштовхувала мене до колишньої низці безперервних оновлень і пошуків того, що відвалилося на цей раз. Виконавши do-release-upgrade, я порадів відсутності кардинальних змін, але проблема залишалася. Тоді я вирішив внести свою лепту в розвиток відкритого та запив покладений баг-репорт. Крім стандартних логів, я вирішив спробувати подати звук вручну, без використання прокладок типу Phonon і PulseAudio.
Спочатку визначаємо пристрою:
meklon@meklon-desktop:~/Музыка$ aplay-l
**** Список PLAYBACK пристроїв****
карта 0: PCH [Intel HDA PCH], пристрій 0: ALC1150 Analog [ALC1150 Analog]
Подустройства: 1/1
Подустройство №0: subdevice #0
карта 0: PCH [Intel HDA PCH], пристрій 1: ALC1150 Digital [ALC1150 Digital]
Подустройства: 1/1
Подустройство №0: subdevice #0
карта 1: HDMI [HDA ATI HDMI], пристрій 3: HDMI 0 [HDMI 0]
Подустройства: 1/1
Подустройство №0: subdevice #0

Першим ділом перевіряємо, що у нас не стоїть mute на низькому рівні (спасибі за підказки ValdikSS):
meklon@meklon-desktop:~/Музыка$ amixer set Master 100 unmute
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 87
Mono: Playback 87 [100%] [0.00 dB] [on]


Тепер намагаємося подати звук безпосередньо, використовуючи консольний всеїдний mplayer:
meklon@meklon-desktop:~/Музыка$ amixer set Master 100 unmute
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 87
Mono: Playback 87 [100%] [0.00 dB] [on]

meklon@meklon-desktop:~/Музыка$ mplayer --ao=alsa:device=hw=0.0 0.mp3
MPlayer2 2.0-728-g2c378c7-2ubuntu3 © 2000-2012 MPlayer Team
Cannot open file '/home/meklon/.mplayer/input.conf': No such file or directory
Failed to open /home/meklon/.mplayer/input.conf.
Cannot open file '/etc/mplayer/input.conf': No such file or directory
Failed to open /etc/mplayer/input.conf.

Playing 0.mp3.
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
[mp3 @ 0x7f43bdf90b40]max_analyze_duration 5000000 reached
[mp3 @ 0x7f43bdf90b40]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (mp3), -aid 0
Clip info:
album_artist: Emma Chapplin
track: 17
title: Spente Le Stelle (Live Version)
artist: Emma Shapplin
album: Forever Gold
genre: Classical
date: 2000
Load in subtitles .
Selected audio codec: MPEG 1.0/2.0/2.5 layers I, II, III [mpg123]
АУДІО: 44100 Hz, 2 ch, s16le, 320.0 kbit/22.68% (ratio: 40000->176400)
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 6.5 (06.5) of 334.7 (05:34.7) 0.4%


І знову слухаємо тишу. Тлін і безвихідь. Windows при цьому продовжує радувати нормальним звуком, виключаючи апаратні проблеми. Відчувши в собі пробудження бородатого тестера, вирішую перебрати всі можливі варіанти:
  • Ні один з дистрибутивів в live-cd версії не працює
  • Заміна ядра на 3.17 зробило систему менш адекватною, але звук не з'явився
  • Поотключал фізично відеокарту і SSD
  • Протер пил на колонках
  • Повтыкал кабель в різні роз'єми
  • кадив він мануал перед портретиком Столман
Вбивця — двірник

Як ви вже здогадалися з назви посту — проблема у Windows. І пофіг, що був мільйон перезавантажень, включення і виключення, запуски з усіх можливих носіїв. Отже, барабанний дріб і вирішення проблеми у вигляді величезного милиці, перемотанного ізолентою:
Щоб з'явився звук, потрібно фізично знеструмити системний блок. Так. Саме знеструмити. Якщо ви хоча б один раз запустите Windows, то звук знову пропаде.
Ребути і звичайне вимикання не допомагають. Windows при запуску щось самим підлим чином робить з залізом контролера на материнській платі, роблячи його недоступним в Linux-системах. Ворожі підступи не інакше. Так, я не спеціаліст в області низькорівневого заліза і ядра — залишаю пошуки рішення для більш бородатих товаришів по нещастю. До речі, я все-таки натрапив потім опис мого ж бага вже після того, як виявив його причину. Користуючись нагодою, хочу уточнити, що мені робити зі своїм баг-репортів? Як його смерджить з більш раннім?

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.