LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3382|回复: 6

关于休眠时的声音的问题。

[复制链接]
发表于 2007-4-10 23:12:19 | 显示全部楼层 |阅读模式
开始我的alsa是编译到内核里的,唤醒后没有声音。解决的办法是编译成模块。然后在hibernate的配置文件里指定alsasound为重启服务。

但是带来了一点小问题:

重启会先关闭所有打开/dev/snd/controlC0设备的mixers。包括alsamixer,gnome的几个声音属性程序,以及起用了gkrellm-volumn插件的gkrellm2。

这个过程是不可避免的,因为不关闭这些文件,模块无法卸载。

不知道大家是如何解决的?是否有不重新加载模块而解决了声卡唤醒后不发声的先例?

00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 02)
00:14.6 Modem: ATI Technologies Inc SB400 AC'97 Modem Controller (rev 02)
发表于 2007-4-11 00:46:22 | 显示全部楼层
suspend的设备状态恢复需要驱动本身的支持,但是到目前为止,suspend-resume在linux下面还没有一个驱动程序的开发标准,这个在windows下面倒是有的。只能等suspend内核组整理出开发标准的文档,再指望众多驱动程序的开发者慢慢按标准更新驱动程序了,没办法急不来的。
不过某些驱动程序也许可以通过编译在内核中来部份解决这个问题,你可以试试看你的能不能。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-11 06:27:22 | 显示全部楼层
我原来的驱动是编译到内核中的,唤醒后没有声音。后来换成模块加载。声音回复才正常。
只是因为模块加载卸载,kill了几个常用的程序,尤其是gkrellm,觉得很不爽。
回复 支持 反对

使用道具 举报

发表于 2007-4-11 15:08:10 | 显示全部楼层
这个问题要想解决,只要重新初始化一下声音驱动就行了。这会丢失正在播放中的一小段声卡硬件buffer中的声音,或者需要停掉正在播放的程序,但之后就正常了。
你可以找找看asla工具里有没有类似的程序。不过要想很好的解决我想目前还做不到吧。
回复 支持 反对

使用道具 举报

发表于 2007-4-11 19:02:08 | 显示全部楼层
我的怎么没有这个问题?我没有对 hibernate 作特别的配置。声卡驱动也是模块
回复 支持 反对

使用道具 举报

发表于 2007-4-11 21:52:41 | 显示全部楼层
我这也是编进内核,suspend2 内核,休眠恢复后没问题,倒是无线网卡要先从系统中移除(modprobe -r ndiswrapper),否则恢复后很大的几率会死机……
回复 支持 反对

使用道具 举报

发表于 2007-4-22 11:42:41 | 显示全部楼层
我的声卡是Multimedia audio controller: Intel Corporation 82801CA/CAM AC'97 Audio Controller (rev 02),编译为模块
在/etc/hibernate/hibernate.conf加入:
RestartServices alsasound
即可。不用unload modules,没有任何问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表