I install the kernel 2.4.36.4, worked quite well. Already the USB port using
the HSDPA modem E226 presents an inconsistency, and that after a certain
period of time the system restarts (Reboot).

the best configuration of modules in openwrt was:

kmod-usb-core, kmod-usb-serial, kmod-usb-uhci, kmod-usb-uhci-iv, kmod-USB2,
kmod-usb-acm, kmod-usb-storage, kmod-fs-vfat, kmod - Nozomi, kmod-dpi,
kmod-mppe, kmod-dpi-synctty.

The module kmod-ohci caused an inconsistency.

Another effort was the use of driver pl2303 with compatibility with this
modem, working the same way.

People, something Idea????

diff -rc --exclude='*.o' --exclude='.*'
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/serial/pl2303.c
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/serial/pl2303.c
***
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/serial/pl2303.c2008-05-06
19:00:29.000000000 -0400
---
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/serial/pl2303.c
2008-05-12 10:16:05.000000000 -0400
***************
*** 115,120 ****
--- 115,121 ----
{ USB_DEVICE(DATAPILOT_U2_VENDOR_ID, DATAPILOT_U2_PRODUCT_ID) },
{ USB_DEVICE(BELKIN_VENDOR_ID, BELKIN_PRODUCT_ID) },
{ USB_DEVICE(ALCOR_VENDOR_ID, ALCOR_PRODUCT_ID) },
+ { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_ID) },
{ USB_DEVICE(WS002IN_VENDOR_ID, WS002IN_PRODUCT_ID) },
{ USB_DEVICE(COREGA_VENDOR_ID, COREGA_PRODUCT_ID) },
{ USB_DEVICE(HL340_VENDOR_ID, HL340_PRODUCT_ID) },
diff -rc --exclude='*.o' --exclude='.*'
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/serial/pl2303.h
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/serial/pl2303.h
***
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/serial/pl2303.h2008-05-06
19:00:29.000000000 -0400
---
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/serial/pl2303.h
2008-05-12 10:16:47.000000000 -0400
***************
*** 112,114 ****
--- 112,118 ----
/* Y.C. Cable U.S.A., Inc - USB to RS-232 */
#define YCCABLE_VENDOR_ID 0x05ad
#define YCCABLE_PRODUCT_ID 0x0fba
+
+ /* Huawei E626 UMTS/HSDPA card (ID: 12d1:1001) --fmay*/
+ #define HUAWEI_VENDOR_ID 0x12d1
+ #define HUAWEI_PRODUCT_ID 0x1003
diff -rc --exclude='*.o' --exclude='.*'
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/serial/usbserial.c
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/serial/usbserial.c
***
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/serial/usbserial.c
2008-05-07 23:41:06.000000000 -0400
---
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/serial/usbserial.c
2008-05-12 10:17:44.000000000 -0400
***************
*** 1558,1568 ****
--- 1558,1572 ----
err("No free urbs available");
goto probe_error;
}
+ /////////////////////////FMAY HSDPA adaptation
#ifdef CONFIG_USB_SERIAL_GENERIC
buffer_size = (endpoint->wMaxPacketSize > maxSize) ? endpoint->wMaxPacketSize
: maxSize;
+ /////////////////////////FMAY HSDPA adaptation
+ buffer_size = (serial->vendor==0x12d1 && serial->product==0x1003) ? 4096 :
buffer_size;
#else
buffer_size = endpoint->wMaxPacketSize;
#endif
+ printk("KERNEL DEBUG => USBSERIAL.O buffer_size = %d", buffer_size);
port->bulk_in_endpointAddress = endpoint->bEndpointAddress;
port->bulk_in_buffer = kmalloc (buffer_size, GFP_KERNEL);
if (!port->bulk_in_buffer) {
***************
*** 1864,1869 ****
--- 1868,1877 ----
generic_device_ids[7].idVendor = 0x1410;
generic_device_ids[7].idProduct = 0x1430;
generic_device_ids[7].match_flags = USB_DEVICE_ID_MATCH_VENDOR |
USB_DEVICE_ID_MATCH_PRODUCT;
+ /* Huawei E226 *///FMAY
+ generic_device_ids[8].idVendor = 0x12d1;
+ generic_device_ids[8].idProduct = 0x1003;
+ generic_device_ids[8].match_flags = USB_DEVICE_ID_MATCH_VENDOR |
USB_DEVICE_ID_MATCH_PRODUCT;
/* register our generic driver with ourselves */
usb_serial_register (&generic_device);
#endif
diff -rc --exclude='*.o' --exclude='.*'
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/storage/initializers.c
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/storage/initializers.c
***
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/storage/initializers.c
2008-05-06 19:00:29.000000000 -0400
---
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/storage/initializers.c
2008-05-12 09:57:20.000000000 -0400
***************
*** 41,46 ****
--- 41,60 ----
#include "debug.h"
#include "transport.h"

+ /* This places the HUAWEI E226 devices in multi-port mode --fmay*/
+ int usb_stor_huawei_e226_init(struct us_data *us)
+ {
+ unsigned char data = 0x1;
+ int result;
+
+ result = usb_stor_control_msg(us, usb_sndctrlpipe(us->pusb_dev, 0),
+ USB_REQ_SET_FEATURE,
+ USB_TYPE_STANDARD | USB_RECIP_DEVICE,
+ 0x01, 0x0, &data, 0x1);
+ US_DEBUGP("usb_control_msg performing result is %d\n", result);
+ return (result ? 0 : -1);
+ }
+
/* This places the Shuttle/SCM USBSCSI bridge devices in multi-target
* mode */
int usb_stor_euscsi_init(struct us_data *us)
diff -rc --exclude='*.o' --exclude='.*'
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/storage/initializers.h
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/storage/initializers.h
***
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/storage/initializers.h
2008-05-06 19:00:29.000000000 -0400
---
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/storage/initializers.h
2008-05-12 09:29:33.000000000 -0400
***************
*** 53,55 ****
--- 53,58 ----
/* This function is required to activate all four slots on the UCR-61S2B
* flash reader */
int usb_stor_ucr61s2b_init(struct us_data *us);
+
+ /* This places the HUAWEI E226 devices in multi-port mode --fmay*/
+ int usb_stor_huawei_e226_init(struct us_data *us);
diff -rc --exclude='*.o' --exclude='.*'
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/storage/unusual_devs.h
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/storage/unusual_devs.h
***
/opt/openwrt-2.4.36.4/build_dir/toolchain-mipsel_gcc3.4.6/linux-2.4.36.4/drivers/usb/storage/unusual_devs.h
2008-05-06 19:00:29.000000000 -0400
---
/opt/openwrt-2.4.36.4/build_dir/linux-brcm-2.4/linux-2.4.36.4/drivers/usb/storage/unusual_devs.h
2008-05-12 09:21:44.000000000 -0400
***************
*** 1012,1014 ****
--- 1012,1022 ----
"Finecam L3",
US_SC_SCSI, US_PR_BULK, NULL,
US_FL_FIX_INQUIRY),
+
+ /*E226 modem HSDPA --fmay*/
+ UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000,
+ "HUAWEI MOBILE",
+ "Mass Storage",
+ US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e226_init,
+ 0),
+


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to