Sziasztok!
Van egy olyan problémám, hogy kernel modult kellene csináljak egy soros porton keresztül kommunikáló eszközhöz. Prototípusban sikerült már összehoznom a kommunikációt (egyszerű kérdés-válasz 115200 baud-on), de most ezt átültetném egy kernel modulba. Meg is csináltam hozzá, ami kell, csak ott akadtam el, hogy hogyan tudok hozzáférni az eszközhöz!
Szóval a problémám az, hogy olyan header-ekhez nem tudok hozzáférni fordításkor, mint pl a termios.h! Erre pedig szükségem lenne, mert valahogy be kell állítsam a paramétereket a porthoz!
Nem nagyon találtam rá sehol értelmes leírást a neten, hogy hogy is lehet soros portot elérni 2.6-os kernel modulból!
Akinek van tapasztalata/ötelete, sz légyzi ossza meg velem!
Köszönöm előre is a segítséget!
Üdv:
denx
- 1470 megtekintés
Hozzászólások
Biztos kell neked ehhez kernel driver ?
Miért ?
http://www.kernel.org/pub/linux/kernel/people/gregkh/ddk/
- A hozzászóláshoz be kell jelentkezni
Szerintem kell! Ugyanis ioctl utasításokkal fog kommunikálni (a már félkész) program vele! Szóval csak az lenne a kérdés, hogy hogyan fogok tudni írni/olvasi soros portot kernel modulból? Jah és hogyan tudom inicializálni a portot?
- A hozzászóláshoz be kell jelentkezni
Még mindig nem mondtál olyat, ami miatt, kernelben kéne lennie, miért jó neked, hogy saját ioctl -eket használsz ?
- A hozzászóláshoz be kell jelentkezni
Mert 2 fajta hardver közül kell az egyikkel kommunikálni a kliens programnak. Az egyiknek van stabilan működő kernel drivere, ami néhány char device-t csinál és ezen keresztül megy a vezérlés. A soros portot használó eszköznek is ugyanezt az interfészt kellene nyújtania.
Tényleg ilyen bonyolult a soros porton keresztül üzengetni kernel modulból?
Ezeket a függvényeket nem találja fordítás közben:
tcflush
tcgetattr
tcsetattr
open
close
read
write
Köszi:
denx
- A hozzászóláshoz be kell jelentkezni
Értem.
Utánna nézek, úgy is kernel forrás tanulmányozása van terítéken. :)
szerk:
<linux/serio.h>
open serio_open
close serio_close
read serio_read
write serio_write
<linux/serial.h>
BAUND rate, control vonalak
- A hozzászóláshoz be kell jelentkezni
Egy otlet: nezd meg a ppp driver forra'sa't. Az hasznalja a soros portot, bar a fene se tudja milyen szinten. Lehet hogy userspace program (pppd) nyitja meg a /dev/ttyS0-t, beallitja (ioctl), majd a kerneldriver-nek csak a file handle-t adja a't. Egyebkent mashol (asszem az nbd-nel meg a loopback blkdev-nel) ezt az utat ja'rja'k. So"t, az is lehet hogy erdemes igy csinalnod. De nincs sok tapasztalatom ebben, szoval tenyleg csak egy otlet, ha'tha.
- A hozzászóláshoz be kell jelentkezni