Stability issues with a Sierra Wireless MC7455 on a SG-1000



  • Hello pfSense community,

    I have purchased a SG-1000 in order to set up a cellular internet connection for my father's farm.

    I have attached a Sierra Wireless MC7455 via USB OTG cable and the OS detects the modem. I am able to get a connection via T-Moble and get internet access at bootup. However, after a few minutes it becomes unstable. At some point, the modem will loose access and seems to disconnect from USB and reconnect. Additionally, any change to the connection config will not allow the modem to reconnect. It seems to me (I am a complete novice when it comes to freebsd) that the modem will disconnect itself reconnect itself continually when this happens. If the connection drops, the modem will also not reconnect without pulling the power plug and booting again.

    During this time, I see the following in DMESG:

    u3g0: at uhub1, port 1, addr 2 (disconnected)
    ugen0.2: <sierra wireless,="" incorporated=""> at usbus0
    u3g0: <sierra 0="" 2="" wireless,="" incorporated="" sierra="" wireless="" mc7455="" qualcomm="" snapdragon =""  ="" x7="" lte-a,="" class="" 0,="" rev="" 2.10="" 0.06,="" addr=""> on usbus0
    u3g0: Found 5 ports.
    ugen0.2: <sierra wireless,="" incorporated=""> at usbus0 (disconnected)
    u3g0: at uhub1, port 1, addr 2 (disconnected)
    ugen0.2: <sierra wireless,="" incorporated=""> at usbus0
    u3g0: <sierra 0="" 2="" wireless,="" incorporated="" sierra="" wireless="" mc7455="" qualcomm="" snapdragon =""  ="" x7="" lte-a,="" class="" 0,="" rev="" 2.10="" 0.06,="" addr=""> on usbus0
    u3g0: Found 5 ports.
    ugen0.2: <sierra wireless,="" incorporated=""> at usbus0 (disconnected)
    u3g0: at uhub1, port 1, addr 2 (disconnected)
    ugen0.2: <sierra wireless,="" incorporated=""> at usbus0
    u3g0: <sierra 0="" 2="" wireless,="" incorporated="" sierra="" wireless="" mc7455="" qualcomm="" snapdragon="" x7="" lte-a,="" class="" 0,="" rev="" 2.10="" 0.06,="" addr=""> on usbus0
    u3g0: Found 5 ports.</sierra></sierra></sierra></sierra></sierra></sierra></sierra></sierra>
    

    If I go look at /dev, the modem's device has changed from cuaU0.2, to cuaU1.2. I have attached the PPP.log to this post. I can provide any logs necessary, just let me know where to find them.

    To me, it looks like there is an issue with the driver for my modem. What can I do to fix this? Open a ticket in the bug tracker? Pay the support fee for help from Netgate?

    Thank you for any help!
    ppp.txt


  • Galactic Empire Netgate

    That card does not appear to be on this list https://doc.pfsense.org/index.php/Known_Working_3G-4G_Modems

    Have you tried using the card on a different machine, just to rule out the chance the card might be faulty? Is the card supported in FreeBSD? Seems to me like the card is drawing too much power. I am not sure if buying support incident will help you in this case.



  • Hi Ivor,

    You were correct on the power- I plugged in a powered USB hub and have a connection with no dropping. Thank you!

    Support for the MC7455 was recently added according to this:https://redmine.pfsense.org/issues/7137. When I can confirm stability I will request that the MC7455 is added to the list.

    However, now I have a second issue. The SG-1000 will not boot up with a powered USB hub plugged into it via the OTG adapter. I have to remove it and plug it back in when the system has booted. Any guidance on this?

    Thank you for any help!


  • Galactic Empire Netgate

    @jmark:

    However, now I have a second issue. The SG-1000 will not boot up with a powered USB hub plugged into it via the OTG adapter. I have to remove it and plug it back in when the system has booted. Any guidance on this?

    Thank you for any help!

    Don't do that, you're sending power to device via hub. That might damage it. That explains why it doesn't boot up.



  • @ivor:

    @jmark:

    However, now I have a second issue. The SG-1000 will not boot up with a powered USB hub plugged into it via the OTG adapter. I have to remove it and plug it back in when the system has booted. Any guidance on this?

    Thank you for any help!

    Don't do that, you're sending power to device via hub. That might damage it. That explains why it doesn't boot up.

    Maybe a data only USB cable would work?  Surely someone makes such a thing?


  • Galactic Empire Netgate

    @NOYB:

    @ivor:

    @jmark:

    However, now I have a second issue. The SG-1000 will not boot up with a powered USB hub plugged into it via the OTG adapter. I have to remove it and plug it back in when the system has booted. Any guidance on this?

    Thank you for any help!

    Don't do that, you're sending power to device via hub. That might damage it. That explains why it doesn't boot up.

    Maybe a data only USB cable would work?  Surely someone makes such a thing?

    Good point.



  • Hi All,

    Please do not take this the wrong way, I greatly appreciate your help. I'm having trouble believing that a USB 2.0 certified powered hub would be supplying power to the SG-1000 via the upstream port. That wouldn't pass USB spec if that were the case.

    The SG-1000 hangs at the following point noted below: HANGS HERE
    If I simply unplug the powered hub and plug it back in, the SG-1000 continues to boot up with no issue.

    Serial Output of a reboot:

    
    [2.4.0-BETA][root@pfsense.farm.markgraf.us]/root: reboot
    ugen0.2: <vendor 0x2001="">at usbus0
    uhub2: <vendor 2="" 9="" 0x2001="" product="" 0xf103,="" class="" 0,="" rev="" 2.00="" 1.00,="" addr="">on usbus0
    uhub2: 7 ports with 7 removable, self powered
    Waiting (max 60 seconds) for system process `vnlru' to stop... done
    Waiting (max 60 seconds) for system process `bufdaemon' to stop... done
    Waiting (max 60 seconds) for system process `syncer' to stop...
    Syncing disks, vnodes remaining... 3 1 0 0 done
    All buffers synced.
    Uptime: 3h58m9s
    Rebooting...
    
    U-Boot SPL 2016.03 (Dec 28 2016 - 14:33:36)
    Trying to boot from MMC
    Card doesn't support part_switch
    MMC partition switch failed
    *** Warning - MMC partition switch failed, using default environment
    
    reading u-boot.img
    reading u-boot.img
    
    U-Boot 2016.03 (Dec 28 2016 - 14:33:36 +0000)
    
           Watchdog enabled
    I2C:   ready
    DRAM:  512 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading u-boot.env
    
    ** Unable to read "u-boot.env" from mmc0:1 **
    Using default environment
    
    Net:   <ethaddr>not set. Validating first E-fuse MAC
    cpsw, usb_ether
    starting USB...
    USB0:   scanning bus 0 for devices... 1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    ** Bad device usb 0 **
    Hit any key to stop autoboot:  0
    Booting from: mmc 1 ubldr.bin
    reading ubldr.bin
    217364 bytes read in 20 ms (10.4 MiB/s)
    ## Starting application at 0x88000000 ...
    Consoles: U-Boot console
    Compatible U-Boot API signature found @0x9ef3ab58
    
    FreeBSD/armv6 U-Boot loader, Revision 1.2
    (root@buildbot2.netgate.com, Mon May  1 09:23:08 CDT 2017)
    
    DRAM: 512MB
    Number of U-Boot devices: 3
    U-Boot env: loaderdev='mmc 1'
    Found U-Boot device: disk
      Checking unit=1 slice= <auto>partition=<auto>... good.
    Booting from disk1s2a:
    console comconsole is invalid!
    console vidconsole is invalid!
    no valid consoles!
    Available consoles:
        uboot
    /boot/kernel/kernel data=0x11de424+0x51bdc syms=[0x4+0xad770+0x4+0xc70dc]
    
    Hit [Enter] to boot immediately, or any other key for command prompt.
    Booting [/boot/kernel/kernel]...
    /boot/dtb/ufw.dtb size=0x79f4
    Loaded DTB from file 'ufw.dtb'.
    Kernel entry at 0x0x88200100...
    Kernel args: (null)
    Copyright (c) 1992-2016 The FreeBSD Project.
    Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
            The Regents of the University of California. All rights reserved.
    FreeBSD is a registered trademark of The FreeBSD Foundation.
    FreeBSD 11.0-RELEASE-p8 #0 1b380dbbb0d(RELENG_2_4): Mon May  1 09:25:40 CDT 2017
        root@buildbot2.netgate.com:/xbuilder/crossbuild/work/obj-ufw-armv6/arm.armv6/builder/factory/tmp/FreeBSD-src/sys/pfSense-uFW arm
    FreeBSD clang version 3.8.0 (tags/RELEASE_380/final 262564) (based on LLVM 3.8.0)
    CPU: Cortex A8-r3 rev 2 (Cortex-A core)
     Supported features: ARM_ISA THUMB2 JAZELLE THUMBEE ARMv4 Security_Ext
     WB enabled LABT branch prediction disabled
    LoUU:2 LoC:3 LoUIS:1
    Cache level 1:
     32KB/64B 4-way data cache WT WB Read-Alloc
     32KB/64B 4-way instruction cache Read-Alloc
    Cache level 2:
     256KB/64B 8-way unified cache WT WB Read-Alloc Write-Alloc
    real memory  = 536870912 (512 MB)
    avail memory = 503078912 (479 MB)
    Texas Instruments AM335x Processor, Revision ES1.2
    ipw_bss: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw.LICENSE.
    ipw_bss: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/loader.conf.
    module_register_init: MOD_LOAD (ipw_bss_fw, 0xc031a6b4, 0) error 1
    ipw_ibss: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw.LICENSE.
    ipw_ibss: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/loader.conf.
    module_register_init: MOD_LOAD (ipw_ibss_fw, 0xc031a764, 0) error 1
    ipw_monitor: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw.LICENSE.
    ipw_monitor: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/loader.conf.
    module_register_init: MOD_LOAD (ipw_monitor_fw, 0xc031a814, 0) error 1
    iwi_bss: You need to read the LICENSE file in /usr/share/doc/legal/intel_iwi.LICENSE.
    iwi_bss: If you agree with the license, set legal.intel_iwi.license_ack=1 in /boot/loader.conf.
    module_register_init: MOD_LOAD (iwi_bss_fw, 0xc032452c, 0) error 1
    iwi_ibss: You need to read the LICENSE file in /usr/share/doc/legal/intel_iwi.LICENSE.
    iwi_ibss: If you agree with the license, set legal.intel_iwi.license_ack=1 in /boot/loader.conf.
    module_register_init: MOD_LOAD (iwi_ibss_fw, 0xc03245dc, 0) error 1
    iwi_monitor: You need to read the LICENSE file in /usr/share/doc/legal/intel_iwi.LICENSE.
    iwi_monitor: If you agree with the license, set legal.intel_iwi.license_ack=1 in /boot/loader.conf.
    module_register_init: MOD_LOAD (iwi_monitor_fw, 0xc032468c, 0) error 1
    wlan: mac acl policy registered
    random: entropy device external interface
    ofwbus0: <open firmware="" device="" tree="">simplebus0: <flattened device="" tree="" simple="" bus="">on ofwbus0
    simplebus1: <flattened device="" tree="" simple="" bus="">on simplebus0
    simplebus2: <flattened device="" tree="" simple="" bus="">mem 0x210000-0x211fff on simplebus1
    ti_scm0: <ti control="" module="">mem 0-0x7ff on simplebus2
    aintc0: <ti aintc="" interrupt="" controller="">mem 0x48200000-0x48200fff on simplebus0
    aintc0: Revision 5.0
    cpulist0: <open firmware="" cpu="" group="">on ofwbus0
    cpu0: <open firmware="" cpu="">on cpulist0
    pmu0: <performance monitoring="" unit="">on ofwbus0
    am335x_prcm0: <am335x power="" and="" clock="" management="">mem 0x200000-0x203fff on simplebus1
    am335x_prcm0: Clocks: System 24.0 MHz, CPU 550 MHz
    ti_pinmux0: <ti pinmux="" module="">mem 0x800-0xa37 on simplebus2
    am335x_scm0: <am335x control="" module="" extension="">on ti_scm0
    gpio0: <ti am335x="" general="" purpose="" i="" o="" (gpio)="">mem 0x44e07000-0x44e07fff on simplebus0
    gpiobus0: <ofw gpio="" bus="">on gpio0
    gpioc0: <gpio controller="">on gpio0
    gpio1: <ti am335x="" general="" purpose="" i="" o="" (gpio)="">mem 0x4804c000-0x4804cfff on simplebus0
    gpiobus1: <ofw gpio="" bus="">on gpio1
    gpioc1: <gpio controller="">on gpio1
    gpio2: <ti am335x="" general="" purpose="" i="" o="" (gpio)="">mem 0x481ac000-0x481acfff on simplebus0
    gpiobus2: <ofw gpio="" bus="">on gpio2
    gpioc2: <gpio controller="">on gpio2
    gpio3: <ti am335x="" general="" purpose="" i="" o="" (gpio)="">mem 0x481ae000-0x481aefff on simplebus0
    gpiobus3: <ofw gpio="" bus="">on gpio3
    gpioc3: <gpio controller="">on gpio3
    uart0: <ti uart="" (16550="" compatible)="">mem 0x44e09000-0x44e0afff on simplebus0
    uart0: console (115384,n,8,1)
    iichb0: <ti i2c="" controller="">mem 0x44e0b000-0x44e0bfff on simplebus0
    iichb0: I2C revision 4.0 FIFO size: 32 bytes
    iicbus0: <ofw i2c="" bus="">on iichb0
    iic0: <i2c generic="" i="" o="">on iicbus0
    icee0: <at24c02>at addr 0xa0 on iicbus0
    iichb1: <ti i2c="" controller="">mem 0x4802a000-0x4802afff on simplebus0
    iichb1: I2C revision 4.0 FIFO size: 32 bytes
    iicbus1: <ofw i2c="" bus="">on iichb1
    iic1: <i2c generic="" i="" o="">on iicbus1
    sdhci_ti0: <ti mmchs="" (sdhci="" 2.0)="">mem 0x48060000-0x48060fff on simplebus0
    mmc0: <mmc sd="" bus="">on sdhci_ti0
    sdhci_ti1: <ti mmchs="" (sdhci="" 2.0)="">mem 0x481d8000-0x481d8fff on simplebus0
    mmc1: <mmc sd="" bus="">on sdhci_ti1
    ti_wdt0: <ti watchdog="" timer="">mem 0x44e35000-0x44e35fff on simplebus0
    ti_mbox0: <ti system="" mailbox="">mem 0x480c8000-0x480c81ff on simplebus0
    ti_mbox0: revision 4.0
    am335x_dmtimer0: <am335x dmtimer2="">mem 0x48040000-0x480403ff on simplebus0
    Event timer "DMTimer2" frequency 24000000 Hz quality 500
    am335x_dmtimer1: <am335x dmtimer3="">mem 0x48042000-0x480423ff on simplebus0
    Timecounter "DMTimer3" frequency 24000000 Hz quality 500
    usbss0: <ti am33xx="" integrated="" usb="" otg="" controller="">mem 0x47400000-0x47400fff on simplebus0
    usbss0: TI AM335X USBSS v0.0.13
    musbotg0: <ti am33xx="" integrated="" usb="" otg="" controller="">mem 0x47401400-0x474017ff,0x47401000-0x474011ff on usbss0
    usbus0: Dynamic FIFO sizing detected, assuming 16Kbytes of FIFO RAM
    usbus0 on musbotg0
    musbotg1: <ti am33xx="" integrated="" usb="" otg="" controller="">mem 0x47401c00-0x47401fff,0x47401800-0x474019ff on usbss0
    usbus1: Dynamic FIFO sizing detected, assuming 16Kbytes of FIFO RAM
    usbus1 on musbotg1
    cpswss0: <3-port Switch Ethernet Subsystem> mem 0x4a100000-0x4a1007ff,0x4a101200-0x4a1012ff on simplebus0
    cpswss0: CPSW SS Version 1.12 (0)
    cpswss0: Initial queue size TX=128 RX=384
    cpsw0: <ethernet switch="" port="">on cpswss0
    miibus0: <mii bus="">on cpsw0
    micphy0: <micrel 10="" 100="" 1000="" ksz9031="" phy="">PHY 1 on miibus0
    micphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
    cpsw0: Ethernet address: ec:11:27:de:76:ab
    cpsw1: <ethernet switch="" port="">on cpswss0
    miibus1: <mii bus="">on cpsw1
    micphy1: <micrel 10="" 100="" 1000="" ksz9031="" phy="">PHY 2 on miibus1
    micphy1:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
    cpsw1: Ethernet address: ec:11:27:de:76:ad
    etherswitch0: <switch controller="">on cpswss0
    ti_adc0: <ti adc="" controller="">mem 0x44e0d000-0x44e0dfff disabled on simplebus0
    ti_adc0: scheme: 0x1 func: 0x730 rtl: 0 rev: 0.1 custom rev: 0
    cryptosoft0: <software crypto="">Timecounters tick every 10.000 msec
    usbus0: 480Mbps High Speed USB v2.0
    usbus1: 480Mbps High Speed USB v2.0
    ugen1.1: <mentor graphics="">at usbus1
    ugen0.1: <mentor graphics="">at usbus0
    uhub0: <mentor 1="" 9="" graphics="" otg="" root="" hub,="" class="" 0,="" rev="" 2.00="" 1.00,="" addr="">on usbus0
    uhub1: <mentor 1="" 9="" graphics="" otg="" root="" hub,="" class="" 0,="" rev="" 2.00="" 1.00,="" addr="">on usbus1
    mmcsd0: 8GB <sdhc 2="" 2010="" sa08g="" 0.4="" sn="" 9c00002c="" mfg="" 07="" by="" tm="">at mmc0 48.0MHz/4bit/65535-block
    uhub0: 1 port with 1 removable, self powered
    uhub1: 1 port with 1 removable, self powered
    ugen0.2: <vendor 0x2001="">at usbus0
    uhub2: <vendor 2="" 9="" 0x2001="" product="" 0xf103,="" class="" 0,="" rev="" 2.00="" 1.00,="" addr="">on usbus0
    mmcsd1: 4GB <mmchc 10="" 112="" 2000="" m62704="" 0.1="" sn="" 364ada94="" mfg="" by="" 0x0000="">at mmc1 48.0MHz/8bit/65535-block
    Trying to mount root from ufs:/dev/ufsid/5877c8cdceaf14b9 [rw,noatime]...
    warning: no time-of-day clock registered, system time will not be set accurately
    Configuring crash dumps...
    No suitable dump device was found.
    /dev/ufsid/5877c8cdceaf14b9: FILE SYSTEM CLEAN; SKIPPING CHECKS
    /dev/ufsid/5877c8cdceaf14b9: clean, 642352 free (2872 frags, 79935 blocks, 0.3% fragmentation)
    Filesystems are clean, continuing...
    Mounting filesystems...
    uhub2: 7 ports with 7 removable, self powered
    random: unblocking device.
    
         ___
     ___/ f \
    / p \___/ Sense
    \___/   \
        \___/
    
    Welcome to pfSense 2.4.0-BETA...
    
    Dump device does not exist.  Savecore not run.
    ...ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib /usr/local/lib/ipsec /usr/local/lib/perl5/5.24/mach/CORE
    Soft Float compatibility ldconfig path:
    done.
    *****HANGS HERE*****
    ugen0.2: <vendor 0x2001="">at usbus0 (disconnected)
    uhub2: at uhub0, port 1, addr 2 (disconnected)
    External config loader 1.0 is now starting... mmcsd1s1 mmcsd1s2 mmcsd1s2a mmcsd0s1
    Launching the init system....... done.
    Initializing.................. done.
    Starting device manager (devd)...done.
    Loading configuration......done.
    Updating configuration...done.
    Cleaning backup cache.........ugen0.2: <vendor 0x2001="">at usbus0
    uhub2: <vendor 2="" 9="" 0x2001="" product="" 0xf103,="" class="" 0,="" rev="" 2.00="" 1.00,="" addr="">on usbus0
    ......uhub2: 7 ports with 7 removable, self powered
    ..................done.
    Setting up extended sysctls...done.
    Setting timezone...done.
    Configuring loopback interface...done.
    ugen0.3: <sierra wireless,="" incorporated="">at usbus0
    u3g0: <sierra 0="" 3="" wireless,="" incorporated="" sierra="" wireless="" mc7455="" qualcomm="" snapdragon="" x7="" lte-a,="" class="" 0,="" rev="" 2.10="" 0.06,="" addr="">on usbus0
    u3g0: Found 5 ports.
    Starting syslog...done.
    Starting Secure Shell Services...done.
    Setting up interfaces microcode...do</sierra></sierra></vendor></vendor></vendor></mmchc></vendor></vendor></sdhc></mentor></mentor></mentor></mentor></software></ti></switch></micrel></mii></ethernet></micrel></mii></ethernet></ti></ti></ti></am335x></am335x></ti></ti></mmc></ti></mmc></ti></i2c></ofw></ti></at24c02></i2c></ofw></ti></ti></gpio></ofw></ti></gpio></ofw></ti></gpio></ofw></ti></gpio></ofw></ti></am335x></ti></am335x></performance></open></open></ti></ti></flattened></flattened></flattened></open></auto></auto></ethaddr></vendor></vendor> 
    

    Again, help pointing me in the right direction on this is greatly appreciated.



  • Hello pfSense community,

    I have brought this issue to the attention of hardware support and am working through it with them.

    I will update this thread with results so that anyone else who may have the same issue in the future will benefit.

    Thank you for your help.



  • Is there a USB version of this card? all I see is a PCIe version.  Do you have a link for a USB version?



  • i assume you are using something like this?

    https://www.amazon.com/dp/B01J705MTC/ref=cm_sw_r_cp_apa_npqizbMXZ2AQC

    how does it show up in pfsense? and how to you configure all the settings (like APN, etc?)



  • I am trailing one of them amazon enclosures with the em7455 modem. So far so good other than my poor reception on my ATT account.
    You configure the modem directly, i.e. With AT commands to set APN and bands etc.



  • great.  Let me know how it goes.  The module goes for about $125-$150 right?



  • you can buy a Lenovo or Dell branded version for 75-$90 but TBH, I think Id suggest spending the additional few dollars to get an original Sierra version. They end up the same, its just additional config to make the dell or Lenovo act like a Sierra version.



  • just ordered one.  Can you please let me know what steps you went through to get it up and running?

    Thank you

    M