Tilman Schmidt
2005-11-29 00:24:46 UTC
Hello all,
I'd like some advice in getting a Siemens M34 USB DECT adapter to work
with Linux. This device announces itself (or, more precisely, four out
of its eight interfaces) as "Communications Class, Abstract Control
Model Subclass, V.25ter Protocol", but deviates sufficiently from the
standard that cdc-acm.c v0.24 refuses to claim it. The vendor (Siemens)
flatly refused to share any information about the device, but I'd really
like to get it to work anyway, because (a) the hardware is damn cute,
(b) users of our Siemens Gigaset 307x driver have been asking for it,
and (c) just to show them. ;-)
Leaving aside the "firmware update" and "audio" interfaces, I find
myself in front of four (4) CDC ACM interfaces, whose descriptors
(output of lsusb -vv attached) all look somewhat odd to me:
- Three of these interfaces (#0, #2 and #3) claim to be their own master
and slave at the same time (ie. they carry a union descriptor with both
bMasterInterface and bSlaveInterface equal to their own interface
number), while the fourth (#4), even more strangely, claims the firmware
update interface (#1) as its master and the first ACM device (#0) as its
slave.
- Two of them (#0 and #4) have only a notification endpoint, while the
other two (#2 and #3) include a pair of bulk endpoints and so just might
be able to support data connections.
I managed to hack cdc-acm.c so that it would at least accept the latter
two as modem devices. (Patch attached. It seems that cdc-acm.c was sort
of prepared for something like that already.) But during initialization
try to send some AT commands to the device I never get any reply.
Am I on the right track at all or have I got it all completely wrong?
Do my changes to cdc-acm.c make any sense?
Thanks in advance for any hints.
Tilman
I'd like some advice in getting a Siemens M34 USB DECT adapter to work
with Linux. This device announces itself (or, more precisely, four out
of its eight interfaces) as "Communications Class, Abstract Control
Model Subclass, V.25ter Protocol", but deviates sufficiently from the
standard that cdc-acm.c v0.24 refuses to claim it. The vendor (Siemens)
flatly refused to share any information about the device, but I'd really
like to get it to work anyway, because (a) the hardware is damn cute,
(b) users of our Siemens Gigaset 307x driver have been asking for it,
and (c) just to show them. ;-)
Leaving aside the "firmware update" and "audio" interfaces, I find
myself in front of four (4) CDC ACM interfaces, whose descriptors
(output of lsusb -vv attached) all look somewhat odd to me:
- Three of these interfaces (#0, #2 and #3) claim to be their own master
and slave at the same time (ie. they carry a union descriptor with both
bMasterInterface and bSlaveInterface equal to their own interface
number), while the fourth (#4), even more strangely, claims the firmware
update interface (#1) as its master and the first ACM device (#0) as its
slave.
- Two of them (#0 and #4) have only a notification endpoint, while the
other two (#2 and #3) include a pair of bulk endpoints and so just might
be able to support data connections.
I managed to hack cdc-acm.c so that it would at least accept the latter
two as modem devices. (Patch attached. It seems that cdc-acm.c was sort
of prepared for something like that already.) But during initialization
Nov 28 09:07:43 linux kernel: drivers/usb/class/cdc-acm.c: interfaces are valid
Nov 28 09:07:43 linux kernel: cdc_acm 1-2:1.2: ttyACM0: USB ACM device
Nov 28 09:07:43 linux kernel: drivers/usb/class/cdc-acm.c: acm_control_msg: rq: 0x22 val: 0x0 len: 0x0 result: 0
Nov 28 09:07:49 linux kernel: drivers/usb/class/cdc-acm.c: acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: -110
and when I open the corresponding device /dev/ttyACM0 with minicom andNov 28 09:07:43 linux kernel: cdc_acm 1-2:1.2: ttyACM0: USB ACM device
Nov 28 09:07:43 linux kernel: drivers/usb/class/cdc-acm.c: acm_control_msg: rq: 0x22 val: 0x0 len: 0x0 result: 0
Nov 28 09:07:49 linux kernel: drivers/usb/class/cdc-acm.c: acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: -110
try to send some AT commands to the device I never get any reply.
Am I on the right track at all or have I got it all completely wrong?
Do my changes to cdc-acm.c make any sense?
Thanks in advance for any hints.
Tilman
--
Tilman Schmidt E-Mail: ***@imap.cc
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Ungeöffnet mindestens haltbar bis: (siehe Rückseite)
Tilman Schmidt E-Mail: ***@imap.cc
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Ungeöffnet mindestens haltbar bis: (siehe Rückseite)