Sierra Wireless AirPrime EM7455 Support
Purchased a Dell EM7455 Sierrra Wireless AirPrime module and m.2 to USB kit to use as a backup WAN interface on latest stable PFSense. Currently I am using EasyTether as WAN but there is a lot of complication due to double NAT and EasyTether having to tunnel everything through ADB packets etc. So, I would like PFSense (FreeBSD underneath) to be able to interface directly with an LTE modem. I see threads where folks got MC73xx modules working but it's not clear if anyone has a working setup with MC/EM74xx modules. I've read a ton of thread with lots of different information on how FreeBSD would want to interface with these modules as well; does one use QMI or MBIM etc.
If any of you all could point me in the right direction with setting up the EM7455 with my local carrier (T-Mobile) as WAN for PFSense that would be most appreciated.
Running PFSense 2.3.2 with the latest patch on an HP T610 Plus thin client hardware with Intel Pro 1000 NICs.
FranciscoFranco last edited by
I don't believe that modem is supported by FreeBSD.
Neither the EM7455 nor MC7455. I really have not seen much in the way of new drivers for cellular modems in FreeBSD.
These new models use an Intel chipset whereas all the older Sierra's used Qualcomm.
Thanks for the reply! I am beginning to see this is the case (that FreeBSD doesn't have much in the way of modern, LTE modem support). That is a shame, but hopefully it will be remedied in the future (OpenBSD has a "umb" device type for use with its ifconfig which appears to be MBIM device friendly and tested with EM7455). ModemManager in Debain based Linux has a good deal of support for MBIM devices and I got my EM7455 working with that and also Windows 10 with generic Sierra drivers.
I wasn't able to get the card working properly with the Dell branded firmware and drivers so I changed VID/PID and am currently running it as a generic Sierra Wireless Inc. EM7455 in MBIM mode. Plus side of this is that it saved me about $40 (could only find the MC/EM7455 new for ~$140; found the Dell branded one for $100 on eBay).
Only thing I would disagree with in your statement is that older MC73xx used Intel, not Qualcomm. When digging around in the EM7455 and playing with drivers, they are all definitely Snapdragon based devices (Qualcomm). I wouldn't mind running the older MC73xx cards but I'm interested in in providing some level of future-proofing for a bit which makes LTE Cat. 6, USB 3.0, and additional bands (specifically band 12 for T-mobile) more appealing.
At this point I have a couple GL.iNet mini-routers, one of which I plan to re-purpose for use as a gateway/bridge that I can attach the EM7455 to. Looks like LEDE, Microtik, and even vanilla OpenWRT have some baked-in driver support for MC/EM7455 which should make it pretty easy to just hook up as WAN on one of my Intel NICs in the PFSense box. If I get it working soon, I will post some notes/instructions for others.
flight_22 last edited by
hazarjast, can you help me change the VID/PID? I'm using Windows 10 and I also have a Dell branded Sierra Wireless EM7455. I'm using a USB LTE adapter and the EM7455 shows up in the device manager but no matter what Sierra drivers I try to install the device always shows a exclamation point stating the device cannot start. I really need to flash the generic firmware onto the Dell EM7455 but can't figure out a way to do so. Any help you can provide on how and what you changed the VID/PID to would be greatly appreciated!
Apologies for the very late reply, life got busy. I imagine if you googled around a bit more you might have already found your solution so what I post below will make no difference but I will post it to my forum thread anyways for the benefit of others. Anywho, there's a couple methods floating around to convert the Dell branded EM7455 into a 'vanilla' sierra wireless model, here's the first:
Postby ipxon » Thu Dec 01, 2016 7:26 pm 1- Download driver from dell website. 2- Uncompress .exe (with 7zip). 3- enter to folder and edit Configuration.ini and set USBCOMP=8 (change 0 to 8 ). 4- execute .exe (It is in the same folder as the file Configuration.ini). 5- plug card em7455 and open Device administrator. You should see the DELL modem, open a find COM port. 6- Open AT Port (with Putty or other program) and excute this commands: AT!ENTERCND="A710" AT!USBPID=9071,9070 AT!USBVID=1199 AT!USBPRODUCT="EM7455" AT!PRIID="9904802","001.001","Generic-Laptop" AT!RESET 7- Install Sierra Wireless drivers. 8- Done :D Credits: baodo. Good Luck!
I think I tried that first but didn't have luck with the Dell .exe changing the USB composition for whatever reason (maybe because my laptop is a Thinkpad and .exe was looking at my BIOS to confirm it was Dell, I don't remember) so I changed the mode in Linux via a perl script found here: http://git.mork.no/?p=wwan.git;a=blob_plain;f=scripts/swi_setusbcomp.pl . You will need shareable perl and tiny perl packages installed to run that. I used a Ubuntu live disk on a spare flash drive to run it ('sudo perl swi_setusbcomp.pl –usbcomp=6'). You can change the mode to 6 (QMI) or 8 (MBIM) to expose the AT port for changing PID/VID of the device but I only had luck with mode 6 in Ubuntu because it appeared to need QMI for the next piece....
Once you have it in USB mode 6 you need to expose the usb serial port device for the AT port to connect to it. To do this you need to get the qcserial driver to load for the current Dell VID/PID which can be accomplished through this udev rule: https://github.com/fribergr/dw5811e/blob/master/99-dell5811e.rules . Once the udev rule is in place you should be able to run the following to get the AT serial port working:
sudo modprobe qcserial sudo echo 1 >/sys/bus/usb/devices/usb2/bConfigurationValue sudo echo "413c 81b6" > /sys/bus/usb-serial/drivers/qcserial/new_id
You should then see 3 'ttyUSB' devices show up under '/dev'. You might need to unplug and re-plug in the modem for the USB serial devices to show up (if all else fails, reboot and run the modeprobe and echo commands again, then for sure they should be there). From there you can use Screen or Minicom or whatever serial terminal emulator you prefer and connect to the AT serial port (connection speed of 115200). I believe it was 'ttyUSB1'. Type 'at' and if you get 'OK', you know you're connected to the correct port (type 'ate' to echo your keystrokes if they are not appearing as you type). From there you can proceed with the steps from the 'dell drivers' method I posted first (you will see I have changed a couple things at the bottom compared to the 'dell driver' method, I will explain the reason):
AT!ENTERCND="A710" AT!USBPID=9071,9070 AT!USBVID=1199 AT!PRIID="9904609","002.117","GENERIC" AT!IMAGE=0 AT!RESET Boot back into windows, install Sierra Wireless drivers from source.sierrawireless.com, and flash with "SWI9X30C_02.20.03.00_00_GENERIC_002.017_000" firmware (latest as of this posting).
The variations I have made on the 'dell driver' method vary in the 'PRIID' and 'IMAGE' commands along with my recommendation to flash the latest firmware. I have chosen that specific PRI ID as it matches the PRI Part Number, Revision, and Customer of the latest Sierra generic firmware (if you are flashing a different version or carrier specific firmware I suggest you update PRIID accordingly to avoid any PRI configuration mismatches). The IMAGE command I have added because I found with my Dell branded EM7455 there were a few different firmwares already loaded in the 4 available slots along with their various PRIs; this was very messy and caused me some headaches with configuration mismatches with PRI settings etc. 'IMAGE=0' avoids all of this by deleting all firmware/PRI from all slots. Thus, my last instruction is to flash the latest Sierra firmware after loading the generic drivers as there will be no firmware if you use available 'IMAGE=0' as I recommend. You will find that if you use this Linux method, after you perform the 'RESET' command, the modem will automatically be back in MBIM mode (as opposed tot he QMI mode before). This lets it work natively with Windows 8/10 since windows uses MBIM.