HUAWEI 3276 ORANGE LTE - nie dziala, dziwne zachowanie i brak zaladowania sterownikow cdc_ncm max DC-HSPA+
przeanalizowalem watki:
http://eko.one.pl/?p=openwrt-modemylte#huaweie3276
http://eko.one.pl/forum/viewtopic.php?id=6253&p=2
http://eko.one.pl/forum/viewtopic.php?id=4491
I niezwykla zagwostka - albo cos nowego Orange wypuscil z nowym softem w modemie.
Po wieu kombinacjach alpejskich laczy sie po PPP na Orange
DC-HSPA+ 48%
Nie laczy sie na LTE max 20 Mbit uzyskalem polaczenie - niby nie LTE ale tez szybko :-)
mialem tak bez modyfikacji sterownika cdc_ncm
cat /proc/bus/usb/devices
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=156c Rev= 1.02
S: Manufacturer=HUAWEI Technology
S: Product=HUAWEI Mobile
C:* #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=10 Driver=option
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=02 Prot=12 Driver=option
E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 2 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=02 Prot=16 Driver=option
E: Ad=84(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
I: If#= 2 Alt= 1 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=16 Driver=option
E: Ad=84(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
modem wykrywa 3 interfejsy USB
63.840000] usb 1-1: usbfs: process 1506 (usb_modeswitch) did not claim interface 0 before use
[ 63.860000] usb 1-1: USB disconnect, device number 2
[ 64.320000] usb 1-1: new high-speed USB device number 3 using ehci-platform
[ 64.480000] scsi2 : usb-storage 1-1:1.3
[ 65.480000] scsi 2:0:0:0: Direct-Access HUAWEI TF CARD Storage 2.31 PQ: 0 ANSI: 2
[ 65.490000] sd 2:0:0:0: [sda] Attached SCSI removable disk
[ 77.240000] option 1-1:1.0: GSM modem (1-port) converter detected
[ 77.240000] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
[ 77.250000] option 1-1:1.1: GSM modem (1-port) converter detected
[ 77.250000] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
[ 77.260000] option 1-1:1.2: GSM modem (1-port) converter detected
[ 77.270000] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
modem nie zalapywal po podlaczeniu go do routera
dopiero dodanie pliku /etc/usb_modeswitch.d/12d1:156a
cat /etc/usb_modeswitch.d/12d1:156a
# Huawei E3276s-151 and E3251
TargetVendor=0x12d1
TargetProductList="156b,156c"
HuaweiNewMode=1
i dodaniu do /etc/rc.local
echo "12d1 156c" > /sys/bus/usb-serial/drivers/option1/new_id
bez tej operacji Prot=xx Driver= pokazywal none
wgralem jeszcze patcha
--- a/build_dir/linux-ar71xx_generic/linux-3.3.8/drivers/net/usb/cdc_ncm.c 2012-06-01 16:16:13.000000000 +0900
+++ b/build_dir/linux-ar71xx_generic/linux-3.3.8/drivers/net/usb/cdc_ncm.c 2012-12-12 23:25:57.000000000 +0900
@@ -140,14 +140,6 @@
static struct usb_driver cdc_ncm_driver;
static const struct ethtool_ops cdc_ncm_ethtool_ops;
-static const struct usb_device_id cdc_devs[] = {
- { USB_INTERFACE_INFO(USB_CLASS_COMM,
- USB_CDC_SUBCLASS_NCM, USB_CDC_PROTO_NONE),
- .driver_info = (unsigned long)&cdc_ncm_info,
- },
- {
- },
-};
MODULE_DEVICE_TABLE(usb, cdc_devs);
@@ -541,10 +533,12 @@
(ctx->ether_desc == NULL) || (ctx->control != intf))
goto error;
- /* claim interfaces, if any */
- temp = usb_driver_claim_interface(driver, ctx->data, dev);
- if (temp)
- goto error;
+ /* claim data interface, if different from control */
+ if (ctx->data != ctx->control) {
+ temp = usb_driver_claim_interface(driver, ctx->data, dev);
+ if (temp)
+ goto error;
+ }
iface_no = ctx->data->cur_altsetting->desc.bInterfaceNumber;
@@ -621,6 +615,10 @@
if (ctx == NULL)
return; /* no setup */
+ /* handle devices with combined control and data interface */
+ if (ctx->control == ctx->data)
+ ctx->data = NULL;
+
/* disconnect master --> disconnect slave */
if (intf == ctx->control && ctx->data) {
usb_set_intfdata(ctx->data, NULL);
@@ -1208,6 +1206,35 @@
.rx_fixup = cdc_ncm_rx_fixup,
.tx_fixup = cdc_ncm_tx_fixup,
};
+/* Same as cdc_ncm_info, but with FLAG_WWAN */
+static const struct driver_info wwan_info = {
+ .description = "Mobile Broadband Network Device",
+ .flags = FLAG_POINTTOPOINT | FLAG_NO_SETINT | FLAG_MULTI_PACKET
+ | FLAG_WWAN,
+ .bind = cdc_ncm_bind,
+ .unbind = cdc_ncm_unbind,
+ .check_connect = cdc_ncm_check_connect,
+ .manage_power = cdc_ncm_manage_power,
+ .status = cdc_ncm_status,
+ .rx_fixup = cdc_ncm_rx_fixup,
+ .tx_fixup = cdc_ncm_tx_fixup,
+};
+
+static const struct usb_device_id cdc_devs[] = {
+ { USB_INTERFACE_INFO(USB_CLASS_COMM,
+ USB_CDC_SUBCLASS_NCM, USB_CDC_PROTO_NONE),
+ .driver_info = (unsigned long)&cdc_ncm_info,
+ },
+ /* Huawei NCM devices disguised as vendor specific */
+ { USB_VENDOR_AND_INTERFACE_INFO(0x12d1, 0xff, 0x02, 0x16),
+ .driver_info = (unsigned long)&wwan_info,
+ },
+ { USB_VENDOR_AND_INTERFACE_INFO(0x12d1, 0xff, 0x02, 0x46),
+ .driver_info = (unsigned long)&wwan_info,
+ },
+ {
+ },
+};
static struct usb_driver cdc_ncm_driver = {
.name = "cdc_ncm",
@@ -1235,3 +1262,4 @@
MODULE_AUTHOR("Hans Petter Selasky");
MODULE_DESCRIPTION("USB CDC NCM host driver");
MODULE_LICENSE("Dual BSD/GPL");
+
--- a/build_dir/linux-ar71xx_generic/linux-3.3.8/include/linux/usb.h 2012-06-01 16:16:13.000000000 +0900
+++ b/build_dir/linux-ar71xx_generic/linux-3.3.8/include/linux/usb.h 2012-12-12 23:27:35.000000000 +0900
@@ -531,6 +531,7 @@
extern int usb_reset_device(struct usb_device *dev);
extern void usb_queue_reset_device(struct usb_interface *dev);
+extern struct usb_device *usb_find_device_by_name(const char *name);
/* USB autosuspend and autoresume */
#ifdef CONFIG_USB_SUSPEND
@@ -775,6 +776,27 @@
.bInterfaceSubClass = (sc), \
.bInterfaceProtocol = (pr)
+/**
+ * USB_VENDOR_AND_INTERFACE_INFO - describe a specific usb vendor with a class of interfaces
+ * @vend: the 16 bit USB Vendor ID
+ * @cl: bInterfaceClass value
+ * @sc: bInterfaceSubClass value
+ * @pr: bInterfaceProtocol value
+ *
+ * This macro is used to create a struct usb_device_id that matches a
+ * specific vendor with a specific class of interfaces.
+ *
+ * This is especially useful when explicitly matching devices that have
+ * vendor specific bDeviceClass values, but standards-compliant interfaces.
+ */
+#define USB_VENDOR_AND_INTERFACE_INFO(vend, cl, sc, pr) \
+ .match_flags = USB_DEVICE_ID_MATCH_INT_INFO \
+ | USB_DEVICE_ID_MATCH_VENDOR, \
+ .idVendor = (vend), \
+ .bInterfaceClass = (cl), \
+ .bInterfaceSubClass = (sc), \
+ .bInterfaceProtocol = (pr)
+
/* ----------------------------------------------------------------------- */
/* Stuff for dynamic usb ids */
--- a/package/kernel/modules/usb.mk 2014-01-06 19:16:42.000000000 +0100
+++ b/package/kernel/modules/usb.mk 2014-01-14 20:20:30.002773084 +0100
@@ -771,6 +771,21 @@
$(eval $(call KernelPackage,usb-net-rndis))
+
+define KernelPackage/usb-net-cdc-ncm
+ TITLE:=Support for CDC NCM connections
+ KCONFIG:=CONFIG_USB_NET_CDC_NCM
+ FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_ncm.ko
+ AUTOLOAD:=$(call AutoLoad,61,cdc_ncm)
+ $(call AddDepends/usb-net)
+ endef
+
+define KernelPackage/usb-net-cdc-ncm/description
+ Kernel support for CDC NCM connections
+ endef
+
+$(eval $(call KernelPackage,usb-net-cdc-ncm))
+
define KernelPackage/usb-net-sierrawireless
TITLE:=Support for Sierra Wireless devices
KCONFIG:=CONFIG_USB_SIERRA_NET
--- ./package/kernel/modules/usb.mk.orig 2014-04-16 21:43:35.213291784 +0200
+++ ./package/kernel/modules/usb.mk 2014-04-16 21:45:44.785293801 +0200
@@ -786,6 +786,33 @@
$(eval $(call KernelPackage,usb-net-cdc-ncm))
+define KernelPackage/usb-wdm
+ TITLE:=USB Wireless Device Management
+ KCONFIG:=CONFIG_USB_WDM
+ FILES:=$(LINUX_DIR)/drivers/usb/class/cdc-wdm.ko
+ AUTOLOAD:=$(call AutoLoad,60,cdc-wdm)
+$(call AddDepends/usb)
+$(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-wdm/description
+ USB Wireless Device Management support
+endef
+$(eval $(call KernelPackage,usb-wdm))
+
+define KernelPackage/usb-net-qmi-wwan
+ TITLE:=QMI WWAN driver
+ KCONFIG:=CONFIG_USB_NET_QMI_WWAN
+ FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/qmi_wwan.ko
+ AUTOLOAD:=$(call AutoLoad,61,qmi_wwan)
+ $(call AddDepends/usb-net,+kmod-usb-wdm)
+endef
+
+define KernelPackage/usb-net-qmi-wwan/description
+ QMI WWAN driver for Qualcomm MSM based 3G and LTE modems
+endef
+
+$(eval $(call KernelPackage,usb-net-qmi-wwan))
define KernelPackage/usb-net-sierrawireless
TITLE:=Support for Sierra Wireless devices
zaczal chodzic cdc_ncm ale nie laczy sie po NDISie
na buildzie Cezarego bylo cdc_ncm
pojawial sie interfejs wwan0 ale ustawienie NDIS nie dzialalo
nie laczyl NDIS po skonfigurowaniu przez GUI tym a router sie rebootowal co jakis czas
w moim buildzie zainstalowane sa wszystkie mozliwe sterowniki:
kmod-usb-wdm
kmod-usb-serial-wwan
kmod-usb-net
kmod-usb-net-cdc-ether
kmod-usb-net-cdc-ncm
kmod-usb-net-rndis
kmod-usb-serial-option
moduly uruchomione
cdc_ncm 6352 0
cdc_ether 2992 1 rndis_host
cdc_wdm 6592 0
usbnet 12032 4 rndis_host,cdc_ncm,cdc_ether,sierra_net
cdc_acm 11456 0
usbcore 99168 40 uvcvideo,gspca_zc3xx,gspca_ov534,gspca_main,qcserial,option,ipw,ftdi_sio,rndis_host,usb_wwan,cdc_ncm,cdc_ether,cdc_wdm,ums_usbat,ums_sddr55,ums_sddr09,ums_karma,ums_jumpshot,ums_isd200,ums_freecom,ums_datafab,ums_cypress,ums_alauda,sierra_net,sierra,usbserial,usblp,usbnet,snd_usb_audio,snd_usbmidi_lib,cdc_acm,ath9k_htc,ledtrig_usbdev,rtl8187,rt73usb,rt2x00usb,usb_storage,ohci_hcd,ehci_hcd
Czy ktos probowal walczyc z modemem od Orange niby LTE z tym ID
P: Vendor=12d1 ProdID=156c Rev= 1.02
S: Manufacturer=HUAWEI Technology
po kompilacji
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 8 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=156c Rev= 1.02
S: Manufacturer=HUAWEI Technology
S: Product=HUAWEI Mobile
C:* #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=10 Driver=option
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=02 Prot=12 Driver=option
E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#= 2 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=02 Prot=16 Driver=cdc_ncm
E: Ad=84(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
I:* If#= 2 Alt= 1 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=16 Driver=cdc_ncm
E: Ad=84(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
tryby pracy:
at^syscfgex=?
^RSSI: 14
^SYSCFGEX: ("00","01","02","03","99"),((2000000400380,"GSM900/GSM1800/WCDMA900/WCDMA2100"),(2a80000,"GSM850/GSM1900/AWS/WCDMA1900"),(3fffffff,"All bands")),(0-2),(0-4),((8004c,"LTE_B3/LTE_B4/LTE_B7/LTE_B20"),(7fffffffffffffff,"All bands"))
OK
^RSSI: 14
Obecnie przy probie uruchomienia NDISa nie laczy sie a sygnal na 3ginfo pokazuje tylko WDCMA, pin przyjmuje po ustawieniach w GUI widzi wwan0 ale na tym sie konczy, brak jest polaczenia, oczywiscie /etc/config/network jest ustawiony tak jak trzeba, zadne skrypty z wspomianych watkow np
MODE="AT^NDISDUP=1,0" gcom -d $PORT -s /etc/gcom/setmode.gcom
sleep 3
MODE="AT^NDISDUP=1,1,\"internet.cp\"" gcom -d $PORT -s /etc/gcom/setmode.gcom
sleep 3
nie dzialaja
wynik:
root@Gargoyle_by_rl:~# MODE="AT^NDISDUP=1,0" gcom -d $PORT -s /etc/gcom/setmode.gcom
comgt 08:15:10 -> -- Error Report --
comgt 08:15:10 -> ----> ^
comgt 08:15:10 -> Error @2489, line 127, Duplicate label. (5)
root@Gargoyle_by_rl:~# MODE="AT^NDISDUP=1,1,\"internet\"" gcom -d $PORT -s /etc/gcom/setmode.gcom
comgt 08:17:25 -> -- Error Report --
comgt 08:17:25 -> ----> ^
przelaczylem modem i nic
ATI
Manufacturer: huawei
Model: E3276
Revision: 21.263.03.00.159
+GCAP: +CGSM,+DS,+ES
OK
AT+CPIN?
+CPIN: READY
OK
AT^SETPORT="A1,A2;12,16,A1,A2"
OK
AT^NDISDUP=1,0
AT^NDISDUP=1,1,"internet"
OK
probowal uruchomic NDISa
Ciekawostka jest ze na oryginalnym sofcie od ORANGE w WIN7 laczy sie na DC-HSPA+ czyli cos jest z modemem, karta sim od ORange opisana jako LTE, usluga niby tez - pakiet bussines.