Как заставить мою неподдерживаемую звуковую карту работать с ALSA?

Как заставить мою неподдерживаемую звуковую карту работать с ALSA?

Я не слышу звука через динамики моего ноутбука Lenovo Legion 7i, который, как сообщает alsamixer, используетRealtek ALC287.

Я пробовал различные дистрибутивы Linux и комбинации ядер, включая Ubuntu 16.04, 18.04 и 20.04, как с ядрами по умолчанию, так и с основными ядрами (5.7.x и 5.8.x), а также Manjaro с ядрами 5.6.x, 5.7.x и 5.8.x.

В каждом случае я отключил Auto-Mute в alsamixer и выставил все уровни громкости на максимум. Во всех случаях я не слышу звуков из динамиков (запуск теста динамиков, воспроизведение музыки и т. д.). Яявляюсьвозможность вывода звука через наушники и HDMI (хотя я считаю, что HDMI подключается через другую звуковую карту).

Кроме того, я вижу, что происходит какая-то звуковая активность, когда смотрю на pavucontrol (красновато-оранжевая полоса, указывающая на воспроизведение звука), но на самом деле звук из динамиков не воспроизводится.

Мои результаты alsa-info.sh (из Manjaro от 5.6.15) приведены здесь (не обращайте внимания, ниже более новые):

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\#*. Прочитайте, как работает кодек Intel HDA, и отладьте его.

Я рекомендую отключить Pulseaudio. hda-verbиз alsa-toolsпакета (по крайней мере, так он называется в Debian), это также может помочь.

Вы можете поискать в Google спецификации старых кодеков, чтобы понять, как они работают.

Связанный контент