Bug 8995

Summary: 2.6.14 что-то не "звучит" (snd_cmipci)
Product: Sisyphus Reporter: Eugene V. Horohorin <genix>
Component: hotplugAssignee: Anton Farygin <rider>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: rider, vsu
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
вывод команды amixer на ядре 2.6.12
none
вывод команды amixer на ядре 2.6.14
none
asound-2.6.12.state (comment #7)
none
asound-2.6.14-good.state (Comment #8)
none
asound-2.6.14-bad.state (Comment #8) none

Description Eugene V. Horohorin 2006-01-31 14:24:45 MSK
после обновления до 2.6.14 перестала издавать звуки звуковая карта:
0000:02:09.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)

на 2.6.12 работает, на 2.6.14 нет.
проигрыватель играет, модули загружены, звука из динамиков нет

разница между выводами amixer на обоих ядррах:

--- amixer.2612	2006-01-31 14:11:11 +0300
+++ amixer.2614	2006-01-31 14:14:15 +0300
@@ -48,13 +48,19 @@
   Limits: Playback 0 - 31 Capture 0 - 7
   Mono: Playback 0 [0%] [off] Capture 0 [0%] [off]
 Simple mixer control 'Mic Boost',0
-  Capabilities: pswitch pswitch-joined
+  Capabilities: pswitch pswitch-joined cswitch cswitch-joined
   Playback channels: Mono
-  Mono: Playback [off]
+  Capture channels: Mono
+  Mono: Playback [off] Capture [off]
 Simple mixer control 'Mic-In Mode',0
   Capabilities: enum
   Items: 'Mic-In' 'Center/LFE Output'
   Item0: 'Center/LFE Output'
+Simple mixer control 'Phone',0
+  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
+  Playback channels: Mono
+  Limits: Playback 0 - 7
+  Mono: Playback 0 [0%] [on]
 Simple mixer control 'IEC958 5V',0
   Capabilities: pswitch pswitch-joined
   Playback channels: Mono
@@ -62,7 +68,7 @@
 Simple mixer control 'IEC958 Copyright',0
   Capabilities: pswitch pswitch-joined
   Playback channels: Mono
-  Mono: Playback [on]
+  Mono: Playback [off]
 Simple mixer control 'IEC958 In Monitor',0
   Capabilities: pswitch pswitch-joined
   Playback channels: Mono
@@ -86,12 +92,16 @@
 Simple mixer control 'IEC958 Output',0
   Capabilities: pswitch pswitch-joined
   Playback channels: Mono
-  Mono: Playback [off]
+  Mono: Playback [on]
 Simple mixer control 'PC Speaker',0
   Capabilities: pvolume pvolume-joined
   Playback channels: Mono
   Limits: Playback 0 - 3
   Mono: Playback 0 [0%]
+Simple mixer control 'PC Speaker Playnack',0
+  Capabilities: pswitch pswitch-joined
+  Playback channels: Mono
+  Mono: Playback [off]
 Simple mixer control 'Aux',0
   Capabilities: pvolume pswitch cswitch
   Playback channels: Front Left - Front Right
@@ -102,4 +112,4 @@
 Simple mixer control 'Four Channel Mode',0
   Capabilities: pswitch pswitch-joined
   Playback channels: Mono
-  Mono: Playback [off]
+  Mono: Playback [on]
Comment 1 Eugene V. Horohorin 2006-01-31 14:25:45 MSK
Created attachment 1364 [details]
вывод команды amixer на ядре 2.6.12

вывод команды amixer на ядре 2.6.12
Comment 2 Eugene V. Horohorin 2006-01-31 14:26:18 MSK
Created attachment 1365 [details]
вывод команды amixer на ядре 2.6.14

вывод команды amixer на ядре 2.6.14
Comment 3 Sergey Vlasov 2006-01-31 14:59:28 MSK
А 'IEC958 Output' сам собой включился?  Да и 'Four Channel Mode' тоже.  Если
выключить их в alsamixer, ситуация не улучшается?

Вообще это может быть какая-то странность в alsactl при загрузке установок от
другой версии...
Comment 4 Eugene V. Horohorin 2006-01-31 15:05:52 MSK
> А 'IEC958 Output' сам собой включился?  Да и 'Four Channel Mode' тоже.  
> Если выключить их в alsamixer, ситуация не улучшается?

Все именно так и было -- выключил оба этих пункта, и все заработало.
багу закрывать?
Comment 5 Sergey Vlasov 2006-02-12 15:38:35 MSK
Пожалуйста, проверьте ещё вот что: в файле /etc/dev.d/sound/sound.dev есть функция:

function restore_mixer() {
    mesg "Restore mixer values for $DEVPATH ($CARDN)"
    ret=`$ALSACTL -f "$STATEPATH/asound$CARDN.state" restore $CARDN 2>&1`
    [ "$ret" == "" ] || return 1
}

Попробуйте добавить в вызов alsactl опцию -F, чтобы получилось:

function restore_mixer() {
    mesg "Restore mixer values for $DEVPATH ($CARDN)"
    ret=`$ALSACTL -F -f "$STATEPATH/asound$CARDN.state" restore $CARDN 2>&1`
    [ "$ret" == "" ] || return 1
}

Затем настройте микшер с ядром 2.6.14, потом перезагрузитесь в 2.6.12 и опять в
2.6.14 (после чего в предыдущих случаях звук пропадал).  Вроде бы после такого
изменения проблема должна исчезнуть окончательно.
Comment 6 Anton Farygin 2006-02-13 10:08:45 MSK
Добавил в hotplug-2004_09_23-alt15 в Sisyphus.
Comment 7 Eugene V. Horohorin 2006-02-14 15:25:53 MSK
(In reply to comment #5)  
> Пожалуйста, проверьте ещё вот что: в файле /etc/dev.d/sound/sound.dev есть  
функция:  
  
[genix@koptev ~]$ grep -A3 'restore_mixer()' /etc/dev.d/sound/sound.dev 
function restore_mixer() { 
    mesg "Restore mixer values for $DEVPATH ($CARDN)" 
    ret=`$ALSACTL -F -f "$STATEPATH/asound$CARDN.state" restore $CARDN 2>&1` 
    [ "$ret" == "" ] || return 1 
[genix@koptev ~]$  
  
  
 
> Затем настройте микшер с ядром 2.6.14, потом перезагрузитесь в 2.6.12 и  
опять в  
> 2.6.14 (после чего в предыдущих случаях звук пропадал).  Вроде бы после  
такого  
> изменения проблема должна исчезнуть окончательно.  
  
результат тот же -- под 2.6.14 приходится руками выключать IEC958 Output в 
alsamixer'е, под 2.6.12 работает 
Comment 8 Sergey Vlasov 2006-02-14 15:55:06 MSK
(In reply to comment #7)
> результат тот же -- под 2.6.14 приходится руками выключать IEC958 Output в 
> alsamixer'е, под 2.6.12 работает 

Плохо.  Придётся копать дальше.

При загруженном ядре 2.6.12 и работающем звуке выполните:

   alsactl -f asound-2.6.12.state store

Перезагрузитесь в 2.6.14, восстановите настройки микшера в работоспособное
состояние и выполните:

   alsactl -f asound-2.6.14-good.state store

Затем попробуйте загрузить настройки от 2.6.12:

   alsactl -F -f asound-2.6.12.state restore 2>&1 | tee alsactl.log

Если проблема действительно в alsactl, в результате загрузки старого состояния
звук должен пропасть. Сохраните получившееся состояние микшера в файл:

   alsactl -f asound-2.6.14-bad.state store

Наконец, приложите сюда полученные файлы *.state и alsactl.log.
Comment 9 Eugene V. Horohorin 2006-02-14 16:25:53 MSK
(In reply to comment #8)  
  
>    alsactl -F -f asound-2.6.12.state restore 2>&1 | tee alsactl.log  
>   
> Если проблема действительно в alsactl, в результате загрузки старого  
состояния  
> звук должен пропасть.   
  
звук не пропал (играл amarok во время выполнения команды)  
alsactl ругнулся:  
  
alsactl: set_control:873: failed to obtain info for control #22 (No such file  
or directory)  
alsactl: set_control:873: failed to obtain info for control #33 (No such file  
or directory)  
  
> Сохрите получившееся состояние микшера в файл:  
>   
>    alsactl -f asound-2.6.14-bad.state store  
  
тем не менее вывод изменился 
 
> Наконец, приложите сюда полученные файлы *.state и alsactl.log.  
  
  
Comment 10 Eugene V. Horohorin 2006-02-14 16:27:38 MSK
Created attachment 1388 [details]
asound-2.6.12.state (comment #7)

asound-2.6.12.state (comment #7)
Comment 11 Eugene V. Horohorin 2006-02-14 16:28:37 MSK
Created attachment 1389 [details]
asound-2.6.14-good.state (Comment #8)

asound-2.6.14-good.state (Comment #8)
Comment 12 Eugene V. Horohorin 2006-02-14 16:29:21 MSK
Created attachment 1390 [details]
asound-2.6.14-bad.state (Comment #8)

asound-2.6.14-bad.state
Comment 13 Sergey Vlasov 2006-02-14 17:16:54 MSK
(In reply to comment #9)
> звук не пропал (играл amarok во время выполнения команды)  

Значит, дело не в том, что грузит alsactl, или в /var/lib/hotplug/asound*.state
оказывается что-то совсем не то.  Кстати, там вообще есть такие файлы?

Можно ещё проверить следующее (под 2.6.14): убрать куда-нибудь файл
/etc/dev.d/sound/sound.dev, перезагрузить систему (можно попробовать выгрузить и
загрузить модуль snd-cmipci, но при этом состояние может сброситься не
полностью) и сохранить состояние микшера:

  alsactl -f asound-2.6.14-initial.state store

(в это время в микшере всё должно оказаться выключенным).  Далее можно
попробовать alsactl -F -f asound-2.6.12.stare restore - звук должен появиться.

Да, это лучше проверять при входе с консоли, а не в средах типа KDE - вроде бы
микшер KDE одно время имел обыкновение "исправлять" настройки самостоятельно.
Comment 14 Eugene V. Horohorin 2006-02-16 08:36:54 MSK
(In reply to comment #13) 
 
> > звук не пропал (играл amarok во время выполнения команды)   
>  
> Значит, дело не в том, что грузит alsactl, или 
в /var/lib/hotplug/asound*.state 
> оказывается что-то совсем не то.  Кстати, там вообще есть такие файлы? 
 
asound0.state присутствует 
 
 
> Можно ещё проверить следующее (под 2.6.14): убрать куда-нибудь файл 
> /etc/dev.d/sound/sound.dev, перезагрузить систему (можно попробовать 
выгрузить и 
> загрузить модуль snd-cmipci, но при этом состояние может сброситься не 
> полностью) и сохранить состояние микшера: 
>  
>   alsactl -f asound-2.6.14-initial.state store 
>  
> (в это время в микшере всё должно оказаться выключенным).  Далее можно 
> попробовать alsactl -F -f asound-2.6.12.stare restore - звук должен 
появиться. 
 
странность в том, что после того как убрал sound.dev зук и не пропадал. 
Пробовал несколько раз. Вернул на место -- звук опять пропадает при 
перезагрузке 2.6.12->2.6.14 
 
 
> Да, это лучше проверять при входе с консоли, а не в средах типа KDE - вроде 
бы 
> микшер KDE одно время имел обыкновение "исправлять" настройки 
самостоятельно. 
 
проверял и в консоли ;)) 
 
 
Comment 15 Anton Farygin 2006-02-16 14:39:16 MSK
А на hotplug'е из текущего Sisyphus ?

Судя по всему alsactl -fF не помогает ;(
Comment 16 Eugene V. Horohorin 2006-02-16 17:16:58 MSK
(In reply to comment #15)
> А на hotplug'е из текущего Sisyphus ?

обновился до hotplug-2004_09_23-alt15
вроде работает (2.6.14->2.6.12->2.6.14, звук везде есть)

завтра погоняю еще
Comment 17 Anton Farygin 2006-02-16 17:40:58 MSK
там всё изменение - добавлена -F
Тогда всё-таки fixed.