August 16, 2008

How to use your blackberry as a modem in Debian

[ATENTION: this blog post was updated!]

After aquiring a BlackBerry cellphone, I wanted to use it as a modem for my laptop, running Debian. I still didn't figure how to use it via bluetooth, but here's how to do it via USB:

I recommend you read all this procedure before starting


  • Install barry (so you can use the cellphone via USB, this makes it chargeable too

  • Install XmBlackBerry

  • connect your mobile phone to your computer, via USB

  • sudo XmBlackBerry

  • clicking in the options menu you'll see in the stderr (console where you
    run this app) a /dev/pts/something , which is your GPRS device

  • click "connect" and see if your phone tells you that you're connected to the desktop

  • sudo vi /etc/chatscripts/blackberry :


    ABORT BUSY ABORT ‘NO CARRIER’ ABORT VOICE ABORT ‘NO DIALTONE’ ABORT ‘NO DIAL TONE’ ABORT ‘NO ANSWER’ ABORT DELAYED ABORT ERROR
    SAY “Initializing\n”
    ” ATZ
    SAY "ATE\n"
    OK 'AT+CGDCONT=1,"IP","wap.voicestream.com"'
    OK 'AT'OK 'ATDT*99***1#'
    SAY "Dialing\n"


  • (change "device" here) sudo vi /etc/ppp/peers/blackberry


    debug debug debug
    nodetach
    /dev/pts/device
    115200
    connect "/usr/sbin/chat -f /etc/chatscripts/blackberry"
    nomultilink
    defaultroute
    noipdefault
    ipcp-restart 7
    ipcp-accept-local
    ipcp-accept-remote
    lcp-echo-interval 0
    lcp-echo-failure 999
    modem
    noauth
    nocrtscts
    noipdefault
    novj
    usepeerdns
    user ""
    password ""


  • sudo pppd call blackberry



And you're on!

Yeah, but how to install XmBlackBerry?



Here are the steps to install XmBlackBerry:

* get and install libmotif 2.3.0 debian packages here
* aptitude install xaw3dg-dev xorg-dev x11proto-print-dev autoconf libtool libopensync-dev libxp-dev libcurl4-openssl-dev libreadline5-dev
* As root, run
ln -s /usr/include/X11/Xaw3d /usr/include/X11/Xaw
* Install Xlt (tested with 13.0.13): get it here, untar it and, in its directory...
*

./configure --with-motif-libraries=/usr/X11R6/lib --prefix=/usr
make && make install

* Install XmBlackBerry:

cvs -d:pserver:anonymous@xmblackberry.cvs.sourceforge.net:/cvsroot/xmblackberry co XmBlackBerry
cd XmBlackBerry/
cvs -d :pserver:anonymous@libusb.cvs.sourceforge.net:/cvsroot/libusb co libusb
cd libusb
make && make install
cd ..
./CVSMake
./configure --enable-maintainer-mode --disable-shared --with-motif-libraries=/usr/X11R6/lib
make
sudo make install
sudo ln -s /usr/X11R6/lib/libXm.so.4 /usr/lib/libXm.so.4


And how to install Barry?



You distro should have packages for it (most have). If not...

cvs -d:pserver:anonymous@barry.cvs.sourceforge.net:/cvsroot/barry login 
cvs -z3 -d:pserver:anonymous@barry.cvs.sourceforge.net:/cvsroot/barry co -P barry
cd barrysh
buildgen.sh
./configure --prefix=/usr
make
sudo make install
sudo cp udev/*b* /etc/udev/rules.d/.

5 comments:

  1. Anonymous7:08 PM

    Obrigado! This is very useful information for my upcoming vacation in Lisboa ;)

    ReplyDelete
  2. Anonymous8:16 PM

    Unfortunately the guide doesn't work for me. I get the following error when trying to build Xlt-13.0.13:


    NumEntry.c:764: warning: implicit declaration of function 'XmCreateInformationDialog'
    NumEntry.c:764: warning: assignment makes pointer from integer without a cast
    NumEntry.c:765: error: 'string' undeclared (first use in this function)
    NumEntry.c:765: warning: implicit declaration of function 'XmStringCreateLtoR'
    NumEntry.c:765: error: 'XmFONTLIST_DEFAULT_TAG' undeclared (first use in this function)
    NumEntry.c:765: warning: statement with no effect
    NumEntry.c:767: error: 'XmNmessageString' undeclared (first use in this function)
    NumEntry.c: In function 'XltVaCreateNumEntry':
    NumEntry.c:795: warning: missing sentinel in function call
    NumEntry.c: In function 'XltNumEntryGetChild':
    NumEntry.c:808: error: 'struct _XltNumEntryRec' has no member named 'num_entry'
    NumEntry.c:808: error: request for member 'TextField' in something not a structure or union
    NumEntry.c:808: warning: return from incompatible pointer type
    NumEntry.c:811: error: 'struct _XltNumEntryRec' has no member named 'num_entry'
    NumEntry.c:811: error: request for member 'Label' in something not a structure or union
    NumEntry.c:811: warning: return from incompatible pointer type
    NumEntry.c:814: error: 'struct _XltNumEntryRec' has no member named 'num_entry'
    NumEntry.c:814: error: request for member 'UpArrow' in something not a structure or union
    NumEntry.c:814: warning: return from incompatible pointer type
    NumEntry.c:817: error: 'struct _XltNumEntryRec' has no member named 'num_entry'
    NumEntry.c:817: error: request for member 'DnArrow' in something not a structure or union
    NumEntry.c:817: warning: return from incompatible pointer type
    make[2]: *** [NumEntry.lo] Error 1
    make[2]: Leaving directory `/home/Desktop/Xlt-13.0.13/lib'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/Desktop/Xlt-13.0.13'
    make: *** [all] Error 2

    ReplyDelete
  3. Do you have libmotif-dev and/or libmotif3 installed? If so, remove them...

    Are you sure you have installed the openmotif packages I liked up there?

    ReplyDelete
  4. It don't work on Mandriva 2008. Any extra help please!

    ReplyDelete
  5. Barry does all this already, so it should be as easy as installing it: here's Mandriva's package.

    ReplyDelete