[LINUX Kernel Module] Zugriff auf Serial Port

[Moepi]1

Lt. Commander
Registriert
Jan. 2002
Beiträge
1.233
Hallo,
ich hab folgendes Problem:

Es soll in /dev/ eine neue Gerätedatei angelegt werden, über die über die üblichen Syscalls (open, close, read, write) zugegriffen werden kann. Das dahinter liegende Kernelmodul soll Eingaben an diese Gerätedatei prüfen, formatieren und über die serielle Schnittstelle (/dev/ttySx) rausschicken.

Das Problem besteht nun darin, dass ich ja im Kernel Space keine User Space Funktionen aufrufen kann, z.B. die aus stdio.h. Eben diese brauche ich aber, um auf die serielle Schnittstelle zugreifen zu können. Unter "/usr/include/linux" habe ich leider nichts passendes finden können. Und beim Kompilieren fliegt natürlich prompt folgendes:

Code:
sv203_steering.c:71: warning: implicit declaration of function ‘write’
sv203_steering.c:145: warning: implicit declaration of function ‘open’
sv203_steering.c:150: warning: implicit declaration of function ‘fcntl’
sv203_steering.c:152: warning: implicit declaration of function ‘tcgetattr’
sv203_steering.c:153: warning: implicit declaration of function ‘cfsetispeed’
sv203_steering.c:154: warning: implicit declaration of function ‘cfsetospeed’
sv203_steering.module/src/sv203_steering.c:156: warning: implicit declaration of function ‘tcsetattr’
(...)

Jetzt ist meine Frage, wie kann ich vom Kernel Modul aus auf die serielle Schnittstelle zugreifen, BAUD Rate setzen und drauf schreiben bzw. davon lesen?
 
Du müsstest eigentlich direkt auf die Funktionen des Treibers der seriellen Schnittstelle zugreifen können.
Zwischen den Treibern im Kernel-Space gibts es keine Sicherheitsmechanismen mehr.
Daher verstehe ich auch nicht, warum du dir das Leben so schwer machst. Wäre nicht ein User-Space Prozess ausreichend?
 
Zurück
Oben