CDC protocol over USB 2.0

Peter Schwenke peter at bluetoad.com.au
Thu Jun 23 23:02:49 UTC 2011


Hello Geoffrey,

On 23/06/11 15:39, Geoffrey wrote:
> I wish to upload and download BASIC programs between Ubuntu's Terminal
> and another device over a USB serial interface. I'm advised that there
> is native support for the CDC(Communications Device Class) protocol
> implementation required, which, for Linux, is called the 'cdc-acm
> driver'. 

I'll preface this answer by saying I haven't used cdc-acm but have a
quick look into it.  Your question piqued my interest because I battled
with the USB->Serial adapters a while back (some of them just didn't work)


> Could someone tell me where to find this driver, how to install and how
> the Terminal may be used to exchange program information.
> Note; I have yet to connect the device (it's still being constructed)
> and so I have not tried a hardware driver search.
> Geoffrey
> 
> 

It appears that the module is supplied with the standard Lucid kernel.

$ find /lib/modules/$(uname -r) -name "cdc?acm*"
/lib/modules/2.6.32-32-generic/kernel/drivers/usb/class/cdc-acm.ko

and there is documentation at

http://www.kernel.org/doc/Documentation/usb/gadget_serial.txt

I tried loading the module as suggested in that document and it loaded
the cdc-acm module

$ sudo  modprobe g_serial
$ lsmod | head
Module                  Size  Used by
cdc_acm                18018  0
g_serial               22434  0
dummy_hcd              17058  1 g_serial

and created the device

$ ls -l /dev/ttyGS0
crw-rw---- 1 root dialout 251, 0 2011-06-24 08:08 /dev/ttyGS0

Then you'd need to use something like minicom or some other program to
speak the appropriate protocol over that device with the other end on
the device you are constructing.

Unfortunately, I don't seem to have a suitable cable to test this out.

-- 
                                                              Regards
                                                              ...Peter



More information about the ubuntu-au mailing list