Synchronizing a BlackBerry in Linux

Filed in LinuxTags: Amarok, Blackberry, KDE-PIM, Kubuntu, Synchronization

This guide has been moved to the Tutorials section, but will remain here for historical reference. Please refer to the BlackBerry-Linux Sync Tutorial for any future updates to this guide.

We recently switched our mobile carrier, from Sprint to AT&T. That change meant new phones, and at my wife's insistence that I get something other than the boring, basic phones I had always used, I got a BlackBerry Curve.

I have mainly used my PDA (an iPaq Mobile Companion rx5915) as a GPS Navigator, so it would be nice to be able to use the PIM features of the BlackBerry. Unfortunately, RIM (the manufacturer of the BlackBerry) has been less-than-friendly to Linux users, and has not provided proper drivers to allow Linux to support the BlackBerry. Fortunately, however, the Linux community has come through to provide options. As a result, my BlackBerry now communicates with my laptop and synchronizes with KDE-PIM (a better-than-Outlook PIM replacement for Outlook). Oh, and as a bonus, I can transfer music to the BlackBerry's microSD card using Amarok.

Here's how:

Part 1: BlackBerry microSD Card Mounting

My first step was to install a microSD card (I used a 2.0GB card). As this Linux App Finder tutorial explains, the following two settings must be configured under Settings -> Options -> Media Card on the BlackBerry:

  • Media Card Support: On
  • Mass Storage Mode Support: On
  • Auto Enable Mass Storage Mode When Connected: Yes

Upon connecting the BlackBerry to the laptop via USB, Kubuntu Hardy natively recognized the microSD card as removable media, and mounted it. The BlackBerry itself, however, indicated the following warning:

USB charging current is not sufficient. Verify that your handheld is connected to a powered USB charging source and that the proper USB driver is installed.

(Interestingly, the BlackBerry still seemed to charge via the USB connection.) Not to worry; we will address this issue a bit later.

Part 2: Managing microSD Card Media With Amarok

Since I was following along with the tutorial, I went on to part 2, which explained how to use Amarok to manage music on the microSD card. I skipped the first section regarding using Amarok to transcode from FLAC to MP3 on-the-fly, as I rip my CDs as MP3 anyway. Moving on to the next section, regarding how to configure Amarok:

  1. Go to Settings -> Configure Amarok -> Media Devices.
  2. The BlackBerry SD card should already be listed, but if it isn't, click "Autodetect Devices." Mine shows up as Name: sdb1.
  3. Amarok won't pre-select a device type. Use "Generic Audio Player."
  4. Click the Configure button (three interlocked, blue gears) to configure the connection.
  5. Set the song location to:
    /BlackBerry/music/%artist/%album/%title.%filetype
  6. Set the podcast location to:
    /BlackBerry/music/podcasts/
  7. Click OK to finish, and then exit the Configure Amarok dialogue.
  8. From the main Amarok window, click the Devices tab.
  9. At the top of the sidebar, you should see the newly configured media device. Click "Connect" and you should see the directory structure of the BlackBerry's microSD card. Open the "Blackberry" folder, and you should see directories for Music, Pictures, Ringtones, System, and Videos.
  10. Create a playlist in the right-hand pane (you may need to return to the Collection tab to do so), and then highlight and drag the songs from the playlist into the Music folder in the device pane. Doing so will create a transfer queue in the device pane.
  11. Once you have created a transfer queue, click the "Transfer" button (next to the "Connect" and "Disconnect" buttons at the top of the device pane) to transfer the music to the BlackBerry's microSD card.

That's it! Your music is ready for listening on the BlackBerry, using the installed media player.

Part 3: BlackBerry - KDE-PIM Synchronization: Package Installation

Now, onto the more important task of configuring the BlackBerry itself for communication and synchronization with Linux. The Linux.com article Syncing Your BlackBerry on Linux provided a great start.

While RIM does not officially support synchronization between the BlackBerry and Linux, the Barry Project comes to the rescue. Begin by installing the necessary packages.

(Note that the installation instructions in both the Linux.com article and on the Barry project web site may not be up-to-date. For Ubuntu users, no compilation is required. Barry developers now provide .DEB packages that are current through Ubuntu 7.10. The packages should handle the necessary dependencies, making installation much more simple that before.)

My installation method may not be the best or most efficient, but it worked for me. Here's what I did:

First, install OpenSync and related plugins. Using the package manager of your choice (which, from within Kubuntu, would be Adept Manager), install the following packages:

  • libopensync0
    (OpenSync framework)
  • opensync-plugin-kdepim
    (OpenSync KDE-PIM plugin)
  • opensyncutils
    (OpenSync command-line utilities)
  • kitchensync
    (KDE OpenSync GUI)

You may find other OpenSync plugins useful; for example, I also installed the following:

  • opensync-plugin-file
    (OpenSync plugin for file sync)
  • opensync-plugin-google-calendar
    (OpenSync plugin for Google Calendar)
  • opensync-plugin-syncml
    (OpenSync plugin for SyncML)

Once you have OpenSync and related plugins installed, ensure you have the libusb packages installed. The current package available in the Ubuntu repositories is:

  • libusb-0.1-4

Next, install the MultiSync package and its related plugins. MultiSync is another GUI for performing PIM synchronization. I won't go in detail on its use here; we are mainly installing it for its msynctool command-line utility. Install at least the following packages:

  • multisync
    (PIM synchronization tool)
  • multisync-tools
    (command-line utilities for multisync)

Note: if you want to use the full plugin suite avaliable for MultiSync, just install the following package:

  • multisync-plugin-all
    (complete suite of plugins for MultiSync)

Finally, install the appropriate packages for Barry, from the Barry project Sourceforge site. Download files for the current version (Barry-0.12) are here. Download and install the following packages:

  • libbarry_0.12-1_ubuntu710_i386.deb
    (The main Barry library): must be installed first
  • barry-util_0.12-1_ubuntu710_i386.deb
    (Command-line Barry utilities)
  • barrybackup-gui_0.12-1_ubuntu710_i386.deb
    (GUI for BarryBackup utility)
  • libopensync-plugin-barry_0.12-1_ubuntu710_i386.deb
    (OpenSync plugin for Barry)

You now have all the needed packages installed.

Part 4: BlackBerry - KDE-PIM Synchronization: Communication and Backup

You are now ready to verify communication between Kubuntu and the BlackBerry. Connect the BlackBerry via USB. At this point, you will still see the message on your BlackBerry regarding insufficient power for USB charging. We are about to resolve that issue. Open a terminal, and type the following:

btool -t

If the command returns a list of databases found on the BlackBerry, congratulations! Kubuntu sees and can communicate with the BlackBerry. You should also notice that the warning about insufficient power for USB charging has disappeared from your BlackBerry.

If that step was successful, the next step is to backup the data on your BlackBerry. To do so, we will use the Barry Backup utility that we recently installed. In the terminal, type the following:

barrybackup

You should now see the GUI for the Barry Backup utility. Since the BlackBerry is connected, and Kubuntu recognizes it, the PIN field should be pre-populated with your BlackBerry's PIN. (Note: you should copy this PIN, as you will need it in later steps.)

Click the "Backup" button, and the utility will backup all of the database data on your BlackBerry. The progress bar will display the progress of the backup process. Once complete, this backup will be available (via the "Restore" button), should you need to restore your data for any reason.

Part 5a: BlackBerry - KDE-PIM Synchronization: Synchronizing Calendar and Contacts via OpenSync and msynctool (command line)

And finally, the moment we've been waiting for: synchronizing KDE-PIM calendar and contacts with the BlackBerry.

Synchronization of calendar and contacts will take place via OpenSync. OpenSync requires the definition of a sync group, which consists of sync members. Think of the group as the synchronization profile, and the members as the two sources to be synchronized. In our case, our profile will consist of KDE-PIM and our BlackBerry.

The next steps can be carried out either via the command line using msynctool, or through a GUI using the KitchenSync application. I will first give the command-line instructions, and then take a look at KitchenSync.

We will use msynctool, which we previously installed, to set up the synchronization via the command line. I found the msynctool manpage documentation to be incredibly helpful. To set up the synchronization via msynctool, at the command line type the following:

msynctool --addgroup Blackberry

msynctool --addmember Blackberry barry-sync

msynctool --addmember Blackberry kdepim-sync

You have just created a group called "Blackberry" that contains two members: a BlackBerry and KDE-PIM. The KDE-PIM member requires no configuration; however, the BlackBerry member does require configuration - namely, the device PIN, and flags for synchronization of Calendar, Contacts, or both. To see the group configuration, at the command line type the following:

msynctool --showgroup Blackberry

The command will return information that member 1 (barry-sync) is not configured, and that member 2 (kdepim-sync) does not require configuration. To configure barry-sync, type the following at the command line:

msynctool --configure Blackberry 1

The "1" at the end of the command indicates "member 1", which is barry-sync (if you followed the above instructions). This command brings up the configuration file for the barry-sync member of the "Blackberry" group. I'm not terribly comfortable with file editing via the command shell. If you're the same, then note that you can save and exit the file editor in the shell, and then edit the file (using Kate or your editor of choice), by opening the file directly.

Currently, the OpenSync configuration files are located in:
~/.opensync-0.22/.
If you have only configured one synchronization group, then that group's configuration files should be found in:
~/.opensync-0.22/group1/
If you defined barry-sync as member 1, then the barry-sync configuration files should be found in:
~/.opensync-0.22/group1/1/.

In this directory, open and edit the barry-sync.conf file. You will only need to edit one line, as indicated by the instructions in the file. The line to edit begins with "Device" and should look something like:

Device 123A4567 1 1.

The parameters are as follows:

  • Device: begin device configuration
  • 123A4567: your BlackBerry's PIN
  • 1: Sync Calendar (Yes: 1, No: 0)
  • 1: Sync Contacts (Yes: 1, No: 0)

Edit, save, and close the configuration file, and your synchronization group should be ready to go. To verify using msynctool, type the following at the command line:

msynctool --showgroup Blackberry

This time, the command should return the configuration information you just entered.

Note: I actually created two separate synchronization groups: BlackberryCalendar and BlackberryContacts. I wanted to separate the two sync groups, mainly for troubleshooting purposes. (Synchronizing my calendar was more critical for me. I have over 2,000 contacts in KDE-PIM, and haven't wanted to tackle that synchronization yet.)

Now comes the moment of truth: performing the synchronization. First, make sure that KDE-PIM is not running (otherwise the process will generate errors). Again using msynctool, at the command line type the following:

msynctool --sync Blackberry

That's it. You should see the synchronization process in the command shell, and once the process completes, you should see your KDE-PIM (Kalendar/Kontact) calendar events (if you synchronized calendars) and contacts (if you synchronized contacts) on your BlackBerry, and vice versa.

Part 5b: BlackBerry - KDE-PIM Synchronization: Synchronizing Calendar and Contacts via OpenSync and KitchenSync (GUI application)

The process of defining and configuring synchronization groups and group members, and performing the synchronization can take place using a GUI application. To do so, go to KMenu -> Utilities -> KitchenSync, which will launch the KitchenSync application.

The process of creating groups and group members is pretty straight-forward. (Note: if you have already created a sync group in the previous step, you will see this group displayed within KitchenSync.) To configure:

  1. Click the "Add Group" button.
  2. Assign a name to the group in the dialogue that appears, and click "OK". The Configure Synchronization Group dialogue will appear.
  3. Select the object types to be synchronized. (Note: with the current version of Barry, only Calendar (Events) and Contacts object types are supported.)
  4. At the bottom of the dialogue, click "Add Member". The Select Member Type dialogue appears.
  5. To be consistent we will make the BlackBerry the first member. Select "Barry OpenSync plugin v0.12 for the BlackBerry Handheld" and click "OK". The configuration file will appear. Enter the configuration as before.
  6. Again click "Add Member". The Select Member Type dialogue appears.
  7. The second member is KDE-PIM. Select "KDE Desktop" and click "OK".
  8. Click "OK" again, and you will be returned to the main screen.

You should now see the group you just configured, along with two links: "Synchronize Now" and "Configure."

Click "Synchronize Now" (or, click the "Synchronize" button on the toolbar), and the synchronization should commence, with indications of its progress. Once again, at this point, you should see the synchronization process in the command shell, and once the process completes, you should see your KDE-PIM (Kalendar/Kontact) calendar events (if you synchronized calendars) and contacts (if you synchronized contacts) on your BlackBerry, and vice versa.

Summary

And that's it! To summarize, at this point you should be able to do all of the following within Kubuntu:

  • Charge your BlackBerry via USB
  • View and transfer files to/from your BlackBerry via USB Mass Storage mode
  • Manage music on your BlackBerry using Amarok
  • Synchronize KDE-PIM Contacts and Calendar events with your BlackBerry

If you have any comments, questions, or suggestions, please let me know in the comments.

Update 1: Added instructions for installation of msynctool and fixed a mis-spelling; thanks theZoid from UbuntuForums.org!

Feedback

Comments (Comments are closed)

7 Responses to “Synchronizing a BlackBerry in Linux”
  1. Mel says:

    I bet hubbys love when their wives insist on new technology! Go Steph!

  2. I don’t know what to say except OUTSTANDING. It works, and I’ve ditched Thunderbird for Kontact, all the better IMO. My Blackberry Curves now syncs via usb cable !

  3. Viktor says:

    All went fine up to the moment of msynctool –sync call:

    Member 1 of type barry-sync had an error while getting changes: Desktop: unexpected command of 0x41 instead of expected 0x40

    Since I’m a blackberry newbie, I can only provide a few things from the About page.
    BB 8820
    v 4.2.2.175 (platform 2.5.0.33)

    Uncle Google turned up zilch apart from unanswered cries for help.

  4. Chip Bennett says:

    Viktor,

    I’m afraid that issue may surpass my level of expertise.

    Have you tried the Barry Developers (Barry-devel) mail list? That is usually the best place to get quick, accurate answers to such issues.

    Good luck!

  5. Andreas says:

    My system is Kubuntu 8.04, my blackberry a 7730.

    I installed all packages you mentioned.
    After connecting my blackberry at the USB port the charging works (as before installing the packages).

    “btool -t” returns “Blackberry devices found: No device selected”

    Do have an idea, what’s neccessary?

    Something else:
    Can you sync even tasks of Kontact (=KDEPIM)?
    Or do you use any other taskmanager?

    Regards from Berlin.

  6. Lycidas says:

    Great HowTo, worked with my BB Pearl 8100. Only one thing is still annoying: The charset doesn’t seem to be utf on my BB… So all my special characters appear wrong, and that’s awful in german. Any ideas?

  7. Dag says:

    Hi there,
    thnaks for the article, its very useful for me. But i still have a problem. I only can connect as root to my device, btool, barrybackup ans executing the msynctool throws errormessages “(-1, error sending control message: Operation not permitted): Probe: GetConfiguration failed”

    Maybe someone can help me? How can i sync as non-root user.

    i have a blackberry bold and Suse 10.3

Trackbacks

  1. How To Synchronize KDE-PIM with Google Calendar » cb.blog
  2. Synchronizing a BlackBerry in Kubuntu « Linux Chronicles .deb
  3. Blackberry and Kontact - openSUSE Forums
  4. dcop - openSUSE Forums
  5. dcop - openSUSE Forums
  6. dcop - openSUSE Forums
  7. Sync your Blackberry with Kontact via USB Cable in Mandriva KDE « Linux Chronicles /Mandriva
  8. Barry - Another BlackBerry ™ synchronization for Linux : CHARLES PENG
  9. Barry: Round Two with the Blogosphere riding Shotgun | The Linux Experiment