> Thanks very much for releasing this. Can you tell me what sort of transfer
> speeds you have been achieving? I tried it on my UHCI laptop and only
> got about 30KB/s, which is only three times faster than the serial interface.
> Funnily enough the emptool reported the first 20% going almost
> instantaneously and then the upload slowing down.

You should expect to get about 10 times that data rate. I've only tested it on an OHCI controller so far - I'll have to grab an empeg and try it on my home computer (UHCI based). Creating the file is counted as the first 20% of the upload, and isn't that bad an estimate when the USB transfer goes at the right speed.

> Additionally, I can't try to run PPP over this, it would be nice if you could
> supply us with a PPP kernel again, or even better, put PPP in all the
> development kernels.

This is true. I'll see what everyone suggests towards this.

> Would it not perhaps be better to make the interface look more like an ACM
> device and supply any required modifications to the standard linux acm
> device driver?

It's funny you should say this, because empeg-car.c IS basically acm.c :)
I've just removed all the control endpoint stuff (which doesn't exist) and make the buffers a lot larger, and put the right detection code in. I thought it would be better supplied externally rather than a patch to the kernel.

Out of interest, if you do a "time dd if=/dev/zero of=/dev/empeg-car bs=1048576 count=1" on the PC, and a "cat /dev/usb0 >/dev/null" on the empeg (do this first!), how fast does it transfer the 1MB? If this is also about 30-50KB/sec, then something's wrong with the UHCI layer.

Problems I know about are:

- cat'ing (or dd'ing) over about 3MB of data will make the PC's usb driver stop working. rmmod, insmod empeg-car will restart it. Looking at linux-kernel mailing list, some people are experiencing this with ACM too.

- doing an "echo hello >/dev/empeg-car" will work once, then the usb driver stops working. It appears there's something odd happening when the device is closed before the USB blocks are actually submitted (1ms later). I bet this also happens with ACM.

It is, basically, exactly the same as an ACM driver, but with all the ioctl's for modem lines removed. I suppose I could put them back in as dummy functions.


- John.

(The above may not represent the views of empeg :)