>Synopsis:      Huawei K4511 umsm support (patch included)
>Category:      system
>Environment:
        System      : OpenBSD 5.7
        Details     : OpenBSD 5.7-stable (GENERIC) #2: Fri Aug 14 15:13:51 AEST 
2015
                         
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC

        Architecture: OpenBSD.amd64
        Machine     : amd64
>Description:
        Huawei K4511 3G modem (supplied by Vodafone Australia a few years ago) 
is not supported by umsm(4).
>How-To-Repeat:
        Plug in a K4511 and attempt to establish a ppp connection.
        
>Fix:
Patch generated against 5.7, but is obviously trivial enough to apply to 
current.
I just did exactly the same as the patch that added the K4510, except for the 
different id of course.

First serial port (/dev/cuaU0) worked for ppp connection.

Testing:
- Before patch:
$ dmesg
...
umass0 at uhub1 port 5 configuration 1 interface 0 "Vodafone Group (Huawei) 
Vodafone Mobile Broadband (Huawei)" rev 2.00/0.00 addr 2
umass0: using SCSI over Bulk-Only
scsibus4 at umass0: 2 targets, initiator 0
cd1 at scsibus4 targ 1 lun 0: <Vodafone, CD ROM (Huawei), 2.31> SCSI2 5/cdrom 
removable
umass1 at uhub1 port 5 configuration 1 interface 1 "Vodafone Group (Huawei) 
Vodafone Mobile Broadband (Huawei)" rev 2.00/0.00 addr 2
umass1: using SCSI over Bulk-Only
scsibus5 at umass1: 2 targets, initiator 0
sd1 at scsibus5 targ 1 lun 0: <Vodafone, Storage (Huawei), 2.31> SCSI2 0/direct 
removable

$ sudo  usbdevs -v | grep Huawei
port 5 addr 2: high speed, power 500 mA, config 1, Vodafone Mobile Broadband 
(Huawei)(0x14b7), Vodafone Group (Huawei)(0x12d1), rev 0.00

- After patch:
$ dmesg
...
umsm0 at uhub1 port 6 configuration 1 interface 0 "Vodafone Group (Huawei) 
Vodafone Mobile Broadband (Huawei)" rev 2.00/0.00 addr 2
umsm1 at uhub1 port 6 configuration 1 interface 1 "Vodafone Group (Huawei) 
Vodafone Mobile Broadband (Huawei)" rev 2.00/0.00 addr 2
umsm0 detached
umsm1 detached
umsm0 at uhub1 port 6 configuration 1 interface 0 "Vodafone Group (Huawei) 
Vodafone Mobile Broadband (Huawei)" rev 2.00/0.00 addr 2
ucom0 at umsm0
umsm1 at uhub1 port 6 configuration 1 interface 1 "Vodafone Group (Huawei) 
Vodafone Mobile Broadband (Huawei)" rev 2.00/0.00 addr 2
ucom1 at umsm1
umsm2 at uhub1 port 6 configuration 1 interface 2 "Vodafone Group (Huawei) 
Vodafone Mobile Broadband (Huawei)" rev 2.00/0.00 addr 2
ucom2 at umsm2
umsm3 at uhub1 port 6 configuration 1 interface 3 "Vodafone Group (Huawei) 
Vodafone Mobile Broadband (Huawei)" rev 2.00/0.00 addr 2
ucom3 at umsm3
umsm4 at uhub1 port 6 configuration 1 interface 4 "Vodafone Group (Huawei) 
Vodafone Mobile Broadband (Huawei)" rev 2.00/0.00 addr 2
umsm5 at uhub1 port 6 configuration 1 interface 5 "Vodafone Group (Huawei) 
Vodafone Mobile Broadband (Huawei)" rev 2.00/0.00 addr 2

$ sudo  usbdevs -v | grep Huawei
port 6 addr 2: high speed, power 500 mA, config 1, Vodafone Mobile Broadband 
(Huawei)(0x14ac), Vodafone Group (Huawei)(0x12d1), rev 0.00

$ sudo pppd call vodafone
$ ifconfig ppp0
ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
        priority: 0
        groups: ppp egress
        inet 100.78.110.10 --> 10.64.64.64 netmask 0xff000000

$ ping google.com
PING google.com (101.119.5.98): 56 data bytes
64 bytes from 101.119.5.98: icmp_seq=0 ttl=59 time=45.295 ms
64 bytes from 101.119.5.98: icmp_seq=1 ttl=59 time=65.811 ms
64 bytes from 101.119.5.98: icmp_seq=2 ttl=59 time=56.376 ms
--- google.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 45.295/55.827/65.811/8.386 ms


Patch:

Index: sys/dev/usb/umsm.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/umsm.c,v
retrieving revision 1.101
diff -u -p -r1.101 umsm.c
--- sys/dev/usb/umsm.c  6 Jan 2015 10:42:16 -0000       1.101
+++ sys/dev/usb/umsm.c  29 Sep 2015 00:04:35 -0000
@@ -143,6 +143,7 @@ static const struct umsm_type umsm_devs[
        {{ USB_VENDOR_HUAWEI,   USB_PRODUCT_HUAWEI_K3765_INIT }, DEV_UMASS5},
        {{ USB_VENDOR_HUAWEI,   USB_PRODUCT_HUAWEI_K3765 }, 0},
        {{ USB_VENDOR_HUAWEI,   USB_PRODUCT_HUAWEI_K4510 }, DEV_UMASS5},
+       {{ USB_VENDOR_HUAWEI,   USB_PRODUCT_HUAWEI_K4511 }, DEV_UMASS5},
        {{ USB_VENDOR_HUAWEI,   USB_PRODUCT_HUAWEI_E1750 }, DEV_UMASS5},
        {{ USB_VENDOR_HUAWEI,   USB_PRODUCT_HUAWEI_E1752 }, 0},

Index: sys/dev/usb/usbdevs
===================================================================
RCS file: /cvs/src/sys/dev/usb/usbdevs,v
retrieving revision 1.645
diff -u -p -r1.645 usbdevs
--- sys/dev/usb/usbdevs 16 Feb 2015 14:51:44 -0000      1.645
+++ sys/dev/usb/usbdevs 29 Sep 2015 00:04:36 -0000
@@ -2174,6 +2174,7 @@ product HUAWEI E161               0x1446  HUAWEI Mobil
 product HUAWEI K3765           0x1465  HUAWEI Mobile K3765
 product HUAWEI E1820           0x14ac  HUAWEI Mobile Modem
 product HUAWEI K4510           0x14c5  HUAWEI Mobile Modem
+product HUAWEI K4511           0x14b7  HUAWEI Mobile Modem K4511
 product HUAWEI E353_INIT       0x14fe  HUAWEI Mobile E353 Initial
 product HUAWEI E392_INIT       0x1505  HUAWEI Mobile E392 Initial
 product HUAWEI K3765_INIT      0x1520  HUAWEI Mobile K3765 Initial


dmesg:
OpenBSD 5.7-stable (GENERIC) #2: Fri Aug 14 15:13:51 AEST 2015
    [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC
real mem = 4101713920 (3911MB)
avail mem = 3988647936 (3803MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.5 @ 0xe9f80 (86 entries)
bios0: vendor Hewlett-Packard version "786G1 v01.08" date 08/25/2008
bios0: Hewlett-Packard HP Compaq dc7900 Small Form Factor
acpi0 at bios0: rev 0
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP APIC ASF! MCFG TCPA SLIC HPET DMAR
acpi0: wakeup devices COM1(S4) COM2(S4) PCI0(S4) PEG1(S4) PEG2(S4) IGBE(S4) 
PCX1(S4) PCX2(S4) PCX5(S4) PCX6(S4) HUB_(S4) USB1(S3) USB2(S3) USB3(S3) 
USB4(S3) USB5(S3) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz, 2992.85 MHz
cpu0: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,XSAVE,NXE,LONG,LAHF,PERF
cpu0: 6MB 64b/line 16-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 332MHz
cpu at mainbus0: not configured
ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins
ioapic0: misconfigured as apic 0, remapped to apid 1
acpimcfg0 at acpi0 addr 0xf4000000, bus 0-63
acpihpet0 at acpi0: 14318179 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (PEG1)
acpiprt2 at acpi0: bus -1 (PEG2)
acpiprt3 at acpi0: bus 32 (PCX1)
acpiprt4 at acpi0: bus -1 (PCX2)
acpiprt5 at acpi0: bus 48 (PCX5)
acpiprt6 at acpi0: bus -1 (PCX6)
acpiprt7 at acpi0: bus 7 (HUB_)
acpicpu0 at acpi0: C2, C1, PSS
acpibtn0 at acpi0: PBTN
cpu0: Enhanced SpeedStep 2992 MHz: speeds: 3000, 1998 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel Q45 Host" rev 0x03
vga1 at pci0 dev 2 function 0 "Intel Q45 Video" rev 0x03
intagp0 at vga1
agp0 at intagp0: aperture at 0xe0000000, size 0x10000000
inteldrm0 at vga1
drm0 at inteldrm0
inteldrm0: 1024x768
wsdisplay0 at vga1 mux 1: console (std, vt100 emulation)
wsdisplay0: screen 1-5 added (std, vt100 emulation)
"Intel Q45 Video" rev 0x03 at pci0 dev 2 function 1 not configured
"Intel Q45 HECI" rev 0x03 at pci0 dev 3 function 0 not configured
pciide0 at pci0 dev 3 function 2 "Intel Q45 PT IDER" rev 0x03: DMA 
(unsupported), channel 0 wired to native-PCI, channel 1 wired to native-PCI
pciide0: using apic 1 int 18 for native-PCI interrupt
pciide0: channel 0 ignored (not responding; disabled or no drives?)
pciide0: channel 1 ignored (not responding; disabled or no drives?)
puc0 at pci0 dev 3 function 3 "Intel Q45 KT" rev 0x03: ports: 1 com
com4 at puc0 port 0 apic 1 int 17: ns16550a, 16 byte fifo
com4: probed fifo depth: 0 bytes
em0 at pci0 dev 25 function 0 "Intel ICH10 D BM LM" rev 0x02: msi, address 
00:23:7d:1c:de:cb
uhci0 at pci0 dev 26 function 0 "Intel 82801JD USB" rev 0x02: apic 1 int 20
uhci1 at pci0 dev 26 function 1 "Intel 82801JD USB" rev 0x02: apic 1 int 21
uhci2 at pci0 dev 26 function 2 "Intel 82801JD USB" rev 0x02: apic 1 int 22
ehci0 at pci0 dev 26 function 7 "Intel 82801JD USB" rev 0x02: apic 1 int 22
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
azalia0 at pci0 dev 27 function 0 "Intel 82801JD HD Audio" rev 0x02: msi
azalia0: codecs: Analog Devices AD1884A
audio0 at azalia0
ppb0 at pci0 dev 28 function 0 "Intel 82801JD PCIE" rev 0x02: msi
pci1 at ppb0 bus 32
ppb1 at pci0 dev 28 function 4 "Intel 82801JD PCIE" rev 0x02: msi
pci2 at ppb1 bus 48
em1 at pci2 dev 0 function 0 "Intel 82574L" rev 0x00: msi, address 
68:05:ca:2f:16:34
uhci3 at pci0 dev 29 function 0 "Intel 82801JD USB" rev 0x02: apic 1 int 20
uhci4 at pci0 dev 29 function 1 "Intel 82801JD USB" rev 0x02: apic 1 int 21
uhci5 at pci0 dev 29 function 2 "Intel 82801JD USB" rev 0x02: apic 1 int 22
ehci1 at pci0 dev 29 function 7 "Intel 82801JD USB" rev 0x02: apic 1 int 20
usb1 at ehci1: USB revision 2.0
uhub1 at usb1 "Intel EHCI root hub" rev 2.00/1.00 addr 1
ppb2 at pci0 dev 30 function 0 "Intel 82801BA Hub-to-PCI" rev 0xa2
pci3 at ppb2 bus 7
pcib0 at pci0 dev 31 function 0 "Intel 82801JDO LPC" rev 0x02
ahci0 at pci0 dev 31 function 2 "Intel 82801JD AHCI" rev 0x02: msi, AHCI 1.2
ahci0: PHY offline on port 2
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, WDC WD800AAJS-60, 02.0> SCSI3 0/direct 
fixed naa.50014ee10154c4fe
sd0: 76319MB, 512 bytes/sector, 156301488 sectors
cd0 at scsibus1 targ 1 lun 0: <HL-DT-ST, DVD-RAM GH15L, RA02> ATAPI 5/cdrom 
removable
usb2 at uhci0: USB revision 1.0
uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb3 at uhci1: USB revision 1.0
uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb4 at uhci2: USB revision 1.0
uhub4 at usb4 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb5 at uhci3: USB revision 1.0
uhub5 at usb5 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb6 at uhci4: USB revision 1.0
uhub6 at usb6 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb7 at uhci5: USB revision 1.0
uhub7 at usb7 "Intel UHCI root hub" rev 1.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
uhidev0 at uhub7 port 2 configuration 1 interface 0 "EATON Eaton 5PX" rev 
1.10/1.00 addr 2
uhidev0: iclass 3/0, 254 report ids
uhid0 at uhidev0 reportid 1: input=1, output=0, feature=1
uhid1 at uhidev0 reportid 2: input=1, output=0, feature=1
uhid2 at uhidev0 reportid 3: input=1, output=0, feature=1
uhid3 at uhidev0 reportid 6: input=4, output=0, feature=4
uhid4 at uhidev0 reportid 7: input=0, output=0, feature=2
uhid5 at uhidev0 reportid 8: input=0, output=0, feature=1
uhid6 at uhidev0 reportid 9: input=0, output=0, feature=4
uhid7 at uhidev0 reportid 10: input=0, output=0, feature=4
uhid8 at uhidev0 reportid 11: input=0, output=0, feature=5
uhid9 at uhidev0 reportid 12: input=0, output=0, feature=1
uhid10 at uhidev0 reportid 13: input=0, output=0, feature=2
uhid11 at uhidev0 reportid 14: input=0, output=0, feature=1
uhid12 at uhidev0 reportid 15: input=1, output=0, feature=1
uhid13 at uhidev0 reportid 16: input=0, output=0, feature=7
uhid14 at uhidev0 reportid 17: input=0, output=0, feature=1
uhid15 at uhidev0 reportid 18: input=0, output=0, feature=1
uhid16 at uhidev0 reportid 19: input=0, output=0, feature=1
uhid17 at uhidev0 reportid 20: input=0, output=0, feature=1
uhid18 at uhidev0 reportid 21: input=0, output=0, feature=2
uhid19 at uhidev0 reportid 22: input=0, output=0, feature=1
uhid20 at uhidev0 reportid 24: input=0, output=0, feature=4
uhid21 at uhidev0 reportid 32: input=0, output=0, feature=3
uhid22 at uhidev0 reportid 33: input=0, output=0, feature=1
uhid23 at uhidev0 reportid 34: input=0, output=0, feature=1
uhid24 at uhidev0 reportid 35: input=0, output=0, feature=4
uhid25 at uhidev0 reportid 36: input=0, output=0, feature=1
uhid26 at uhidev0 reportid 37: input=0, output=0, feature=4
uhid27 at uhidev0 reportid 38: input=0, output=0, feature=2
uhid28 at uhidev0 reportid 39: input=6, output=0, feature=6
uhid29 at uhidev0 reportid 40: input=0, output=0, feature=1
uhid30 at uhidev0 reportid 41: input=0, output=0, feature=1
uhid31 at uhidev0 reportid 48: input=0, output=0, feature=2
uhid32 at uhidev0 reportid 49: input=0, output=0, feature=2
uhid33 at uhidev0 reportid 50: input=6, output=0, feature=6
uhid34 at uhidev0 reportid 57: input=0, output=0, feature=1
uhid35 at uhidev0 reportid 58: input=0, output=0, feature=1
uhid36 at uhidev0 reportid 59: input=1, output=0, feature=1
uhid37 at uhidev0 reportid 62: input=0, output=0, feature=1
uhid38 at uhidev0 reportid 64: input=0, output=0, feature=1
uhid39 at uhidev0 reportid 65: input=1, output=0, feature=1
uhid40 at uhidev0 reportid 66: input=0, output=0, feature=2
uhid41 at uhidev0 reportid 67: input=0, output=0, feature=1
uhid42 at uhidev0 reportid 68: input=0, output=0, feature=8
uhid43 at uhidev0 reportid 71: input=0, output=0, feature=2
uhid44 at uhidev0 reportid 72: input=0, output=0, feature=2
uhid45 at uhidev0 reportid 73: input=1, output=0, feature=1
uhid46 at uhidev0 reportid 74: input=0, output=0, feature=1
uhid47 at uhidev0 reportid 75: input=0, output=0, feature=1
uhid48 at uhidev0 reportid 76: input=0, output=0, feature=1
uhid49 at uhidev0 reportid 77: input=0, output=0, feature=2
uhid50 at uhidev0 reportid 78: input=0, output=0, feature=2
uhid51 at uhidev0 reportid 79: input=0, output=0, feature=1
uhid52 at uhidev0 reportid 80: input=0, output=0, feature=1
uhid53 at uhidev0 reportid 81: input=0, output=0, feature=1
uhid54 at uhidev0 reportid 82: input=0, output=0, feature=1
uhid55 at uhidev0 reportid 84: input=0, output=0, feature=4
uhid56 at uhidev0 reportid 85: input=0, output=0, feature=4
uhid57 at uhidev0 reportid 87: input=0, output=0, feature=1
uhid58 at uhidev0 reportid 88: input=0, output=0, feature=1
uhid59 at uhidev0 reportid 90: input=0, output=0, feature=4
uhid60 at uhidev0 reportid 91: input=0, output=0, feature=4
uhid61 at uhidev0 reportid 93: input=1, output=0, feature=1
uhid62 at uhidev0 reportid 100: input=0, output=0, feature=1
uhid63 at uhidev0 reportid 101: input=0, output=0, feature=1
uhid64 at uhidev0 reportid 102: input=0, output=0, feature=1
uhid65 at uhidev0 reportid 103: input=0, output=0, feature=1
uhid66 at uhidev0 reportid 113: input=0, output=0, feature=30
uhid67 at uhidev0 reportid 114: input=0, output=0, feature=2
uhid68 at uhidev0 reportid 115: input=0, output=0, feature=1
uhid69 at uhidev0 reportid 116: input=0, output=0, feature=2
uhid70 at uhidev0 reportid 117: input=0, output=0, feature=2
uhid71 at uhidev0 reportid 128: input=0, output=0, feature=1
uhid72 at uhidev0 reportid 129: input=0, output=0, feature=1
uhid73 at uhidev0 reportid 130: input=1, output=0, feature=1
uhid74 at uhidev0 reportid 131: input=0, output=0, feature=1
uhid75 at uhidev0 reportid 132: input=0, output=0, feature=1
uhid76 at uhidev0 reportid 133: input=0, output=0, feature=1
uhid77 at uhidev0 reportid 134: input=0, output=0, feature=8
uhid78 at uhidev0 reportid 135: input=0, output=0, feature=2
uhid79 at uhidev0 reportid 136: input=0, output=0, feature=2
uhid80 at uhidev0 reportid 137: input=0, output=0, feature=8
uhid81 at uhidev0 reportid 138: input=0, output=0, feature=2
uhid82 at uhidev0 reportid 139: input=0, output=0, feature=2
uhid83 at uhidev0 reportid 140: input=0, output=0, feature=8
uhid84 at uhidev0 reportid 141: input=0, output=0, feature=4
uhid85 at uhidev0 reportid 142: input=0, output=0, feature=4
uhid86 at uhidev0 reportid 144: input=0, output=0, feature=4
uhid87 at uhidev0 reportid 145: input=0, output=0, feature=4
uhid88 at uhidev0 reportid 254: input=0, output=0, feature=10
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on sd0a (46977331b83b36d7.a) swap on sd0b dump on sd0b

usbdevs:

Reply via email to