DM6467内核linux2.6.18,多张电信3G无线网卡不能与此同时使用

DM6467内核linux2.6.18,多张电信3G无线网卡不能同时使用
同时插多张联通3G无线网卡,设备可以正常的拨号,但是如果插多张电信3G无线网卡,就会出现拨一张电信卡后,就不能再往下拨下去了,会卡住。以下是拨通了第一张卡,再连着拨第二张卡出现的卡住的情况,还请各位专家帮我看看,麻烦您们了!

下图是正常能拨号的情况:
Looking for target devices …
 No devices in target mode or class found
Looking for default devices …
 Found devices in default mode or class (1)
Accessing device 003 on bus 001 …
Getting the current device configuration …
 OK, got current device configuration (1)
Using endpoints 0x08 (out) and 0x87 (in)
Using endpoints 0x08 (out) and 0x87 (in)
Inquiring device details; driver will be detached …
Looking for active driver …
 OK, driver found ("usb-storage")
 OK, driver "usb-storage" detached

SCSI inquiry data (for identification)
————————-
  Vendor String: HUAWEI
  Model String: Mass Storage
Revision String: 2.31
————————-

USB description data (for identiusb 1-1.1: usbfs: process 907 (usb_modeswitch) did not claim interface 0 before use
fication)
————————-
Manufacturer: HUAECHNOLOGIES
  Product: HUAWEI Mobile
  Serial No.: ———————-
Setting up communication with interface 0 …
Using endpoint 0x08 for message sending …
Trying to send message 1 to endpoint 0x08 …
 OK, message successfully sent
Resetting response endpoint 0x87
Resetting message endpoint 0x08
 Error resetting endpoint: -32
usb 1-1.1: USB disconnect, address 3
-> Run lsusb to note any changes. Bye.

下图为是不能拨号的情况,卡在那里:
Looking for target devices …
 No devices in target mode or class found
Looking for default devices …
 Found devices in default mode or class (1)
Accessing device 004 on bus 001 …
Getting the current device configuration …
 OK, got current device configuration (1)
Using endpoints 0x01 (out) and 0x81 (in)
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached …
Looking for active driver …
 OK, driver found ("usb-storage")
 OK, driver "usb-storage" detached


用的是通用驱动usbserial吗?如果是的话,就在$KERNEL_SOURCE_DIR/drivers/usb/serial/generic.c这个文件中修改就可以了,即:
我们平时使用modprobe加载usbserial驱动时输入的vendor和product参数是传给usbserial_generic这个模块的。这里的调用过程是usb_serial_init()->usb_serial_general_register()。在这个函数中,在这里传入的参数:

generic_device_ids[0].idVendor = vendor; 
generic_device_ids[0].idProduct = product; 
generic_device_ids[0].match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_PRODUCT; 

我们这里需要加入我们自己设备的vendor和product,因此在这行下面,我们需要加入:

// added by xzpeter, try to support both sim4100 and lc6311 
// for sim4100 
generic_device_ids[1].idVendor = 0x0456; 
generic_device_ids[1].idProduct = 0x6532; 
generic_device_ids[1].match_flags = 
USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_PRODUCT; 
// for lc6311 
generic_device_ids[2].idVendor = 0x1AB7; 
generic_device_ids[2].idProduct = 0x6000; 
generic_device_ids[2].match_flags = 
USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_PRODUCT; 
// end here

DM6467内核linux2.6.18,多张电信3G无线网卡不能与此同时使用

相关文章:

你感兴趣的文章:

标签云: