Tethering With Blackberry Pearl On Linux
YOU CAN FIND THE ORIGINAL HTML VERSION HERE: Tethering With Blackberry Pearl On Linux [Thibaut Colar's Home.] NOTE: If you are going to use this, you should save this page now, yo your laptop, cause when you are gonna need it, you probably won't have a connection
WARNING: This whole setup is sort of screwy, but hey it works ! WARNING: Tethering will cost you a lot of money unless you have an unlimited data plan. Some phone companies, forbid it unless you have a special plan, some other allow it but won't support it, some just plain disallow it.
I believe tethering should be allowed, but you should use that only as needed when on the road, users who use GB of data on a tether connection annoy me because 1) sooner or later the carrier will be blocked anyway, 2) if too many people do that, phone companies might block tethering unless you buy an Expensive plan !
You are not helping anybody if you do this, be reasonable and enjoy tethering when you really need it, ex: in a crunch on the road. Introduction
Ok, i spent a LOT
of time getting this dammed thing to work, but i did it !
Fisrt let me talk about the few options i tried:
- Barry: this project on source forge provides a synchronization and they started modem support but modem support does not work yet.
- XmBlackberry: This is the project that DOES work, however the site is very 'bare bone' and almost no documentation exists. On top of that the latest time they made a release was over a year ago and that release does not work with my BB. I was able to make it work with the live CVS version, though it was a pain to compile and get going. NOTE: I only managed to get tethering to work using BOTH Barry(to recognize the device properly) and XmBlackberry(modem support), so we will install both
I used Ubuntu Feisty Fawn (x86)for this doc, though same idea should work on other linux distros.
My device is a Blackberry Pearl (8100)
My Carrier is TMobile.
This works with the USB cable and not Bluetooth, i prefer the USB cable anyhow, it's faster and less chance to loose/forget my phone if tied to the laptop Installing XmBlackberry from sources
The main issues i had here are:
- XmBlackberry only works with the pearl with the CVS version.
- The CVS version of XMBlackBerry will only compile with openmotif2.3. 2.2 won't work !
- Debian does not have a packaged version of openmotif2.3 (the libmotif3 package is openmotif2.2)
If you use motif2.2 you will get errors like this:
undefined reference to `XmVaCreatePushButton'
So as a result of all that the first step is to install openmotif2.3 from sources. Prerequities WARNING: If you have never compiled form source on your machine before, you will want to install those packages first:
sudo apt-get install libc6-dev g++ gcc make build-essential
To compile/install all those things i had to install the following packages first. (The whole command is ONE LINE !)
sudo apt-get install libtool autoconf automake cvs libglib2.0-dev libxml2-dev libssl-dev libopensync0-dev libxt-dev x11proto-print-dev libxmu-dev libxft-dev libfreetype6-dev libXp-dev flex byacc
Openmotif would not compile because libfreetype-dev installed files not where openmotif expected them (freetype & freetype2 dir), to compile i add to do this: WARNING: not sure if that is a safe thing to do(probably OK), so you might want to revert this after (move back) after compiling openmotif.
cd /usr/include/ |
sudo mv freetype freetype-back
sudo mv freetype2/freetype/ .
I also had to do this, to get XmBlackberry to run later:
Installing OpenMotif 2.3 NOTE: if you have motif3 you might need to remove it first. Honestly i'm not sure if it's a good idea, so don't do this unless you have to.
sudo ln -s /usr/X11R6/lib/libXm.so.4 /usr/X11R6/lib/libXm.so.3
sudo apt-get remove libmotif3 libmotif-dev motif-clients
XmBlackberry needs Xlt installed (from source) Installing libXlt
cd ~ |
cvs -d :pserver:email@example.com:/cvsroot/xlt co Xlt
sudo make install
Get XmBlackberry source code
ALL ONE ONE LINE !!
cd ~ |
cvs -d :pserver:firstname.lastname@example.org t:/cvsroot/xmblackberry co XmBlackBerry
xmBlackberry folder get libusb source code.
cd XmBlackBerry/ |
cvs -d :pserver:email@example.com:/cvsroot/libusb co libusb
./configure --enable-maintainer-mode --disable-shared
sudo make install
Install libusb as it will be needed by Barry
cd libusb |
sudo make install
Install openSync (part of XmBlackberry)
cd .. |
sudo make install
Running XmBlackberry WARNING: you will notice i run most of the following command with sudo, that is because otherwise it would fail, due i think to USB device permissions on debian, ideally it would probably be best to fix those permissions rather than tun those thing under sudo.
cd ~ |
cvs -d:pserver:firstname.lastname@example.org:/cvsroot/barry login
cvs -z3 -d:pserver:email@example.com:/cvsroot/barry co -P barry
sudo make install
NOTE: PLUG YOUR BLACKBERRY NOW WITH THE USB CABLE.
There is an issue whereas the module usb_storage takes over the Blacberry device as soon as it is plugged in and thus XmBB can't use/see it.
We are gonna run Barry's bcharge, this has two uses here:
1) It will regrab the device from usb_storage
2) It will set the BB charging current to 500ma instead of 100ma, this will make the BB happy (no more warning) and allow it to dialog correctly with XmBB.
Because of a driver issue on the pearl we have to run bcharge twice, sounds odd, but is needed, as you will see on the second call the device will be found.
sudo bcharge |
sudo bcharge -o
Now, the device should be found. Example: ''sudo btool -l'' Blackberry devices found:
Device ID: 0x80xxxx. PIN: 241xxxx, Description: RIM 8100 Series Colour GPRS Handheld
NOTE: you can had Barry to udev, so it automatically runs when the BB is connected. cp /home/thibautc/barry/udev/*b* /etc/udev/rules.d/
I haven't tried this yet.
Now we are ready to run XmBlackberry.
Once XmBlackBerry opens, click the ''Options'' Menu, this should dump something like this on the console: XmBlackBerry.c:OptionPopupCallback(995) - GPRS modem device /dev/pts/0
If you see that, you are in business ! it found your GRPS modem ! Note "/dev/pts/0", this is going to be your modem device.
If you have other device it might be another number rather than 0, note this.
Tethering & connecting to GPRS / EDGE
You will want to have XmBlackberry up to be able to use the BB modem, so if not already running, restart it now. PPP scripts
I found multiple pp scripts online, but none of them worked as-is, by combining some i found something working for me:
You will need to create those two files: WARNING: if you don't use tmobile, you will have to adjust the 'AT+CGDCONT=1,"IP","wap.voicestream.com"' line.
see here for other carriers strings: Using BlackBerry As Modem - BlackBerryFAQ Note: "ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR" is all one line.
WARNING: If XmBlackberry found your device somewhere else that /dev/pts/0 then adjust the file. TMobile use blank user and password, other carriers might want something else, adjust as needed.
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR |
debug debug debug |
connect "/usr/sbin/chat -f /etc/chatscripts/blackberry"
# added this, so that it doesn't disconnect after few mn of innactivity
novj # refused anyway, no point in trying every time
Once this is setup, you are ready to get connected ... Finally !
sudo pppd call blackberry
If all goes well you should get something like this: Initializing
Serial connection established.
using channel 15
Using interface ppp0
Connect: ppp0 <--> /dev/pts/0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x682edbe8> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x10 <asyncmap 0x0> <auth chap MD5>]
sent [PAP AuthReq id=0x1 user="thibautc-laptop" password=<hidden>]
PAP authentication succeeded
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
local IP address 10.169.13.231
remote IP address 169.254.1.1
primary DNS address 188.8.131.52
secondary DNS address 184.108.40.206
Script /etc/ppp/ip-up started (pid 20529)
Script /etc/ppp/ip-up finished (pid 20529), status = 0x0
Make sure all your other interfaces (wireless/ethernet) are down, and enjoy browsing the web using your BB modem ! TIP: I actually posted this page using my Tethered connection !!
I used a compilation of other docs to get to this results, among others: SourceForge.net: Barry SourceForge.net: XmBlackBerry Net Direct :: Open Solutions 7290 GPRS modem over USB on Linux: Success HowTo: Use bcharge to charge your BB under linux http://www.fibble.org/BlackBerry%208800 forums.fibble.org :: View topic - HOWTO: Use your 8800 as a Bluetooth Modem with your Mac 8100 as BT Modem--Works for a few mins then disconnects http://www.blackberryforums.com/gene...nux-works.html