Sie müssen eine Konfigurationsoption in der Kconfig-Datei des Unterverzeichnisses kernel source hinzufügen, in dem Ihr Gerätetreiber abgelegt wird. Sie müssen dem Makefile dieses Verzeichnisses auch Zeilen hinzufügen. Natürlich müssen Sie auch die Quelldateien in dieses Verzeichnis kopieren.
Da Ihr Fahrer auf der ARM-Architektur abhängt, in der Kconfig, benötigen Sie eine Möglichkeit, setzen ‚hängt von‘ wie:
config SND_ARMAACI
tristate "ARM PrimeCell PL041 AC Link support"
depends on ARM_AMBA
und Ihr Makefile wird wie folgt aussehen
obj-$(CONFIG_SND_ARMAACI) += snd-aaci.o
snd-aaci-objs := aaci.o
Wenn Sie nun make make menuconfig in Ihrer Kernel-Quellstruktur ausführen, finden Sie die Konfigurationsoption, die Sie in Kconfig eingeben, und Sie können sie auswählen, um sie in den Kernel zu kompilieren oder als Modul zu kompilieren oder überhaupt nicht zu kompilieren.
Suchen Sie nach Beispielen im Subsystemverzeichnis, für das Ihr Treiber bestimmt ist.
Vielen Dank für Ihre Antwort. Ich habe es herausgefunden und dasselbe gemacht wie du erwähnt hast. Aber jetzt gibt es ein neues Problem. Wenn ich meinen Treibercode als Modul kompiliere und ins Linux-Kernel insmod mache, kann ich sehen, dass mein Gerät unter/dev/erstellt wird. Aber wenn ich meinen Code in die Kernel-Struktur lege und den Kernel kompiliere, kann ich mein Gerät nicht unter/dev sehen. Bitte beachten Sie, dass ich class_create() und device_create() verwende, um den Geräteknoten zu erstellen. Auch habe ich meinen Code in der Kernel-Baum auf die gleiche Weise wie oben erwähnt hinzugefügt. – Ravi
Haben Sie den Treiber so eingestellt, dass er eingebaut wird? Markieren Sie den Treiber und drücken Sie "Y", so dass ein Stern wie folgt vorangestellt wird: [*] – microMolvi