Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

3G modem WCDMA Motorola didn't work on Linuxmint13 with kernel 3.11 but worked on froyo-x86

Status
Not open for further replies.

ady2012

MIS
Jun 6, 2010
108
US


Bus 002 Device 002: ID 22b8:2d01 Motorola PCS
usb 2-1: Product: WCDMA Technologies
usb 2-1: Manufacturer: Motorola, Incorporated.

Anyone knows to use Motorola PCS driver from froyo-x86 source code to standard linux kernel?
Froyo-x86 got Motorola PCS WCMA and worked fine.
 
I got moto_modem.c from froyo-x86 source code below here.
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/tty.h>
#include <linux/module.h>
#include <linux/usb.h>
#include <linux/usb/serial.h>

static const struct usb_device_id id_table[] = {
{ USB_DEVICE(0x05c6, 0x3197) }, /* unknown Motorola phone */
{ USB_DEVICE(0x0c44, 0x0022) }, /* unknown Mororola phone */
{ USB_DEVICE(0x22b8, 0x2a64) }, /* Motorola KRZR K1m */
{ USB_DEVICE(0x22b8, 0x2c64) }, /* Motorola V950 phone */
{ },
};
MODULE_DEVICE_TABLE(usb, id_table);

static struct usb_driver moto_driver = {
.name = "moto-modem",
.probe = usb_serial_probe,
.disconnect = usb_serial_disconnect,
.id_table = id_table,
.no_dynamic_id = 1,
};

static struct usb_serial_driver moto_device = {
.driver = {
.owner = THIS_MODULE,
.name = "moto-modem",
},
.id_table = id_table,
.num_ports = 1,
};

static int __init moto_init(void)
{
int retval;

retval = usb_serial_register(&moto_device);
if (retval)
return retval;
retval = usb_register(&moto_driver);
if (retval)
usb_serial_deregister(&moto_device);
return retval;
}

static void __exit moto_exit(void)
{
usb_deregister(&moto_driver);
usb_serial_deregister(&moto_device);
}

module_init(moto_init);
module_exit(moto_exit);
MODULE_LICENSE("GPL");

How to build this moto_modem.c driver separately from existing standard linux kernel ?
any ideas ?

 
Finally I got it works when I can find moto_modem.ko in /lib/modules/3.xx or 2.6.xx/drivers/usb/serial/moto_modem.ko and option.ko.
I used usb_modeswitch step to work around.
And I should load 2 modules manually below here :
echo 'loading moto-modem module'
modprobe moto_modem
echo 'loading option module'
modprobe option
echo '22b8 2d01'
echo '22b8 2d01' > /sys/bus/usb-serial/drivers/moto-modem/new_id

last part of dmesg command
[ 1171.301723] usb 2-1: new full-speed USB device number 9 using uhci_hcd
[ 1171.461816] usb 2-1: New USB device found, idVendor=22b8, idProduct=2d01
[ 1171.461837] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1171.461851] usb 2-1: Product: WCDMA Technologies
[ 1171.461863] usb 2-1: Manufacturer: Motorola, Incorporated
[ 1171.466978] moto_modem 2-1:1.0: moto-modem converter detected
[ 1171.467327] usb 2-1: moto-modem converter now attached to ttyUSB0
[ 1171.470549] moto_modem 2-1:1.1: moto-modem converter detected
[ 1171.470937] usb 2-1: moto-modem converter now attached to ttyUSB1
 
Please take note. These Motorola PCS modem wont work on Centos 6.2 i386 and Centos 6.5 64 bit. after echo product id and Vendor Id didn't get /dev/ttyUSBx from dmesg
 
some kernels used generic/new_id like kernel 3.12.14 and etc
echo '22b8 2d01' > /sys/bus/usb-serial/drivers/generic/new_id
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top