I chose the RS Pro because it was the most powerful router that I could find (being a work project, I wasn’t pinching pennies). The novatel MC760 supposedly had good linux support so I was crossing my fingers and hoping that the setup would work for me. Virgin Mobile’s no contract was attractive for development. Also, the MC760 is supported on the Sprint and Verizon networks, so when this goes into production, we could easily (theoretically :-P) switch over to one of those ISPs if they proved to be more reliable or cheaper with a contract.

Pre-requisites:You have to activate your modem first on a windows or OS X machine. It uses some web interface and you put in some numbers that is stored into the modem. Do that first.

Let me highlight a few things about the config files… #777, that’s the Sprint, Verizon, and Virgin Mobile dial in number. The username and password is useless, you can put anything in there. Make sure your /dev/ttyUSB* device is the correct device. The persist command will make pppd try indefinitely to reconnect.

After setting the config files, try pppd call virgin. Check logread to see if the connection worked. If it did, you should see:

Sharing the internet with the other computers:
If you try pinging 4.2.2.2 from a computer connected to the LAN ports, you’ll notice that NAT is not working and you get a nasty “Destination Net Unreachable”. This is because we haven’t configured this ppp0 device to work with openwrt’s UCI so iptables does not know to NAT packets to the ppp0 device.

Let’s make ppp0 the default WAN device.

Note: If you want to do load balancing and more complex stuff, you’re on your own.. :-P But if you figure it out, please let me know. I would be interested to know how you set it up.

/etc/config/network – make these changes:

#config interface wan
# option ifname eth0
# option proto dhcp

config interface wan
option ifname ppp0
option proto none

After this, run the following:

ifup wan
#Unfortunately, this wipes out the ip address info for the ppp0 device, so you will need to reset your ppp0 device.
kill `pidof pppd`
pppd call virgin

DNS Settings:

If you didn’t notice, DNS was down. You can fix that by going to /etc/config/dhcp and changing resolvfile to option resolvfile ‘/tmp/resolv.conf.ppp’.

There are many ways to start the connection on boot, some make /etc/init.d/ scripts, or bind it to when the usb modem becomes active (in /etc/hotplug.d/usb) or use openwrt network start scripts (we sorta can’t since openwrt isn’t managing our connection). I am paranoid so I made a cronjob that checks every minute if the modem is connected. I also bound this same script to the usb modem inserted hook.

Now you should be able to do anything to your router and if it turns back on, it should connect to the internet by itself. I tried rebooting, pulling the power supply, pulling out and plugging back in the USB modem… as long as it is on and the usb modem is connected it works! I hope this works for you too!

If you’re wondering (like I did), which version to use (jffs2, squashfs, factory, or sysupgrade?) I found the right one to use is the squashfs version (because of this) and the factory version. The sysupgrade version is for you to upload into /tmp and use the sysupgrade command. Unfortunately, that doesn’t work on the kamikaze version so you’ll have to tftp it at least once. Make sure you select the factory version if you’re doing tftp!! I haven’t tried, but the sysupgrade version could brick your router if you don’t install it from sysupgrade.

The latest version at the time of this posting is backfire 10.03.1-rc3: