サポートされていないサウンド カードを ALSA で動作させるにはどうすればよいですか?

サポートされていないサウンド カードを ALSA で動作させるにはどうすればよいですか?

私のLenovo Legion 7iノートパソコンのスピーカーから音が出ません。alsamixerによると、リアルテック ALC287

私は、Ubuntu 16.04、18.04、20.04(デフォルトおよびメインライン カーネル 5.7.x および 5.8.x)や Manjaro(5.6.x、5.7.x、5.8.x カーネル)など、さまざまな Linux ディストリビューションとカーネルの組み合わせを試しました。

いずれの場合も、alsamixerの自動ミュートを無効にし、すべての音量レベルを最大に設定しました。いずれの場合も、スピーカーから音が出ません(スピーカーテストの実行、音楽の再生など)。午前ヘッドフォンと HDMI 経由でサウンドを取得できます (ただし、HDMI は別のサウンド カード経由であると思います)。

また、pavucontrol を見ると、何らかのサウンド アクティビティが発生していることがわかります (サウンドが再生されていることを示す赤みがかったオレンジ色のバー) が、スピーカーから実際のサウンドは生成されません。

私の alsa-info.sh の結果 (5.6.15 の 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\#*。Intel HDA コーデックの動作方法を調べてデバッグしてください。

hda-verbパッケージのPulseaudio を無効にすることをお勧めしますalsa-tools(少なくとも Debian ではそのように呼ばれています)。これも役立つ可能性があります。

古いコーデックのデータシートを Google で検索すると、その動作を理解できます。

関連情報