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