Build pfSense for 3G-4G Sierra modem support



  • Hi,

    I am still trying to have success with Sierra Modem 3G-4G (MC8801, MC7710 and MC7304) trough the Direct IP mode or with PPP.
    I am using an APU1C from PC Engines.

    It seems that the Sierra modem driver is built-in since FreeBSD 9.0.
    I need to know if the 2.2 ALPHA has the correct option in the Kernel to support Sierra Direct IP or to compile my own FreeBSD kernel. Maybe to build a custom Kernel on pfSense 2.1.x.

    Can i use an APU1C board to build a specific pfSense build with my own settings ?
    If yes what could be the quick step to setup the environnement to build 2.2 ALPHA and 2.1.x ?

    Many thanks in advance.

    Regards

    Nicolas

    P.S: of course when Sierra modem will work i will provide updated informations (setup, config, tips..) for the 3G-4G wiki, how to..


  • Netgate Administrator

    A separate driver or built into u3g?

    Edit: Ah I see:
    https://redmine.pfsense.org/issues/3640

    No need to buikd the kernel just kldload the usie.ko module from FreeBSD 10.

    Steve



  • If i could avoid to rebuild the kernel and just add a module to an existing pfSense Kernel it's perfect !
    Both are fine in this case.
    Is it possible ?

    I spent already a lot of time with pfSense to try to be successful with Sierra modem….
    I really want to keep pfSense as my main System !!!


  • Netgate Administrator

    Oops, edit overlap!



  • If I load the kernel module into pfSense 2.2 ALPHA i should be able to see the interface ethernet trough USB. How pfSense will recognize it ? (as an ethernet interface or 3G modem).
    I am going to try and i let you know the result.

    May i use any usie.ko module (just compile for amd64) ?
    This module is present on the current 2.2 ALPHA ?


  • Netgate Administrator

    Not sure how it will recognise it to honest. The thread you linked to in the bug report seemed to be quite infomratibe though, I'll read through it.

    Yes you need to use the 64bit module.

    I don't know if it's included in 2.2 snapshots. I assumed you had tried one and it hadn't attached.

    More of a problem might be that more than one driver attempt to attach, say u3g and usie. Then it's pot luck which one gets parsed first.

    Steve



  • Problem :

    • u3g is already loaded
    • usie is not loaded and not available

    [2.2-ALPHA][admin@signac.airboum.net]/root(3): kldload u3g
    kldload: can't load u3g: module already loaded or in kernel
    [2.2-ALPHA][admin@signac.airboum.net]/root(4): kldload usie
    kldload: can't load usie: No such file or directory

    Can i use the module from another device ?
    Or could you attach it to your answer ?



  • How to add for the next snapshot the usie.ko module to be included in the 2.2 ALPHA ?


  • Netgate Administrator

    Get it from a FreeBSD 10 install or a live CD etc. I don't have an install running here at the moment so I can't get it for you.
    I don't think you will get it included in 2.2 until you've at least proved it works and has some value.

    The u3g driver may not attach to the same USB device, similar hardware to this appears as several devices when it's connected. Reading that FreeBSD forum thread it appears as a network interface when it's connected so u3g wouldn't work with that part anyway. It may not be a problem.

    There is the additional problem of pfSense not really liking USB NICs and especially not ones that disappear. If the modem goes into standby or gets disconnected then pfSense has no good way of dealing with the removal of one of its interfaces.

    Steve



  • I will try tonight and come back with my result…



  • First result :
    It seems that the latest snapshot 2.2 ALPHA has u3g built-in to the kernel and the usie.ko is missing.
    Could we add like u3g the usie.ko module into the kernel on the next snapshot ?

    Thanks in advance.

    Regards

    Nicolas



  • @stephenw10:

    There is the additional problem of pfSense not really liking USB NICs and especially not ones that disappear. If the modem goes into standby or gets disconnected then pfSense has no good way of dealing with the removal of one of its interfaces.

    Steve

    Why do you say that?
    It is not true, surely can be corner cases to be fixed though it is managed.


  • Netgate Administrator

    Well it may have been fixed now I admit my experience was some time ago (like years!  ;)) However I was experimenting with a cdce device that appears as a network interface. I connected it, assigned it, all went well until the device went into standby effectively removing the NIC. pfSense became unusable until I forced a reboot at which point it understandably dumped me at the assign interfaces screen.
    As you say it's a corner case so you don't see me complaining, just something to be aware of. I guess as more and more 3g/4g modems switch to an 'ethernet' mode it may become more of an issue.

    Steve



  • Yeah just report it if it has not already been done.

    That way it can be fixed to work correctly :)


  • Netgate Administrator

    I figured 'My Sharp Zaurus doesn't work as a NIC' wouldn't get much traction on redmine.  ;)
    It seems like it would be quite a lot of work to allow for an interface that may disappear completely at any time.

    Back on topic. nscheffer, did you try copying the usie.ko modeule from a FreeBSD 10 box?

    Steve



  • Stephenw10,

    Yes, I install a fresh FreeBSD on my Mac with VMWare.
    I was able to copy the usie.ko module and associated seen with kldstat but it seems that the u3g is already built into the kernel and when i load the usie.ko manually i don't see the interface in the log.
    I will try again tonight and this week-end.
    Where i need to specify to load at boot the usie.ko (loader.conf or loader.conf.locale) ?
    I suppose i need to add usie_load="YES" ?

    Nicolas



  • @stephenw10:

    I figured 'My Sharp Zaurus doesn't work as a NIC' wouldn't get much traction on redmine.  ;)
    It seems like it would be quite a lot of work to allow for an interface that may disappear completely at any time.

    Steve

    Surely that is teh same as openvpn or other ppp things no?


  • Netgate Administrator

    You tell me Ermal!  ;)
    From my uninformed point of view an interface like ppp or vpn has a parent interface which is always present. A USB NIC can be completely removed, and a separately powered USB interface like cdce can behave in other unusual ways.

    Steve



  • Working working working working YES YES YES
    With the latest snapshot !

    Thanks a lot pfSense Team and all…


  • Netgate Administrator

    Nice.  :)
    So usie is now included? And is it assigned as an intreface like a NIC?
    With reference to my above exchange with Ermal, what happens if you turn it off or unplug whilst it's assigned?

    Steve



  • My huawei E382-u12 re-plug very good but with another modem port.

    When pfsense start is cuaU0.x, when i re-plug change to cuaU1.x. Three things can happen, or i change modem port in the interface or i  re-plug again and change back to cuaU0.x or i reboot pfsense. If i change modem port on interface, next restart i have to change back to cuaU0.x.



  • Steve,

    In fact the previous 2.2 ALPHA was crashing when trying to add a ppp interface, the latest not.
    I just re-install from scratch the pfSense 2.2 ALPHA (today latest release) and try to add a ppp interface and got the modem connected immediately.

    I am not using u3g and the usie ethernet interface but the ppp daemon.
    The benefit is to have the card recognize as a 3G modem with the dial facility and not an ethernet interface.
    I will do some test to see if there is a ppp bottleneck with 3G+ (up to 42Mbs) and 4G-LTE.
    In // i also would like to have the Direct IP mode (usie.ko) working with pfSense.

    Thanks again for your help.

    Regards

    Nicolas



  • To configure my modem (ppp) i don't use the PPPs advanced settings. For any reason each time o go to interfaces_ppps_edit.php my pen is restarted, i see that in console, and was identified with another port, instead of cuaU0.x changed to cuaU1.x like you are re-plug the pen. I ended using the config in Interface name "interfaces.php?if=opt1" only. This is on the initial 2.2 snaps now i don't know i have to test it.


Log in to reply