Ich möchte Treiber in C in Linux os codieren, obwohl ich denke, dass es sehr schwierig ist. Kann ich Hinweise dazu bekommen, wie ich anfangen soll oder welche Bücher ich folgen soll? Treiber können von meinem USB-Anschluss zur Grafikkarte sein !!
Ich weiß, wo ich nach Büchern suchen kann, ich möchte wissen, mit welchem Grundwissen ich anfangen soll. Benötige ich Hardware-Kenntnisse und welche speziellen Bücher sind gut für Anfänger wie mich?
Beginnen Sie mit Linux-Gerätetreiber von Rubini und Corbet, veröffentlicht von O'Reilly.
Es ist auch als kostenloser PDF-Download verfügbar.
Mehrere Texte:
Bevor Sie mit der Entwicklung von Treibern beginnen, sollten Sie zunächst außergewöhnliche C-Kenntnisse und wahrscheinlich etwas Linux-Kernel-Know-how erwerben. Das Entwickeln von Treibern ist nicht trivial und könnte Sie abschrecken, wenn Sie es nicht gewohnt sind, auf niedriger Ebene zu programmieren.
Ich würde Die Programmiersprache C empfehlen, wenn Sie meiner Meinung nach nicht an C gewöhnt sind , der Primer auf C, wenn Sie etwas Programmierhintergrund haben.
Treiber unterscheiden sich je nach Gerät stark in ihrer Komplexität. USB-Treiber sind auf der einfachen Seite des Spektrums; GPU-Treiber sind massiv komplex und selbst die Autoren dieser Treiber wissen normalerweise nicht alles, was sie tun. Meine Empfehlung wäre, sich auf Treiber für Hardware zu konzentrieren, die Ihnen persönlich am Herzen liegen, anstatt zu versuchen, ein Alleskönner zu sein. es wird auf lange Sicht einfacher sein.
Die Antworten aller anderen auf Dokumentationsquellen und verschiedene Dinge, die Sie lesen können, sind genau richtig und Sie sollten wirklich eine davon akzeptieren.
Viele der komplexeren Treibergemeinschaften haben ihre eigenen domänenspezifischen Informationen. Wenn Sie einen GPU-Treiber schreiben möchten, haben die DRI / DRM- und Mesa-Communities eigene Wikis und Mailinglisten, die Ihnen sehr helfen, sowie ihre eigene Dokumentation. Ссылка ist ein guter Startplatz, ebenso wie Ссылка .
Hoffe, das hilft!
Sehen Sie sich die Quelltexte der aktuellen Treiber an. Ich habe meinen USB-Rndis-Treiber geschrieben, indem ich nur die Kommentare über den Codes gelesen habe.
Holen Sie sich die Kernelquelle und schauen Sie sich das Verzeichnis / drivers an. USB-Treiber befinden sich im USB-Verzeichnis, USB-Treiber zum Netzwerk sind jedoch in / net / usb enthalten.
Sie können viel lernen, indem Sie die Kommentare lesen.
Tags und Links c linux-device-driver driver