Hi, I'm writing a device driver for a spectrometer that can be connected to the computer via usb. It has one bulk in endpoint and one bulk out endpoint, so I thought I could get away with using the scanner driver and not doing any kernel-space programming.
It seems to work... a bit. At some point the usb driver crashes horribly and the device doesn't work anymore at all. It says many times in the kernel log: host/uhci.c: ec00: host controller halted. very bad I sniffed the usb traffic on Windows, and I haven't seen an error in the protocol at all. When trying to reproduce the same traffic on GNU/Linux, it doesn't work. I'm not just guessing what to send, the factory send me information about the protocol and I'm following that. The protocol says they're just using the bulk endpoints to transfer the data, so I shouldn't need to do any weird things. I looked at the usb code to find the error, but I don't really know how usb works internally and I couldn't easily figure that out. The source pretty much assumes this to be public information, so I'm hoping someone reading this list can easily find the problem. Thanks, Bas Wijnen System information: I'm using a self-compiled 2.4.21 kernel. The parts from .config usb section that are set are: CONFIG_USB=y CONFIG_USB_DEVICEFS=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_UHCI_ALT=y CONFIG_USB_STORAGE=y CONFIG_USB_HID=y CONFIG_USB_HIDINPUT=y CONFIG_USB_SCANNER=m As you can see I have support for some other devices, but I haven't plugged them in while testing this. /proc/cpuinfo: processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium(R) 4 CPU 2.53GHz stepping : 7 cpu MHz : 2533.276 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm bogomips : 5059.37 -- /** mastermind. input 4 numbers 0-5. output <right>.<in the right place> **/ main(){int c[4] ,x=3 ,l=getpid() ,i;; for( srand(l);c[ x]=- rand ()%6 ,x-- ;);; for( ;44> x;){ char a[9] ,*p= "%.1f\n", b[9];x=i=0; gets(a);for (l=4 ;l-- ;)x+=-(a[l] -=48)== (b[l ]=c[ l]); ;for (l=0;16 >i;l =++i %4)x +=(b[i/4]+ a[l] ?0:( a[l]=b[i/4] =10)) ;printf(p,x *.1) ;};} /** This signature should be viewed in a monospaced font, e.g. courier. **/ ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel