Hi,

product i'm talking about:
http://www.devolo.com/co_EN/produkte/dlan/mldlanduo.html

Introduction:

Due to some cabeling constrains, i decided connecting some clients over
powerline communication (PLC) to my network would be the solution to my
problems. Additional constrains (-EOUTOFSLOTS) made the above mentioned
product quite interesting, because you can connect it over USB to your
PC. After i found out they offer a Linux driver, i was convinced.
On the same evening i downloaded the driver, took a look at it, was not
so convinced, and hacked up my own driver from scratch in 200 lines,
thanks to the usbnet framework (even before i own the device...).
Next day i bought a pair of those.

Problem description (or why i write this email):

1) device claims to be cdc-ether, but seems to be non conformant
After i connected one of those devices to my linux box (2.6.19 series,
yes, i know, i should update for such experiments, need to forward port
some patches, -ENOTIME), the cdc-ether driver got loaded, only to
directly bail out:
> usb 1-1: new full speed USB device using uhci_hcd and address 6
> usb 1-1: configuration #1 chosen from 1 choice
> usb 1-1: bad CDC descriptors
> usbcore: registered new driver cdc_ether

after some debugging, i found out that the following test in
cdc_ether.c::usbnet_generic_cdc_bind()@96 seems to fail:
if (info->header->bLength != sizeof *info->header)

Another printk revealed, the length seems to be really wrong:
bLength: 18, sizeof header: 5

changing the comparison to:
if (info->header->bLength < sizeof *info->header)

lead to:
cdc_ether 1-1:1.0: missing cdc union ether descriptor
usb 1-1: bad CDC descriptors

The bLength bytes at *buf are (in hex):
12 24 00 10 01 0D 24 0F 03 00 00 00 01 EA 05 80

>From here i don't know any further. So the questions are:
Any further hints on debugging? Where to look next?
Could this device maybe used with cdc-ether?
(lsusb -v attached)

2) My own driver, "contributing back"
Believe it or not, my own driver worked "out of the box", after i moved
it into place:
> usb 1-1: new full speed USB device using uhci_hcd and address 8
> usb 1-1: configuration #1 chosen from 1 choice
> usb0: register 'devolo_dLan_USB' at usb-0000:00:07.2-1, Devolo dLan USB-NET 
> powerline adapter, My:MA:CA:dd:re:ss
> usbcore: registered new driver devolo_dLan_USB
> usbcore: registered new driver cdc_ether

and:
usb0      Link encap:Ethernet  HWaddr My:MA:CA:dd:re:ss
          inet addr:192.168.2.254  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:52652 errors:0 dropped:0 overruns:0 frame:0
          TX packets:93866 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4087973 (3.8 Mb)  TX bytes:70982661 (67.6 Mb)

RX & TX from dhcp over icmp to tcp/udp seem to work (even with the
original win driver on the other side of the PLC-bridge).

I would love to contribute this driver, but i'm not sure on the legal
side of this: I used two informations gained by reading the original
drivers source code.

module license looks like:
MODULE_LICENSE ("devolo AG");

but i could not find any license.

The head-region of the driver file looks a little sparse on the license
side, only a copyright and the restriction, to only use it with Devolo
devices.
(the userspace tool (in source form) to configure the encryption
(without any usage of the kernel-driver, guessing from the driver side)
contains a little bit more license-alike within the "header" of the
files, but would this also apply to the kernel driver (as in "this is
the mentioned license")?)

Maybe someone could give me an advise on this?
Should i contact Devolo and ask, what they think of a GPL'ed driver
using the usbnet framework?

Greetings
        Jan

-- 
"...by all means, do not use a hammer."
(taken from an IBM documentation for technicians, approx. 1920)
Bus 001 Device 008: ID 09e1:5121 Intellon Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            2 Communications
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        32
  idVendor           0x09e1 Intellon Corp.
  idProduct          0x5121
  bcdDevice            1.00
  iManufacturer           1 Intellon
  iProduct                2 USB-Powerline Bridge
  iSerial                 3 MyMACAddress
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           57
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x40
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass         2 Communications
      bInterfaceSubClass      6 Ethernet Networking
      bInterfaceProtocol      0
      iInterface              0
      invalid:  12 24 00 10 01 0d 24 0f 03 00 00 00 01 ea 05 80 00 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               2

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to