打開筆記型電腦後 alsamixer 出現多個問題(在其他作業系統中沒有問題)
這隨機開始發生在今天。昨天我打開我的筆記型電腦清理它。我還錯誤地斷開了 CMOS 電池電纜。
當我
alsamixer
在終端中打開時,當我嘗試控制通道時會發生以下情況:
- 控制“PCM”頻道是我改變音量的唯一方法。
- 選擇主通道時使用向上/向下箭頭鍵,它會更改數字,但實際上不會更改音量。更奇怪的是:控制主音量會使其靜音。它還會使耳機通道靜音,但不會使揚聲器通道靜音。
- 通過按“M”取消主通道靜音不會恢復音頻。為此,我必須按 Fn+F1,這
pactl set-sink-mute 0 toggle
在 sxhkdrc 中綁定(使用 bspwm)。- 使用 Fn+F2/F3(綁定到
pactl set-sink-volume 0 -/+ 5%
)來減少/增加更改主通道但不會更改音頻,但也不會將其靜音。- (un)靜音耳機通道不會對音頻做任何事情。增加/減少耳機通道不會改變音量。
- 使主通道靜音也會使耳機通道靜音,但取消主通道靜音不會取消耳機通道的靜音。
- 我根本無法讓揚聲器工作。
- 當我使用功能鍵將主通道一直降低到 0 時,耳機通道也會下降。當耳機通道變為 0 時,它只靜音右通道(wtf?)。
一切都可以在 Windows 中執行(我確實在 Windows 中遇到了音頻驅動程序的問題,但重新啟動修復了它)和 USB live 棒上的 Ubuntu 18.10。我在執行 Arch Linux 的筆記型電腦(Lenovo Legion Y520)上。根據 alsamixer 我正在使用
HDA Intel PCH
音效卡和Realtek ALC233
晶片。編輯:我看到
pavucontrol
我有兩個音頻輸出:耳機和揚聲器。在揚聲器旁邊,它顯示“不可用”。編輯:dmesg:https ://pastebin.com/YUr4MyDf
輸出
ls /proc/asound/card*/codec*
:/proc/asound/card0/codec#0
/proc/asound/card0/codec#2
我用這個修復了它:https ://help.ubuntu.com/community/HdaIntelSoundHowto#Playing_with_probe_mask
我在 dmesg: 中仍然有錯誤
snd_hda_intel 0000:00:1f.3: control 2:0:0:PCM Playback Volume:0 is already present
,但我沒有遇到任何問題。
您會看到
pulse
外掛控制項,它只有一個音量控制項。嘗試使用F6
訪問音效卡的硬體控制。但是,由於您現在將 Pulseaudio 作為您的主要音頻系統執行(可能是因為清理而第一次重新啟動,這是您很久以前進行的一些更新的結果?),我建議您不要管
alsamixer
,並改用pavucontrol
或使用桌面的聲音設置(如果您正在使用)。兩者都使用可能會錯誤配置中間放大器,導致削波和聲音失真。
正如您已經玩過的那樣,您可能必須使用
alsamixer
一次才能將所有內容恢復到良好狀態(例如取消靜音意外靜音的節點等)編輯
您的編解碼器被正確辨識:
[ 3.845593] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915]) ... [ 3.883968] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC233: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker [ 3.883969] snd_hda_codec_realtek hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) [ 3.883970] snd_hda_codec_realtek hdaudioC0D0: hp_outs=1 (0x21/0x0/0x0/0x0/0x0) [ 3.883971] snd_hda_codec_realtek hdaudioC0D0: mono: mono_out=0x0 [ 3.883972] snd_hda_codec_realtek hdaudioC0D0: inputs: [ 3.883973] snd_hda_codec_realtek hdaudioC0D0: Mic=0x19 [ 3.883974] snd_hda_codec_realtek hdaudioC0D0: Internal Mic=0x12
但不久之後,失敗了:
[ 16.496761] snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to polling mode: last cmd=0x202f2d00 [ 17.500096] snd_hda_intel 0000:00:1f.3: No response from codec, disabling MSI: last cmd=0x202f2d00 [ 18.510492] snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to single_cmd mode: last cmd=0x202f2d00
然後事情開始看起來很有趣:
[ 138.168712] azx_single_send_cmd: 14 callbacks suppressed [ 391.888726] azx_single_send_cmd: 34 callbacks suppressed [ 403.161786] azx_single_send_cmd: 114 callbacks suppressed [ 447.315584] azx_single_send_cmd: 46 callbacks suppressed [ 514.846522] azx_single_send_cmd: 70 callbacks suppressed
所以,猜猜:在清潔你的筆記型電腦時(除非你做了一些你沒有告訴我們的其他事情),你造成了靜電放電,和/或你意外斷開的電池電纜接觸了它不應該接觸的東西,現在一些與音效卡/編解碼器通信無法正常工作。
這將很難正確診斷和修復。您可以
hda-verb
嘗試並查看編解碼器文件的內容,看看是否可以進一步縮小問題範圍,但要做到這一點,您需要閱讀這些東西的工作原理。這不是我們可以通過問答進行遠端調試的東西。我不知道為什麼它在 Windows 中有效,而在 Linux 中無效。可能 Windows 以不同方式初始化硬體。