Wireless LTE stick compatibility

  • Hello everyone,

    Can anyone confirm any of these devices working with any versions of pfSense? These are LTE sticks from Bell Canada:

    Sierra U330
    Novatel U679

    Or there is no hope and I should look into something like Tomato or other open-source router firmwares?


  • Rebel Alliance Developer Netgate

    I haven't heard of anyone trying either one of those.

    The list we have here:

    Lists all of those reported to work - that doesn't mean others don't work, it just means we don't know.

    It's possible you could plug it in and u3g will pick it up and like it, and it's possible it wouldn't work at all.

    Hopefully someone else has tried one of those devices specifically and can offer a more accurate answer. And if they someone else does, we can document that on the wiki for others.

  • Hi Jimp,

    There is a Sierra 305U in the list you mentioned. I am getting this when I attach the LTE stick.

    ugen1.2: <sierra wireless,="" incorporated=""> at usbus1
    umass0: <sierra 0="" 2="" wireless,="" incorporated="" aircard="" 330u,="" class="" 0,="" rev="" 2.00="" 0.06,="" addr=""> on usbus1
    (probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
    (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
    (probe0:umass-sim0:0:0:0): SCSI status: Check Condition
    (probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present)
    da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
    da0: <swi sd="" card="" 2.31=""> Removable Direct Access SCSI-2 device 
    da0: 40.000MB/s transfers
    da0: Attempt to query device size failed: NOT READY, Medium not present</swi></sierra></sierra>

    What are some of the other shell commands I can run that would get me more info on this LTE stick. I believe the card should be unmounted and then PPP connection should be created. But not sure where that config goes.


  • Rebel Alliance Developer Netgate


    cdcontrol eject /dev/da0

    or maybe:

    camcontrol eject /dev/da0

    There are a few other posts here where people have tried working around it when sticks show up as a "cd" type drive.

  • Netgate Administrator

    da0 is almost certainly the built in micro SD card reader. If you don't have a card in there then it shows 'media not present' correctly.
    Those look like the correct log entries. Check /dev/ before and after connecting it to see what other devices are created.


  • Thanks guys. So, you are saying I should see another device for LTE functionality? And if I find it what should be my next step? Unit doesn't show as a new interface right now under Interface > Assign

  • Rebel Alliance Developer Netgate

    You should see messages from u3g when it attaches if it detects a supported 3g/4g device.

  • I will test to see if U3G shows up or not but should I load any drivers or uncomment anything in configs or reboot pfSense?

    Here the Linux drivers for Sierra which works fine for Ubuntu:

    I don't see why same can't be used on FreeBSD. No mentioned of FreeBSD there but only Linux. What do you think?


  • I only get a /dev/ugen1.2 and following are it's full descriptions:

    [b]# usbconfig[/b]
    ugen0.1: <ohci root="" hub="" amd=""> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
    ugen1.1: <ehci root="" hub="" amd=""> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
    ugen1.2: <aircard 330u="" sierra="" wireless,="" incorporated=""> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
    [b]# usbconfig -d 1.2 dump_device_desc[/b]
    ugen1.2: <aircard 330u="" sierra="" wireless,="" incorporated=""> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON</aircard></aircard></ehci></ohci>

    Seems to be supported in FreeBSD 9.0 and 8.0 but instructions are not clear: http://forums.freebsd.org/showthread.php?t=24719

    What can I do next to check further?  ;)

  • This stick is supported as noted here: http://technotation.com/category/freebsd-and-mobile-broadband/

    I don't see the u3g driver loaded in pfSense. How can one load that? Also the tutorial above requires kernel rebuilding. Is that something I am allowed to do on pfSense?


  • Netgate Administrator

    u3g is included already. If the modem is supported you don't need to do anything. What you would normally expect to see is a new device (often several) appear in /dev when the modem is connected and recognised. I have seen modems where the logs are confusing leading people (me) to believe it wasn't supported when in was in fact ready to go. Usually 3G modems are supported via a serial device, e.g. /dev/cuaU0. The capital 'U' indicates a USB connected device. However many newer 4G (and some 3G) devices appear as an ethernet device when connected. The pfSense gui is not really setup to deal with those.


  • Stephen, thanks for the info. The developmental version 2.1 actually detects it and here is what I have:

    [2.1-BETA0][root@devpfsense.localdomain]/dev(27): ls cuaU*
    cuaU0.0      cuaU0.1      cuaU0.2      cuaU0.3      cuaU0.4      cuaU0.5
    cuaU0.0.init cuaU0.1.init cuaU0.2.init cuaU0.3.init cuaU0.4.init cuaU0.5.init
    cuaU0.0.lock cuaU0.1.lock cuaU0.2.lock cuaU0.3.lock cuaU0.4.lock cuaU0.5.lock

    I also see usbus0(0) and usbus1(0) in interfaces now. So, if I can't use the GUI to do the configs. What file should I modify to do the configs?

    Using the GUI I got all the right info but no ip is assigned to me:

    ppp0: flags=88d1 <up,pointopoint,running,noarp,simplex,multicast>metric 0 mtu 1500
            inet6 fe80::20d:b9ff:fe27:d5ec%ppp0 prefixlen 64 scopeid 0xa 
            nd6 options=3<performnud,accept_rtadv></performnud,accept_rtadv></up,pointopoint,running,noarp,simplex,multicast>

    Also, how can I use cdconrtol to eject ugen1.2 which is not needed from the link I posted above - http://technotation.com/category/freebsd-and-mobile-broadband/:

    I am stuck right here as these paths don't exist:
    Now navigate to /usr/src/sys/dev/usb/serial and open the “u3g.c” file with vi or your favourite editor. Search the file for vendor and add it with the other HP products
    Add a line that references to the model we want to add support for:



  • Netgate Administrator


    I also see usbus0(0) and usbus1(0) in interfaces now. So, if I can't use the GUI to do the configs. What file should I modify to do the configs?

    If you are seeing serial ports you can probably use that to connect in the usual way via the gui config page. Are you seeing usbus0/1 as new NICs?
    The only time I've ever tried to deal with a newer type device it appeared as cdce(4) device. To make that happen it had to be mode-switched to ethernet mode.


    Also, how can I use cdcontrol to eject ugen1.2 which is not needed from the link I posted above -

    The cdcontrol tool is only useful for modems which appear first as a CD-ROM drive an do not present any serial ports. In some cases these can be switched by simply ejecting the virtual drive.

    Since your modem is already presenting serial ports you may simply be using the wrong one (often modems use a separate serial port for diagnostics only) or you have wrong AT command incantation for your network.


  • pfSense 2.1 Dev version picks up Sierra 330U right away and all works fine and connects. But stable 2.0.1 doesn't do the same.

    I have another issue now though. Once I add the PPP connection and interface and all works fine, if I reboot then the system freezes at boot. I am assuming it has to do with loader.conf.local. I had similar issues with Wifi dongles and was solved by adding: runfw_load="YES" to /boot/loader.conf.local.

    Is there such a thing as u3g_load="yes" that I can add as well to fix this?


  • @torontob:

    if I reboot then the system freezes at boot.

    How "frozen". If you tap the Caps Lock or Num Lock key on your keyboard does the corresponding LED change state? What response do you get if you type control-T? What are the last few lines displayed on the console?


    I had similar issues with Wifi dongles and was solved by adding: runfw_load="YES" to /boot/loader.conf.local.

    That loads the firmware for run devices into memory at boot time so its available when the run driver requests it at boot time before the file system is mounted. I have seen reports of the run device being unusable if it was in the system at boot time because the driver couldn't find the firmware file. I don't recall seeing other reports that the unavailability of the firmware file to the driver caused a system freeze.


    Is there such a thing as u3g_load="yes" that I can add as well to fix this?

    There is no need to add such a line because the u3g driver is already built into the kernel. I suspect that at this stage there is no evidence to suggest such a line would fix the problem you are reporting but I'm open to the possibility - hence my earlier request for more information.

  • Netgate Administrator

    You might try adding a delay at boot if the modem requires some time before it can be talked to. As in:
    Of course that would depend on where in the boot process it stops which you haven't said.


  • pfSense stable 2.0.1 wont pick up your 330U as the kernel does not support it by default.
    you would need to build a custom pfImage image with added support for the device. 
    have a look at http://technotation.com i created a document on how to add support for whatever is not recognized by default.
    you don't need to worry about "ejecting" the mass storage, it should be automatically done by the driver.

  • Steve, Wallabybob - I will post that info once I get this cheap serial-to-usb cable working again or get a chance to get a new one in next couple days. Thanks for the great feedback. I think adding a delay should fix the issue.

    Humand - Look who is here :-) I actually followed your guide through the process and help of Steve. Thanks a lot for weighing in. The part that I got stuck with your blog post is modification of /usr/src/sys/dev/usb/serial/u3g.c which doesn't exist on pfSense 2.0x and I am not sure about the recompilation of kernal either.

  • you wont find those 2 files (u3g.c or usbdevs) in a regular pfSense image. a regular image has a pre-compiled kernel, kernel source files not included.  the only way to have access to those files is to compile pfSense from source, process which requires a regular FreeBSD install and source code downloaded (for both FreeBSD and pfSense). read that post, it tells you how to do it.

Log in to reply