Here are just a few updates from things that I tried with my Motorola
V120c phone over USB this past weekend.
I can get the usbserial driver to talk to it by specifying the
vendor and product. It looks like this:
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=02(comm.) Sub=02 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=22b8 ProdID=0005 Rev= 0.01
S: Manufacturer=Motorola Inc.
S: Product=Motorola Phone
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr= 20mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none)
E: Ad=88(I) Atr=03(Int.) MxPS= 16 Ivl= 10ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=serial
E: Ad=01(O) Atr=02(Bulk) MxPS= 16 Ivl= 0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 16 Ivl= 0ms
Notice the data line has the serial driver, while comm has none.
Because of the two interfaces the phone presents I thought the acm
driver might not be a bad thing to try. Unfortunately it won't
recognize it, but I found that modifying the source acm.c can fix this.
static struct usb_device_id acm_ids[] = {
/*{ USB_DEVICE_INFO(USB_CLASS_COMM, 0, 0) },*//* LHJ changed */
{ USB_DEVICE_INFO(USB_CLASS_COMM, 2, 0) },
{ }
};
If you compile the driver with
gcc -D__KERNEL__ -I/tmp/linux/include -Wall -Wstrict-prototypes \
-Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common \
-pipe -mpreferred-stack-boundary=2 -march=i586 -DMODULE \
-DKBUILD_BASENAME=acm -c -o acm.o acm.c
it will recognize the phone and you see this:
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=02(comm.) Sub=02 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=22b8 ProdID=0005 Rev= 0.01
S: Manufacturer=Motorola Inc.
S: Product=Motorola Phone
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr= 20mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
E: Ad=88(I) Atr=03(Int.) MxPS= 16 Ivl= 10ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm
E: Ad=01(O) Atr=02(Bulk) MxPS= 16 Ivl= 0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 16 Ivl= 0ms
So there are two ways to communicate to the driver. I have been using
"tee logfile < /dev/ttyXXX0" and "cat >/dev/ttyXXX0" together to
test the phone. Here XXX is USB or ACM depending on the driver.
The most interesting behavior I saw was when I set the phone to answer
the next call as a data call and then called it with minicom from my
desktop computer on a landline. The phone will send RING notices and
if you respond with ATA it will pick up and both ends report CONNECT.
Unfortunately, I couldn't yet get any data to exchange past this point.
I have had no luck telling the phone to dial out with AT commands. It
always reports NO CARRIER immediately.
Anyone with ideas, let me know what you think. I don't have software
for this phone on Windows and I have done nothing with usb or device
drivers before.
Best,
Leif
On Fri, 1 Mar 2002, Nick Papadonis wrote:
> I have a Motorola v60c with USB cable. I am also trying to develop a
> driver to exchange data. What have you found out about the protocol
> over USB?
>
> Do you have any past posts or a website with some information? I was
> going to use usbsnoop and try reverse engineering this.
>
> Any insight appreciated.
>
> - Nick
>
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users