(不足)GNU / LinuxでZEDボードサウンドカードをサポート

(不足)GNU / LinuxでZEDボードサウンドカードをサポート

私はサウンドカードがAvnet ZEDボードに似たカスタムハードウェアで動作するように説得しようとしています。

ソースドライバの例は、zed_adau1761という大幅に変更された(通常のパッチ〜180,000行)3.14.12カーネルに基づいています。 「サウンドカード」は、1つのドライバ内で処理されず、3つの論理的な部分に分けられます。

  1. コーデックドライバ adau1761-i2c.c,
  2. ストリーミングデータ処理を担当するドライバaxi-i2s.c、
  3. 上記の2つを一緒に動作するドライバとして設定します(zed_adau1761.c)。

最初の 2 つのドライバーとは異なり、3 番目のドライバーは主流化されておらず、カーネルの Analog Devices Github フォークのうち、現在はなくなった部分のフォークにのみ存在します。

エブネットホームページによると、該当ボードはまだ販売中であるため、一部のハッカーがこれを使用している可能性がある。

私の問題は、今日のツールが約7年前のように古いカーネルで動作しないことです。古いカーネルは他の問題でいっぱいですが、古いドライバは新しいカーネルに含まれておらず、両方は機能しません。最新のカーネル。

3.ドライバは別の名前でメインラインにありますか?それとも、サウンドカードを操作するための間違った方法を試していますか?

この問題についてより多くの洞察力を持っているすべての人に感謝します!

ベストアンサー1

SoCドライバーに対する態度は長年にわたってやや変わってきた。

OF(オープンファームウェア、つまりデバイスツリーの構成)のサポートは、サウンドカードドライバの領域で再設計、改善、および拡張されました。

複数のマシンドライバ(私の質問の「接着剤」ドライバ - 3.)を書くよりも、ユニバーサルソリューションを使用する方が良いです。この場合は、「シンプルなオーディオカード」システムドライバとデバイスツリーの適切な設定です。

zed_sound {
        compatible = "simple-audio-card";
        simple-audio-card,format = "i2s";
        simple-audio-card,name = "ZED ADAU1761";
        simple-audio-card,dai-link@0 {
                format = "i2s";
                cpu {
                        sound-dai = <&axi_i2s_0>;
                };
                codec {
                        sound-dai = <&adau1761>;
                };
        };
};

このソリューションは最新のカーネルで動作します。テストには長期安定版5.10.xが使用されました。

おすすめ記事