MiFi USB620L Novatel Wireless

Has anyone attempted to use this Verizon Wireless 4G Lte device?

kernel: ugen3.3: <Novatel Wireless> at usbus3
devd: Executing 'logger Unknown USB device: vendor 0x1410 product 0x9020 bus uhub3'
root: Unknown USB device: vendor 0x1410 product 0x9020 bus uhub3

Not sure if it's supported but try loading umodem(4) before plugging the device in. If you can get a tty you can use PPP to basically dial-up (calling a special number, usually *99#).
Not sure if it's supported but try loading umodem(4) before plugging the device in. If you can get a tty you can use PPP to basically dial-up (calling a special number, usually *99#).

Thank you SirDice, I get the same messages in /var/log/message, so I don't think it is supported either. I even tried to load u3g prior to plugging it in, with negative results.
First thing I would do is add the VID and PID to usbdevs and u3g.c and recompile.

I would almost bet it shows up as a ue0 device. You would enable dhcp on it to connect.

This is old but valid. Your device will be slightly different with single usb interface.
Ignore the PPP section. Your device provides an ethernet connection.
I used this to simply show how to add an unsupported u3g device to FreeBSD.
Some other things after recognized. Goto the mifi devices menu and check settings. Turn on tethering mode if found.
Also some of these devices have a small USB mass storage device that shows up with windows drivers. You will need to disable or eject that.
Some Mifi menus have that setting named CD-Rom mode (partition with drivers) in the settings. Turn that off.
The nice thing is it appears both modes use the same PID(0x9020) so I would start there by adding that and see what it does.

I do note the CDC interface is listed as optional. Either mode should work.
Sorry, I thought this was a mifi device.
You will have multiple cuaU0.x entries when supported by u3g. AT command channel, gps, data channel. Just like the tutorial.
Sometimes you can flash different firmware to these devices to switch modes too. That optional CDC interface is nothing more than a firmware flash, if you can find the right firmware.

So the gist here is make a copy of your Generic kernconf per the manual and make copies of usbdevs and u3g.c before editing. That way you can easily generate patches if it works. Good for you and usable upstream if you file a PR for adding.
Phishfry, you were correct, it is a Mifi device. I was able to get it working by compiling a new kernel after adding entries in the usbdev and u3g.c files as the article suggested, I wonder if those could be added to the kernel source so future users could benefit.


product NOVATEL USB620L 0x9020 Novatel MiFi USB620L



Thank you for the pointers guys. Sorry I didn't get the patches, I didn't save the originals.
Phishfry, I did get in online and used it. There was a little quirk where I had to run dhclient ue0 after it booted even though I had placed an entry in /etc/rc.conf for the ue0 interface to use dhcp. Beyond that, it worked like a charm, thanks again for the article. In my initial search I came across the same article, but chose not to pursue it prior to starting this thread, I am glad you pointed back in that direction again.
I think the problem with the rc.conf entry could be that starts too soon to catch the modem. The ue0 interface may not initialize in time.
You could add a delay to test that theory.
I attempted the same fix on another 10.3 box, but this was a "STABLE" source tree instead of a "RELEASE" source tree and the u3g driver failed to detect the device.

10.3-STABLE FreeBSD 10.3-STABLE #0 r310305M: Mon Dec 19 20:28:06 EST 2016 root@something.com:/usr/obj/usr/src/sys/GENERIC amd64

ugen0.5: <Novatel Wireless MiFi USB620L> at usbus0
Dec 19 21:10:27 something root: Unknown USB device: vendor 0x1410 product 0x9020 bus uhub2

I verified that I only modified usbdevs and u3g.c in the same way that I did on the 10.3-RELEASE box, but I don't understand why it wouldn't detect it on the 10.3-STABLE box after I compiled the kernel. I just updated the sources from the svn repository shortly before modifying and compiling the kernel as well.

Call me puzzled.
Double check your copied GENERIC kernconf. Make sure you changed the name inside the file..Use uname to check you are using the modified kernel.
usbdevs & u3g.c- Make sure you used zero's and not O's. Make sure PID does not already exist in -Stable.
I definitely used zeros, I had to triple check that myself as well...just to make sure.

I let make buildkernel do it's thing from the results of the svn update command, so it used the amd64 GENERIC kernconf. What would I be checking in /usr/src/sys/amd64/conf/GENERIC? I did see a usb device reference in there, but I am assuming I won't see anything else related to the specifics of any usb devices.

In the usbdevs file there are now a total of 4 0x9020 product entries including the one I added.

[FONT=Courier New]product NOVATECH NV902 0x9020 NovaTec NV-902W
product NOVATEL USB620L 0x9020 Novatel MiFi USB620L
product RALINK RT2570_3 0x9020 RT2500USB Wireless Adapter
product SEALEVEL 2106 0x9020 FTDI compatible adapter[/FONT]

Since I saw more than one in the 10.3-RELEASE usbdevs file, I assumed it was ok to have more than one product id since it was a different vendor. Where else could I check for that PID?

The uname string I mentioned above suggest that it was using the new compiled kernel, based on today's date. This definitely has me scratching my head.
oh ok...I didn't modify GENERIC at all, I like to keep GENERIC so freebsd-update works in the future. Thanks for spitballing with me.
I was able to get the device working on the newer source tree. I had to install the usb_modeswitch package for the modem to work. I also created a service to have it run at startup should the power go out for the machine. If using this service script, you need to add u620lmodeswitch_enable="YES" in /etc/rc.conf

The below file should be placed in /etc/rc.d with permissions of 555

# PROVIDE: utility
# KEYWORD: shutdown

. /etc/rc.subr


#/usr/local/sbin/usb_modeswitch -v 0x1410 -p 0x9020 -u 2
# for Enterprise mode /usr/local/sbin/usb_modeswitch -v 0x1410 -p 9020 -u 4


        /usr/local/sbin/usb_modeswitch -v 0x1410 -p 0x9020 -u 2

load_rc_config $name

# SET THEM IN THE /etc/rc.conf FILE

run_rc_command "$1"
I was going to mention these devices have several protocols available. CDCE, MBIM and QMI to name a few. I wonder what detects them differently between release and stable. Something nudges the interface to get a desired protocol. Stable is a testing version so it could be something related to that.
I thought I saw something in the u3g man page that mentioned it tries to change the mode, but don't quote me. I still see nuances if I do init 6 instead of powering off and back on, so I don't think it is a perfect setup by any means. I miss my FIOS. Now if I could just get one of those grandfathered ulimited data plans from Verizon, then maybe I would be ok, my kids eat up the data with their youtube videos.