05-03-2020, 12:26 AM
我现在用的这台2560p刚开始使用的使用有个问题,插上耳机之后听不到声音。之前在刷了coreboot的T440p里面有这个问题,所以我以为是coreboot的问题。但是我用LiveUSB里的系统(包括基于Arch的)的时候,用起来却很正常。之后发现了另一个奇怪的问题,我插上耳机之后,alsamixer里面的Speaker+LO是静音的,但是可以关掉静音并调大声音,这时候耳机和喇叭都有声音(因为我的耳机有音量调节功能,所以我能分清是耳机发出的声音还是笔记本喇叭发出的声音)。
我尝试了很多方法:
- 重新配置 ~/.asoundrc 或者删掉 ~/.asoundrc,都没解决,说明不是用户配置的问题
- 恢复内核的配置 (/etc/modules-load.d, /etc/modprobe.d, /etc/sysctl.d),改用最新的内核(之前我用的是linux-lts),说明不是内核的问题
于是我开始思考LiveUSB和我当前系统配置的区别。LiveUSB里要播放声音,要先用alsamixer把默认的静音选项关掉,之前是alsa默认的全静音的设置。所以我的解决方法是恢复alsa的默认设置。经过查看alsa-utils这个包的内容,发现它有alsa-restore.service和alsa-state.service,而alsa-restore.service使用了/var/lib/alsa/asound.state. 我把这个文件删掉。为了防止关机的时候重写这个文件,我干脆把 alsa-utils 这个包删掉。重新启动后,装上 alsa-utils,发现音频配置成为默认的全部静音,再重新配置,耳机和外放都正常了。
我尝试了很多方法:
- 重新配置 ~/.asoundrc 或者删掉 ~/.asoundrc,都没解决,说明不是用户配置的问题
- 恢复内核的配置 (/etc/modules-load.d, /etc/modprobe.d, /etc/sysctl.d),改用最新的内核(之前我用的是linux-lts),说明不是内核的问题
于是我开始思考LiveUSB和我当前系统配置的区别。LiveUSB里要播放声音,要先用alsamixer把默认的静音选项关掉,之前是alsa默认的全静音的设置。所以我的解决方法是恢复alsa的默认设置。经过查看alsa-utils这个包的内容,发现它有alsa-restore.service和alsa-state.service,而alsa-restore.service使用了/var/lib/alsa/asound.state. 我把这个文件删掉。为了防止关机的时候重写这个文件,我干脆把 alsa-utils 这个包删掉。重新启动后,装上 alsa-utils,发现音频配置成为默认的全部静音,再重新配置,耳机和外放都正常了。