128 kbit PCMCIA Ricochet for Linux 2.2/2.4


I recently purchased a Novatel Merlin for Ricochet wireless modem. This PCMCIA device allows me to connect to the Internet through the 128 kbit/sec Ricochet network which has been deployed in many major metropolitan areas, including New York City.

Novatel and my ISP, Wireless Web Connect, do not officially support the Merlin for Ricochet on Linux. In fact, with an unmodified 2.2 or 2.4 kernel (pre-2.4.4), it doesn't work properly. That is because it has a big, fast UART. If you are running a Linux kernel with a version number lower than 2.4.4, please check that link and apply the necessary patch before you go any further. If you don't want to apply the patch or upgrade to a recent 2.4 kernel, can try these big, fast UART workarounds, but be forewarned that you won't get anywhere near the proper level of performance. For example, the highest raw PPP performance I was able to achieve with the workarounds was around 28 kbits/sec. The highest raw PPP performance I have seen with the patch is around 256 kbits/sec.

In order to verify that your kernel supports big, fast UARTs, or that you have properly implemented the workarounds, insert your Novatel Merlin for Ricochet into a PCMCIA slot. The command


# cardctl ident

should show the Novatel Wireless device, identifying it as an NRM6842. Running


# lsmod

should indicate that a module called "serial_cs" has been installed. Furthermore, /var/log/messages should indicate which serial device has been connected to the NRM6842 and tell you which tty it is using. If you run minicom or another terminal program on that serial port, you should be able to type AT commands.

ATS300?

will give you general information about the modem.

ATS?!

will give you the list of all Ricochet specific S registers.

This last AT command is very useful because it causes the modem to produce more than 512 bytes of output, and it will fail in various ways if you don't have big, fast UART support. If you do not have a patched kernel, but you have properly implemented the workarounds, then the 8th line of output should begin

327:Sleep Moe

and the rest of that line should be shifted left by one character. There should be no pauses during the command. If there is a pause after "Sleep Mo," then you probably don't have the low_latency option set. If you see

327:Sleep Mode

with no pauses, then your kernel properly supports big, fast UARTs. Note that with the NRM6842, you don't ever need to set the baud rate. In fact, if you are using a kernel with big, fast UART support, then you don't need to set any serial parameters at all.

Once you have your UART working properly, you need to set up PPP. I am using pppd version 2.4.0, and I recommend that you upgrade if you are not already using it. However, if you are using Linux 2.2, I don't think there should be any problem using a slightly older version of pppd.

The Ricochet network uses ordinary PPP with PAP authentiation. While the old modems reportedly did not properly support Van Jacobson compression and required the use of the novj option to pppd, the Merlin for Ricochet has no problem with it. Novatel and your ISP may tell you that you need to set the novj option. You don't.

Since my ISP is Wireless Web Connect, I store my pppd options in a file called /etc/ppp/peers/wwc. I connect by typing "pppd call wwc." Here is by pppd options file:


/dev/modem
debug
crtscts
name myname
remotename wwc
noauth
noipdefault
defaultroute
connect '/usr/sbin/chat -v -f /etc/chatscripts/wwc'

You should have been given a username and password when you signed up with your ISP. Substitute your username where it says myname above. The PPP daemon will use this value when it looks up your password in the pap-secrets file (see below). Since the NRM6842 does not care what baud rate you set it to, there is no point putting a baud rate setting in your options file. Note also that it is not necessary to reduce the size of your MRU and MTU. The Merlin for Ricochet works properly with the MRU and MTU set at their maximum (and default) values of 1500. (Note: If you are having trouble, see if an MRU/MTU of 1460 helps. I've seen rare, intermittent problems cured in this way, but I have made no efforts to debug them. Please let me know if you encounter something like this).

In addition to this, you need a /etc/ppp/pap-secrets file which looks something like this:


myname	wwc		password

Substitute your username where it says myname and your password where it says password.

Finally, you will need to install the chat script referenced in the pppd peers file. Place it in /etc/chatscripts/wwc. Mine looks like this:


'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'' 'ATZ'
'OK' 'ATDT3333'
'CONNECT' ''
'TIMEOUT' 15
'~--' ''

This is just the standard ppp chat script for an ordinary serial modem, with the exception of the magic Ricochet telephone number -- 3333. Yours may be different, but your ISP should have given it to you in any event.

Once you have set up these files, you should be able to type:


# pppd call wwc
and be connected to your ISP. You can test your bandwidth with the speed test at www.bandwidthplace.com/speedtest . If you are still having difficulty, I would recommend trying it out under Windows first.


February 1, 2001, Gregory Pomerantz (special thanks to Alex Belits)