问题的根源在于用户失去了访问audio设备的权限。可以通过命令
ls -la /dev/snd
来查看音频设备的使用权限。比如在我的系统下,输出
total 0
drwxr-xr-x 2 root root 180 2008-05-14 08:53 .
drwxr-xr-x 12 root root 4580 2008-05-15 13:01 ..
crw-rw----+ 1 root root 116, 8 2008-05-14 08:53 controlC0
crw-rw----+ 1 root root 116, 7 2008-05-14 08:53 hwC0D2
crw-rw----+ 1 root root 116, 6 2008-05-14 08:54 pcmC0D0c
crw-rw----+ 1 root root 116, 5 2008-05-14 14:04 pcmC0D0p
crw-rw----+ 1 root root 116, 4 2008-05-14 08:53 pcmC0D1p
crw-rw----+ 1 root root 116, 3 2008-05-14 08:53 seq
crw-rw----+ 1 root root 116, 2 2008-05-14 08:53 timer
这代表只有root和audio组的用户可以使用 音频设备。这也就是为什么
在root下Volume Control工作正常,而在其他用户下无法使用。也许是
一些错误操作将用户从audio组中删除而无法使用音频设备。解决办法是
sudo chmod -R a+rwx /dev/snd
这样就会让所有的用户可以访问音频设备。 更加恰当的方法是,
sudo usermod -a -G audio usrname.
上述操作将用户usrname添加到audio组中。
from http://blog.csdn.net/hecssy/archive/2008/08/23/2816887.aspx