
我的 Lenovo Legion 7i 筆記型電腦的揚聲器沒有聲音,alsamixer 告訴我正在使用瑞昱ALC287。
我嘗試過各種Linux 發行版和核心組合,包括Ubuntu 16.04、18.04 和20.04,同時使用預設核心和主線核心(5.7.x 和5.8.x),以及使用5.6.x、5.7.x 和5.8.x的Manjaro內核。
在每種情況下,我都確保停用 alsamixer 中的自動靜音,並將所有音量等級調至最大。在所有情況下,我都沒有從揚聲器發出聲音(運行揚聲器測試、播放音樂等)。我是能夠透過耳機和 HDMI 獲取聲音(儘管我相信 HDMI 是透過不同的音效卡)。
另外,我可以看到,當我查看 pavucontrol(指示正在播放聲音的紅橙色條)時,會發生某種聲音活動,但揚聲器沒有發出實際的聲音。
我的 alsa-info.sh 結果(來自 2015 年 6 月 5 日的 Manjaro)在這裡(忽略這一點,下面是較新的結果):
http://alsa-project.org/db/?f=ba86fe76a9d9cf1cced56600edf82eb206a36a72
我很高興從不同的發行版/核心組合再次運行腳本(或任何其他工具),請告訴我什麼會有幫助。
我已經提交了包含相同資訊的錯誤報告,但遺憾的是,唯一的回應來自其他有同樣問題的人。
我該怎麼做才能讓我的聲音正常運作?我在軟體開發方面有經驗,但在驅動程式或核心空間方面沒有經驗。此時願意學習和嘗試任何事。
更新
alsa-info.sh 使用更新的核心:
http://alsa-project.org/db/?f=4272343a3590cc08f192f98113dedfc0418afe52
答案1
部分答案:
您提供的資訊有一個關於編解碼器的部分,它告訴您該特定編解碼器無法識別:
Codec: Realtek Generic
...
Vendor Id: 0x10ec0287
Subsystem Id: 0x17aa3813
Revision Id: 0x100002
在我的系統上,第一行說
Codec: Realtek ALC892
處理各種編解碼器的補丁程式碼位於 中/sound/pci/hda/patch_realtek.c
,至少對於我目前使用的相對較舊的核心來說是這樣。
因此,為了讓聲音正常工作,您需要調試編解碼器的問題,然後編寫補丁,並將其包含在程式碼中,以便其他擁有該硬體的人都可以使其正常工作。
編解碼器資訊可以使用 轉儲cat /proc/asound/card*/codec\#*
。了解英特爾 HDA 編解碼器的工作原理並進行調試。
我建議禁用 Pulseaudio。hda-verb
從alsa-tools
軟體包中獲取(至少在 Debian 上是這樣調用的)也可能有幫助。
您可以透過Google搜尋舊編解碼器的資料表來了解它們的工作原理。