Globe Visibility on Debian GNU/Linux
Globe Telecoms recently launched their unlimited Internet offering called Visibility. Commercially it's offered as part of a number of plans, including a PhP2,500/month plan that comes with unlimited 3.5G/EDGE/GPRS, Wi-Fi in Wiz hotspots and dial-up, or a PhP1,700/month plan for unlimited 3.5G/EDGE/GPRS. This basically provides Internet access anywhere in the country, although neither Globe Visibility nor PLDT WeRoam work in areas without cell coverage or in areas with GSM-only coverage using cell sites connected to their infrastructure using VSAT. The latter is rare, and usually means really far flung areas.
Thanks to a project I'm doing for Pilipinas Shell, I have a test Globe Visibility kit, which includes a Sony Ericsson GC85 PCMCIA EDGE/GPRS modem. It was a no-brainer getting Globe Visibility working on my mom's Fujitsu Lifebook P7010 running Microsoft Windows XP Home, using the Sony Ericsson Wireless Manager v3.4.1.1518.
Getting the service to work reliably on my P7010 running Debian GNU/Linux Sarge with Linux 2.6.16 has been an "80-20 struggle", though. Initially, it's a pretty straightforward affair. The GC85 is detected by Linux as a standard PCMCIA serial adapter, and is assigned /dev/ttyS2. Getting wvdial (or GNOME PPP, which uses wvdial underneath) to support this is equally straightforward. The relevant configuration options are as follows:
- Modem: /dev/ttyS2
- Baud: 230400
- Init1: AT+CFUN=1,1
- Init2: ATZ
- Init3: AT+CGQREQ=1,0,0,0,0,0
- Init4: AT+CGQMIN=1,0,0,0,0,0
- Init5: AT+CGDCONT=1,"IP","internet.globe.com.ph","",0,0
- Phone: *99***1#
- Username: globe
- Password: globe
The remaining 20% of the job has been rather frustrating, though. Here are some of the problems I ran into, and the ways around them that I've found so far:
- LCP Echo: By default, the GNU/Linux pppd sends LCP Echo packets every 30 seconds, and terminates the link when no echo-reply is received after four tries. Since most GPRS services don't send a proper echo-reply, that's exactly two minutes of online time before the pppd disconnects the link. Fixing this needs a system-wide override by modifying /etc/ppp/options, since wvdial doesn't have an option to override this. People who use pon/poff can revise the appropriate file in /etc/ppp/peers Some sites recommend disabling this completely by setting lcp-echo-failure and lcp-echo-interval to 0, but I've found that it works better to keep lcp-echo-interval at the default value of 30, but setting lcp-echo-failure to 0.
- TCP Congestion: With the two-minute limitation out of the way, the next problem I ran into was getting booted out by the provider (Globe, in this case) during spikes of TCP session initiation. This was easy to trigger with my multitasking habits like using a bookmark of five tabs for my favorite tech news sites. Interestingly, Postfix with its default concurrency level triggers this when it tries to send out queued mail, too. I seem to have fixed this by enabling Explicit Congestion Notification (ECN) in the Linux kernel. Most modern Linux kernels have ECN support by default, but this is usually not enabled. This can be enabled by setting /proc/net/ipv4/tcp_ecn to 1, or by adding net/ipv4/tcp_ecn = 1 to /etc/sysctl.conf.
- Stalled Sessions: This is a problem that I haven't found a fix for, primarily because I can't find a way to reproduce it. Basically what happens is that the PPP session just stalls. No traffic goes through, but it isn't terminated, either. I haven't seen a pattern for this, so far. It doesn't seem to be caused by idle time, connection time, or bandwidth use. It doesn't seem to be signal strength, either, and is definitely not cell site handover since I'm stationary. I've Googled quite a bit, but haven't found any similar reports online, so more details will follow when I have more to report.
- Disconnection on First Attempt: The first connection attempt after the modem is connected (ie: right after bootup, or after you remove then reconnect the modem) always gets disconnected immediately after PPP is established. According to the logs, pppd received a TermReq packet from the Globe server, which is weird. Things work fine right after, so it's not a showstopper.
Overall, I'm pretty happy with the Globe Visibility service on both Microsoft Windows XP and Debian GNU/Linux, even in places where neither EDGE nor 3.5G are available, like the beach house where I'm at in Batangas. The Wireless Manager (unfortunately no similar client for GNU/Linux) reports three to four bars, and GPRS speeds go up to about 6KB/sec with latencies at around 1000ms. Areas like most of Metro Manila which have EDGE have actual throughput going up to about 12KB/sec, with 3.5G supposedly doing even much better for both latency and throughput.
Although nothing fantastic compared to today's broadband standards, this works pretty well for asynchronous tasks like email using POP3 and SMTP, or instant messaging. Web browsing is a tad sluggish, but with well-planned surfing habits, is more than just bearable. Remote server administration using SSH is painful, though, because of the latency penalty. VoIP will probably be even more sluggish, if it works at all.
As soon as I get back to Manila I plan to get a GlobeTrotter HSDPA unit from Globe to give it a spin. The GlobeTrotter HSDPA is one of two 3.5G/EDGE/GPRS modems that they provide. The other modem is the Huawei E620, which unfortunately doesn't seem to be supported by Linux (and definitely isn't supported by the vanilla 2.6.16 kernel that I use).
