如何讓我的不支援的音效卡與 ALSA 一起工作?

如何讓我的不支援的音效卡與 ALSA 一起工作?

我的 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-verbalsa-tools軟體包中獲取(至少在 Debian 上是這樣調用的)也可能有幫助。

您可以透過Google搜尋舊編解碼器的資料表來了解它們的工作原理。

相關內容