usb hotplug usb-serial und remove device
Michael Westermann
michael at dvmwest.de
Mon Jul 28 14:30:17 CEST 2008
Hallo,
ich habe folgende Problematic. Ich habe ein Gerät welches an ttyUSB0
hängt via usb-serial hängt. Das ganze läuft auf debian oldstable ak
sarge und kernel 2.6.22.
In einer Schleife werden via select und read date vom Gerät geliefert.
Wenn ich das USB Gerät vom Bus abziehe und wieder dran stecke.
Bekomme ich vom select angezeigt dass daten vorhanden sind.
der read kommt dann mit 0 zurück.
while(1) {
FD_ZERO(&rfds);
FD_SET(st->fd, &rfds);
FD_SET(up->sock,&rfds);
ret = select(sel_fd, &rfds, NULL, NULL, &tv);
if (ret < 0) {
pos_trace_vlog("Select %d errno %d\n", ret , errno);
pos_trace_flush();
}
pthread_testcancel();
if (ret>0) {
if (FD_ISSET(st->fd, &rfds)) {
len = read(st->fd, (char *) buff, sizeof(buff));
if (len <= 0) {
pos_trace_vlog("read %d %d errno %d\n", len, ret , errno);
pos_trace_flush();
}
....
ergibt
read 0 1 errno 0
read 0 1 errno 0
u.s.w
der select kommt auch sofort zurück ...
Der Devive Eintrag /dev/ttyUSB0 wird erst nach dem schliessen des Filedescriptors gelöscht.
Weiss jemand wie ich im Programm sinnvollerweise erkennen kann ob ein
usb-serial device removed ist?
Gruss Michael
More information about the Linux
mailing list