Palm Tungsten almost syncing to Solaris

My Palm Tungsten T3 normally sits downstairs, plugged into the family PC, but I have got fed up with forgetting to bring it up to my office on a Monday morning and consequently missing a conf call!

So, I've hooked up the cradle to a spare USB port on my trusty SunBlade 2000 and wondered whether or not I could actually get it to do anything remotely interesting with Solaris.

First problem - I need to install a device-driver for the device. A rather slow poke around the internet turned up this handy tip from a colleague at Sun who was trying to get his digital camera working with Solaris. I followed the example and determined that the magic needed to get Solaris to install a driver for the Palm Tungsten T range is:

# add_drv -m '\* 0666 root sys' -i '"usb830,60.100"' ugen

This installs the generic USB driver when the Palm attaches itself to the USB bus when the "HotSync" button is pressed.
So now, how about getting some form of syncing of the Palm ?

Well, after more furkling around on the Internet (it is a jolly useful medium, don't ya think?), I discovered the joys of libusb and also that Solaris 10 has this installed by default. Coupled with a little bit of Open Source: Coldsync, this looked like it should do the trick.

It didn't. Well, not at first, anyway.
I downloaded and built the 3.0pre4 version of coldsync, ran it up, and then had all manner of wierd and wonderful problems with the USB endpoints. I thought, at first, that this was a fault with the Solaris libusb implementation, but determined to press on, I decided to go for the bleeding edge and use the Coldsync source from their CVS repository.

I downloaded the source from the repository, copied the "configure" script over from the 3.0pre4 sources and proceeded to build it. There are a few niggles in the "install" target (like: it looks in the wrong place for install-sh), but I managed to get it built and installed without too much fuss.

So, now to running it. First, I set up a simple config file for coldsync:

$ more ~/.coldsyncrc
#
# We use libusb for the coldsync operations.
# Note that /dev/palm is a symlink to: /devices/pci@8,700000/usb@5,3/device@1
# This device is created when the Palm attaches itself to the USB bus in
# preparation for a HotSync operation. The "ugen" USB driver is bound to
# the device as a result of an add_drv command:
#         add_drv -m '\* 0666 root bin' -i '"usb830,60.100"' ugen
#
listen libusb "usb" {
        device: "/dev/palm";
}

#
# Default directory for syncing.
#
pda "My Tungsten T3" {
        snum: "";
        directory: "/export/home/trevw/.palm";
        username: "xxxx";
        userid: ######;
}

Then, I ran coldysnc as follows (NOTE: not as root):

$ coldsync --listen usb

This prompts you to press the HotSync button on the cradle and away you go.

Well, I had reasonable success. Many of the databases on the Tungsten synced ok, but a couple (notably the calendar) hung for a few seconds before complaining about not being able to read a record.

I spent a lot of time on debugging this, and I thought I'd got it at one point - it looked as if the Tungsten was reporting that a record was not found in the db (I'm not sure whether this is ok or not), and that was causing the sync of that db to fail. With some debugging code in place, I think I finally got it syncing all databases. However, having removed the debugging to try to get a better handle on how to properly fix the source, I started getting USB timeouts with requests for certain records from some of the databases (calendar again).

I have temporarily given up trying to figure out what's wrong, but thought I'd document what I'd got so far, anyway, in case anyone is remotely interested.

BTW, one thing I did get working was to dump the Memo db out to flat file. I added the following to the .coldsyncrc file:

#
# Set up a conduit to dump memos to text files.
#
conduit dump {
        path: "/export/home/trevw/.palm/conduits/memo-text";
        type: memo/DATA;
    arguments:
        File: /export/home/trevw/Docs/Personal/Palm/Memos;
        Delete: no;
}
Sure enough, after the sync, /export/home/trevw/Docs/Personal/Palm/Memos contains all of my memos.
Cool! Now, I just need to figure out a use for it ;)

Comments:

May I just aks a question?

I did what it is said to do. OK, I have Solaris 9, but I do not think that it should be a big difference. I wrote:
<TT>add_drv -m '\* 0666 root sys' -i '"usb830,61.100"' usba10_ugen</TT>
<EM>(my Tunsgten is the T5!)</EM>
And even when the HotSync is not in use, my Palm is recognized as soon as it is plugged (and switch on!). But... <TT>/dev/usb/831.100/0</TT> which appears in the directories is <EM>a directory!!!</EM> Not a device. Instead I have 11 character devices which appears in this directory. According to the <TT>ugen</TT> man page, it is normal!

But how could you tell to the software (JPilot/xpilot) the path to <EM>a</EM> device???
In your note, you spoke about <TT>/dev/palm</TT>. How could you have this device?

Sorry for my curiosity, but I have not found anywhere the answer... At least writing a driver for the Palm...

Thank you for your answer...

Thierry

Posted by Thierry on June 30, 2005 at 10:51 AM BST #

Hi Thierry,
/dev/palm was created automatically, but I cannot remember if it is coldsync which creates it or Solaris.

In my comment in the code for .coldsyncrc, it says that /dev/palm is a symbolic link to a device (which I assume is the USB device to which the Palm is attached).

I haven't used my T3 on Solaris for a few months now because I prefer to hotsync with the PC as it is more reliable and I can install new software.

Sorry I can't be of more help.

Posted by Trevor Watson on July 01, 2005 at 01:11 AM BST #

Thank you for your answer!

Seems that PC is the only way, unfortunately!
The problem is that mine is too old: I need to buy a new one!!!

Till next time...

Thierry
http://ourworld.compuserve.com/homepages/Thierry_Klein/

Posted by Thierry on July 01, 2005 at 03:31 AM BST #

In latest Solaris Express or Solaris 10 Update 2 and above releases, this manual ugen binding is no longer necessary. The default usb_mid driver will export ugen interfaces for the devices and libusb should just work. Please refer to USB FAQ page at: http://www.sun.com/io_technologies/usb/USB-Faq.html. It will be kept updated as new features get in Solaris.

Posted by Sophia Li on May 13, 2007 at 08:51 PM BST #

Post a Comment:
Comments are closed for this entry.
About

tdw

Search

Top Tags
Archives
« April 2014
MonTueWedThuFriSatSun
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today