Linux: WM8753-Treiber ist nicht für den Pi . gebaut

Erstellt am 27. Jan. 2016  ·  6Kommentare  ·  Quelle: raspberrypi/linux

Ich versuche, den WM8753-Soundchip dazu zu bringen, mit dem Pi über i2c zu arbeiten, kann aber den WM8753 nicht dazu bringen, über den i2c-Bus zu reagieren, obwohl er unter der Adresse registriert ist. Ich wurde hierher verwiesen, um den WM8753-Treiber in den Kernel aufzunehmen. Können Sie mir helfen?

Hilfreichster Kommentar

Haben Sie dann versucht, einen WM8753 an Windows anzuschließen? Es würde mich sehr wundern, wenn es irgendwelche Treiber gibt und I2S- und I2C-Schnittstellen auf PCs sowieso nicht üblich sind - USB, PCIe oder Firewire werden bevorzugt und viel einfacher zu handhaben. Mit Ausnahme von USB sind diese Schnittstellen bei SBCs weniger verbreitet.

Das Hinzufügen von Modulen erhöht die Größe der Kernel-Distribution für alle, und einige Module haben auch eine Leistungseinbuße. Aus diesem Grund gibt es eine allgemeine Aufforderung, zu beweisen, dass etwas funktioniert, bevor das Modul standardmäßig erstellt wird. Es stehen Ihnen vollständige Anweisungen zur Verfügung, damit Sie Ihren eigenen Kernel mit einer modifizierten Konfiguration erstellen können. Sie sind also nicht darauf angewiesen, dass er im Standard-Build enthalten ist.

Übrigens: Hatten Sie https://www.cirrus.com/en/products/eol/detail/EOL421.html bemerkt?

WM8753
EOL-Datum: 31.07.2017

Ein neues Produkt auf etwas aufzubauen, das in weniger als einem Jahr zum EOL wird, ist vielleicht kein so großartiger Plan. Ich habe nicht mit den WM8750 und WM8758 verglichen, die sie als Ersatz anbieten.

Alle 6 Kommentare

@KevinStartup wurde Ihr Problem gelöst? Schließen Sie in diesem Fall bitte dieses Problem. Danke.

Wir haben einen benutzerdefinierten i2c/i2s-Treiber entwickelt, um diesen Chip zu unterstützen. Es funktioniert irgendwie, braucht aber mehr Aufmerksamkeit. Wie Sie sehen können, habe ich von dieser Seite absolut keine Hilfe erhalten!

@KevinStartup Was genau CONFIG_SND_SOC_WM8753=m soll den RPi-Standardkonfigurationen hinzugefügt werden, damit der Codec-Treiber als Modul erstellt wird?

Wenn Sie Hilfe mit dem ASoC-Maschinentreiber benötigen, zeigen Sie uns den Code, den Sie bereits haben, der "irgendwie funktioniert", und sagen Sie uns, was nicht wirklich funktioniert und die Leute können Vorschläge oder Hilfe anbieten.

@DigitalDreamtime
Ich schlage vor, dass alle CODECs, die tatsächlich im System enthalten sind, in den Kernel geladen und konfiguriert werden können. Es gibt CODECs für den wm8753 sowie viele andere Soundchips, aber es ist einiges an Arbeit erforderlich, um diese innerhalb des Unix-Kernels mit ASoC und ALSA zum Laufen zu bringen. Wir haben tatsächlich eine andere Firma beauftragt, einen Loader zusammenzubasteln und den Treiber als Modul innerhalb des Kernels so zu konfigurieren, dass er geladen werden kann. Derzeit funktioniert es, aber es fällt um, wenn ALSA im "Memory Mapped"-Modus verwendet wird, den unsere Soundsoftware verwendet, daher ist noch mehr Arbeit erforderlich. Die Details sind komplex und gehen über meine eigenen Fähigkeiten hinaus. Ich kann den Code, den wir hier verwenden, posten, wenn jemand interessiert ist, aber um ihn realistisch zu testen und damit zu arbeiten, benötigen Sie einen Pi, der über i2c mit einem wm8753-Chip verbunden ist.
Ich denke, mein allgemeiner Vorschlag hier ist, zu versuchen, viel mehr Soundchip-Unterstützung in den Pi zu bekommen. Es verfügt über die verfügbaren Codecs, aber es ist schwierig, sie zum Laufen zu bringen. Dies ist ein Punkt, an dem meiner Meinung nach der Pi besser entwickelt werden könnte. Windows unterstützt so ziemlich jede Soundkarte, die Sie sich heutzutage vorstellen können, aber die Hardwareunterstützung für den Pi ist begrenzt und komplex. Ich denke nur, es wäre schön, zu einem einfacheren System zu wechseln, um den Pi in verschiedene Audio- und Videogeräte zu integrieren. Wir haben auch einen benutzerdefinierten LCD-Bildschirm, der mit unserem Pi funktioniert, und das war knifflig, aber zumindest einfacher zu konfigurieren, da nur der Gerätebaum geändert werden muss und ein paar Zeilen in der config.txt.
Aus Benutzersicht scheint die Hälfte der Arbeit geleistet worden zu sein, um eine breite Palette von Soundchips und Displays zu unterstützen, aber die endgültige Benutzerkonfiguration ist sehr knifflig und erfordert Fachwissen. Ich persönlich denke nur, dass es ein Bereich ist, der verbessert werden könnte.
Wenn jemand den wm8753-Entwicklungscode haben möchte und ihn sich ansehen möchte, lassen Sie es mich bitte wissen und ich kann ihn posten.
Cheerz
Kevin

Haben Sie dann versucht, einen WM8753 an Windows anzuschließen? Es würde mich sehr wundern, wenn es irgendwelche Treiber gibt und I2S- und I2C-Schnittstellen auf PCs sowieso nicht üblich sind - USB, PCIe oder Firewire werden bevorzugt und viel einfacher zu handhaben. Mit Ausnahme von USB sind diese Schnittstellen bei SBCs weniger verbreitet.

Das Hinzufügen von Modulen erhöht die Größe der Kernel-Distribution für alle, und einige Module haben auch eine Leistungseinbuße. Aus diesem Grund gibt es eine allgemeine Aufforderung, zu beweisen, dass etwas funktioniert, bevor das Modul standardmäßig erstellt wird. Es stehen Ihnen vollständige Anweisungen zur Verfügung, damit Sie Ihren eigenen Kernel mit einer modifizierten Konfiguration erstellen können. Sie sind also nicht darauf angewiesen, dass er im Standard-Build enthalten ist.

Übrigens: Hatten Sie https://www.cirrus.com/en/products/eol/detail/EOL421.html bemerkt?

WM8753
EOL-Datum: 31.07.2017

Ein neues Produkt auf etwas aufzubauen, das in weniger als einem Jahr zum EOL wird, ist vielleicht kein so großartiger Plan. Ich habe nicht mit den WM8750 und WM8758 verglichen, die sie als Ersatz anbieten.

@6by9
Danke für den EOL-Link, das ist sehr nützlich, den habe ich an diejenigen weitergeleitet, die sich für diesen Chip entschieden haben. Es wird hauptsächlich für die Abwärtskompatibilität mit unserer Software verwendet, um uns das Umcodieren zu ersparen, da wir viel Audio-Ein- und -Ausgabe von diesem Chip verwenden, der alle in unsere PCB- und Software-Anwendung codiert ist würde es weiter verwenden, anstatt die PCBs und die Anwendungssoftware neu zu ordnen (nicht meine Entscheidung und fürs Protokoll, ich war dagegen, aber das ist eine andere Geschichte)

Ich stimme zu, ich denke auch, dass USB der richtige Weg ist und ich akzeptiere Ihren Punkt, dass der wm8753 wahrscheinlich nicht auf einem PC funktioniert und die meisten anderen Dinge über i2c auch nicht funktionieren! Wir haben dies zu einem hohen Preis getan und die Zeit wird zeigen, ob es uns Arbeit bei der endgültigen PCB- und Anwendungsentwicklung erspart, aber es sieht so aus, als wäre es an der Zeit, eine Menge WM8753s für die Kassen aufzukaufen!

Wir haben uns überlegt, auf einen der neueren Chips umzusteigen, insbesondere auf den auf der Audioplatine (WM5102) geladenen Cirrus Logic-Chip, aber leider ist der Chip zu klein, um von unseren Fertigungsmaschinen eingesetzt zu werden, also mussten wir uns für den älteren entscheiden. Das war wirklich schade, da Cirrus die ganze Arbeit geleistet hat, um es auch auf dem Pi zu konfigurieren.

Ich denke, Sie haben Recht, wir können nicht erwarten, dass wir jede vorhandene Hardware unterstützen und der Mechanismus ist da, um es zum Laufen zu bringen - es ist nur wirklich sehr schwer! Es war sowieso zu schwer für mich und wir mussten jemanden mit einem größeren Gehirn dazu bringen, es zu versuchen.

Danke fürs Mitmachen, es war zumindest nett, eine Antwort zu bekommen. Ich werde diesen Thread schließen, um für Rufio aufzuräumen :)

Gute Nacht
Kevin

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen