usb hotplug usb-serial und remove device
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
Teilnehmer (3)
-
Andre Landwehr
-
Jan 'RedBully' Seiffert
-
Michael Westermann