Linux Blackberry Tethering
A first impression of tethering Kubuntu to a Verizon Wireless Blackberry Storm
Overview
I acquired a Blackberry Storm 9530 from Verizon Wireless in the hopes of having internet on the phone as well as on a laptop by tethering to the phone. These are my experiences so far.
The Phone
The phone seems reasonably user friendly, my biggest pet peeve is that it's sluggish, but considering that it's all Java, that is to be expected. I do miss cursor keys. It took me a while to get email working, as i simply wanted an IMAP/SSL client to access my email. I ended up using Tiggit which worked well after figuring out the correct settings.
Tethering
Tethering turned out to be relatively simple to get working using Bluetooth. I followed Blackberry Storm Tethering in Ubuntu Linux. With the exception of bluez-pin no longer being needed this worked out pretty well.
Performance
This is where i started running into problems. I plan on using this setup for running VNC sessions, which consume ~20kB+. The rate i was getting was more like 10-15kB. This was unacceptable. I noticed that downloading large files like ISO images yielded bandwidth in the roam of 80-120kB. I decided to try Verizons VZAccess manager with USB from a Windows VM to see if there was a performance difference as it was pointed out that Bluetooth supposedly adds lag. Indeed it was a bit perkier, but still not acceptable. Now remember this was with a full signal, not 1 1/2 bars.
My VNC connection goes through my house to my work using OpenVPN, so there is a bit of contention there, but with 768kb up this should not matter. So i decided to try out my company VPN to go in directly, and lord and behold things improved considerably. Now running it with USB tethering instead of Bluetooth made this workable.
So my theory is that wireless connections (3G) get sliced a lot and make up for that with short large bursts. If the connection doesn't have the bandwidth to handle the bursts, things just get dog slow :(
USB Tethering
As i noted above USB tethering was a response improvement over Bluetooth, with the price of having to deal with a cable. But i was not about to run Windows for this. Fortunately there is Netdirects Barry. It did take a couple of hours to build, but after carefully checking that all the dependencies are installed, i managed to get things build.
Their release build 0.14 did not work with my Blackberry Storm, it kept insisting that the Storm was password protected, which it was not. Checking out and building the git version remedied that.
One thing i did notice was that the UI and Opensync components failed because they couldn't find libbarry-0.pc. Installing without opensync and gui followed by:
git-clean -f ./buildgen.sh ./configure --enable-gui --enable-opensync-plugin make
Ended up giving me this:
./configure: line 16816: syntax error near unexpected token `-fvisibility=hidden,' ./configure: line 16816: `AX_C_CHECK_FLAG(-fvisibility=hidden, , ,'
Since i don't really care about syncing and gui, i decided to punt on that. Having the library installed allowed me to dial up the same way i dial up with Bluetooth. With ppp/barry-verizon from the build directory updated with my data and copied to /etc/ppp/peers/
i simply run
pon barry-verizon
and i'm up and running. Now i just need to make sure that running 2 separate VPNs don't trip over each other, particularly in the routing table :)
Media Card Mounting
After following netdirects "Configure udev to Run bcharge Automatically" instructions i found that the BLACKBERRY1 and BLACKBERRY2 drives no longer showed up. When tailing /var/log/messages it reported
new high speed USB device using ehci_hcd and address 9 configuration #1 chosen from 1 choice SCSI emulation for USB Mass Storage devices usbfs: interface 1 claimed by usb-storage while 'bcharge' sets config #1 reset high speed USB device using ehci_hcd and address 9
To keep bcharge from snatching my drive mounts, i decided to not use these below:
/etc/modprobe.d/blacklist-berry_charge /etc/udev/rules.d/10-blackberry.rules
It's not clear to me at the moment whether my BB charges at 100mA or 500mA. After running in USB tethered mode for a couple of hours, it seems charging is sufficient to keep the battery full.
Conclusion
So when i need a speedier response and am sitting down at a table, i'll use the USB method. Whenever i don't absolutely need the speed, i'll stick with Bluetooth in favor of not tripping over wires.