Palm PDAs and the Linux visor driver vs libusb

| | Comments (0) | TrackBacks (0)

Modern Palm PDAs connect to Linux via USB or Bluetooth. The pilot-link software provides the command line utilities and a library that GUI apps and frameworks (such a gnome-pilot) are built on top of.

Access to the Palm PDA hardware has traditionally been done via the visor kernel module. When the Treo 600 was released I submitted a minor kernel patch that accepted by Linus that enabled the visor kernel module to handle the new Treo 600.

With the visor kernel module, a character device such as /dev/ttyUSB1 used to access the Palm PDA.

A new method available with pilot-link v0.12 is direct USB access via libusb. Besides being twice as fast, access via libusb gets around the problem of tricky timing issues and UDEV being slow to create to the /dev files.

With Fedora Core v5 I decided to benchmark the exact difference in speed between the visor and libusb access methods. To do this I had to recompile pilot-link with libusb support, I filed a bug to have this be enabled by default in the future.

I used pilot-xfer to back my Treo650's 15,668KB of data.

Using the visor method:

pilot-xfer -p /dev/ttyUSB1 -b /tmp/Treo650-backup-visor

Results: 415 seconds or 37.75KB/sec

Using the libusb method:

pilot-xfer -p usb: -b /tmp/Treo650-backup-libusb

Results: 201 seconds or 77.95KB/sec

The results speak for themselves. Using the libusb method is more than twice as fast as using the visor kernel module. I can't wait for pilot-link v0.12 to be officially released.

0 TrackBacks

Listed below are links to blogs that reference this entry: Palm PDAs and the Linux visor driver vs libusb.

TrackBack URL for this entry: http://blogs.gurulabs.com/cgi-bin/mt-tb.cgi/27

Leave a comment

About this Entry

This page contains a single entry by Dax published on March 30, 2006 3:19 PM.

Linux Software RAID Improvements was the previous entry in this blog.

When is a 5400RPM hard drive faster than a 7200RPM one? is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.