Just though I'd report my attempts so far. Most of it is following the Visor USB HOWTO:
http://www.linuxpda.com/visor/howto/current/Below I have included a rather detailed report. But in the end it boils down to the following:
It looks like usbserial.c has problems recognizing my m500. Sometimes it recognizes it correctly as a Palm 4.0, sometimes as a Sony Clié 3.5, and sometimes it doesn't recognize it at all... However, the sync-ing software (Coldsync) seems to work both when my m500 is recognized correctly and when it is recognized as a Sony, but not when it is not recognized at all.For the record:
RedHat 7.1Found out which USB controller I have with lspci:
Kernel 2.4.16 (downloaded and compiled separately)
Palm m500
Old i586
Sitecom USB<->PCI interface through USB-card with 2 ports. The box claims it is PCI v2.1 compatible, Intel UHCI V 1.1 compatible, and fully Plug&Play
My m500 cradle is the only USB device
00:14.0 USB Controller: OPTi Inc. 82C861 (rev 10)I configured my kernel as specified by http://www.linuxpda.com/visor/howto/current/x71.html#MAKEKERNEL (all options compiled in, not as modules), but chose OHCI instead of UHCI (what's on the box) because that's how kudzu recognized the card and because UHCI does not seem to work:
Added the following line to /etc/fstab to make usb-data visible:
none /proc/bus/usb usbdevfs defaults 0 0Rebooted. Here's the log:
kernel: usb.c: registered new driver usbdevfsChecked to see if USB stuff was available in /proc/devices, /proc/bus/usb/devices and /proc/bus/usb/drivers.
kernel: usb.c: registered new driver hub
kernel: PCI: Found IRQ 12 for device 00:14.0
kernel: usb-ohci.c: USB OHCI at membase 0xc4808000, IRQ 12
kernel: usb-ohci.c: usb-00:14.0, OPTi Inc. 82C861
kernel: usb.c: new USB bus registered, assigned bus number 1
kernel: hub.c: USB hub found
kernel: hub.c: 2 ports detected
kernel: usb.c: registered new driver serial
kernel: usbserial.c: USB Serial Driver core v1.4
kernel: usbserial.c: USB Serial support registered for Handspring Visor
kernel: usbserial.c: USB Serial support registered for Palm 4.0
kernel: usbserial.c: USB Serial support registered for Sony Clié 3.5
kernel: usbserial.c: USB Serial support registered for Sony Clié 4.0
kernel: visor.c: USB HandSpring Visor, Palm m50x, Sony Clié driver v1.5
Pressed the hotsync button:
kernel: hub.c: USB new device connect on bus1/1, assigned device number 2Looking good :)
kernel: usbserial.c: Palm 4.0 converter detected
kernel: visor.c: Palm 4.0: Number of ports: 2
kernel: visor.c: Palm 4.0: port 1, is for Generic use and is bound to ttyUSB0
kernel: visor.c: Palm 4.0: port 2, is for HotSync use and is bound to ttyUSB1
kernel: usbserial.c: Palm 4.0 converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
kernel: usbserial.c: Palm 4.0 converter now attached to ttyUSB1 (or usb/tts/1 for devfs)
Then follows (end of sync):
kernel: usb.c: USB disconnect on device 2Pressed the Hotsync button again. Here I get into trouble:
kernel: usbserial.c: Palm 4.0 converter now disconnected from ttyUSB0
kernel: usbserial.c: Palm 4.0 converter now disconnected from ttyUSB1
kernel: hub.c: USB new device connect on bus1/1, assigned device number 3The device number has gone up (is that normal?), and the device is no longer claimed by the Palm 4.0 converter. Still, the vend/prod identification 0x830/0x1 seems to match with the definitions in visor.h...
kernel: usb.c: USB device 3 (vend/prod 0x830/0x1) is not claimed by any active driver.
Rebooted and tried again :)
Pressed HotSync button: no problem. Pressed HotSync button again:
kernel: hub.c: USB new device connect on bus1/1, assigned device number 5Suddenly my Palm turned into a Sony <g>.
kernel: usbserial.c: Sony Clié 4.0 converter detected
visor.c: Sony Clié 4.0: Number of ports: 2
kernel: visor.c: Sony Clié 4.0: port 1, is for Generic use and is bound to ttyUSB0
kernel: visor.c: Sony Clié 4.0: port 2, is for HotSync use and is bound to ttyUSB1
kernel: usbserial.c: Sony Clié 4.0 converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
kernel: usbserial.c: Sony Clié 4.0 converter now attached to ttyUSB1 (or usb/tts/1 for devfs)
Rebooted again. Pressed HotSync button:
kernel: hub.c: USB new device connect on bus1/1, assigned device number 2Now it's recognized as a Sony (this time version 3.5) at the first connection. Moreover, it is only connected to ttyUSB0 and not to ttyUSB1.
kernel: usbserial.c: Sony Clié 3.5 converter detected
kernel: usbserial.c: Sony Clié 3.5 converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
I have rebooted a couple of times and the behaviour seems rather random.
It looks like usbserial.c has problems recognizing my m500. Sometimes it recognizes it correctly as a Palm 4.0, sometimes as a Sony Clié 3.5, and sometimes it doesn't recognize it at all... However, the sync-ing software (Coldsync) seems to work both when my m500 is recognized correctly and when it is recognized as a Sony, but not when it is not recognized at all.
I turned on USB debugging in my kernel and got some extra data. I can't say I know what it all means but added the logs as an attachment anyway (note that I mangled my serial ID).
I hope this is useful to someone :)
--
René Steetskamp
Webmaster Vaderschap.org
A good connection: kernel: hub.c: port 1 connection change kernel: hub.c: port 1, portstatus 101, change 1, 12 Mb/s kernel: hub.c: port 1, portstatus 103, change 10, 12 Mb/s kernel: hub.c: USB new device connect on bus1/1, assigned device number 2 kernel: usb.c: kmalloc IF c3533780, numif 1 kernel: usb.c: new device strings: Mfr=1, Product=2, SerialNumber=5 kernel: usb.c: USB device number 2 default language ID 0x409 kernel: Manufacturer: Palm, Inc. kernel: Product: Palm Handheld kernel: SerialNumber: [serial ID mangled] kernel: usbserial.c: Palm 4.0 converter detected kernel: visor.c: Palm 4.0: Number of ports: 2 kernel: visor.c: Palm 4.0: port 1, is for Generic use and is bound to ttyUSB0 kernel: visor.c: Palm 4.0: port 2, is for HotSync use and is bound to ttyUSB1 kernel: usbserial.c: Palm 4.0 converter now attached to ttyUSB0 (or usb/tts/0 for devfs) kernel: usbserial.c: Palm 4.0 converter now attached to ttyUSB1 (or usb/tts/1 for devfs) kernel: usb.c: serial driver claimed interface c3533780
m500 recognized as Sony: kernel: hub.c: port 1 connection change kernel: hub.c: port 1, portstatus 101, change 1, 12 Mb/s kernel: hub.c: port 1, portstatus 103, change 10, 12 Mb/s kernel: hub.c: USB new device connect on bus1/1, assigned device number 10 kernel: usb.c: kmalloc IF c3659200, numif 1 kernel: usb.c: new device strings: Mfr=1, Product=2, SerialNumber=5 kernel: usb.c: USB device number 10 default language ID 0x409 kernel: Manufacturer: Palm, Inc. kernel: Product: Palm Handheld kernel: SerialNumber: [serial ID mangled] kernel: usbserial.c: Sony Cli� 4.0 converter detected kernel: visor.c: Sony Cli� 4.0: Number of ports: 2 kernel: visor.c: Sony Cli� 4.0: port 1, is for Generic use and is bound to ttyUSB0 kernel: visor.c: Sony Cli� 4.0: port 2, is for HotSync use and is bound to ttyUSB1 kernel: usbserial.c: Sony Cli� 4.0 converter now attached to ttyUSB0 (or usb/tts/0 for devfs) kernel: usbserial.c: Sony Cli� 4.0 converter now attached to ttyUSB1 (or usb/tts/1 for devfs) kernel: usb.c: serial driver claimed interface c3659200 [..... half a minute later ......] kernel: hub.c: port 1 connection change kernel: hub.c: port 1, portstatus 100, change 3, 12 Mb/s kernel: usb.c: USB disconnect on device 10 kernel: usbserial.c: Sony Cli� 4.0 converter now disconnected from ttyUSB0 kernel: usbserial.c: Sony Cli� 4.0 converter now disconnected from ttyUSB1 Nov 29 14:47:57 nono kernel: hub.c: port 1 enable change, status 100 Not recognized at all: kernel: hub.c: USB new device connect on bus1/1, assigned device number 4 kernel: Manufacturer: Palm, Inc. kernel: Product: Palm Handheld kernel: SerialNumber: [serial ID mangled] kernel: usb.c: USB device 4 (vend/prod 0x830/0x1) is not claimed by any active driver. kernel: Length = 18 kernel: DescriptorType = 01 kernel: USB version = 1.00 kernel: Vendor:Product = 0830:0001 kernel: MaxPacketSize0 = 16 kernel: NumConfigurations = 1 kernel: Device version = 1.00 kernel: Device Class:SubClass:Protocol = 00:00:00 kernel: Per-interface classes kernel: Configuration: kernel: bLength = 9 kernel: bDescriptorType = 02 kernel: wTotalLength = 002e kernel: bNumInterfaces = 01 kernel: bConfigurationValue = 01 kernel: iConfiguration = 00 kernel: bmAttributes = c0 kernel: MaxPower = 2mA kernel: kernel: Interface: 0 kernel: Alternate Setting: 0 kernel: bLength = 9 kernel: bDescriptorType = 04 kernel: bInterfaceNumber = 00 kernel: bAlternateSetting = 00 kernel: bNumEndpoints = 04 kernel: bInterface Class:SubClass:Protocol = ff:00:00 kernel: iInterface = 00 kernel: Endpoint: kernel: bLength = 7 kernel: bDescriptorType = 05 kernel: bEndpointAddress = 81 (in) kernel: bmAttributes = 02 (Bulk) kernel: wMaxPacketSize = 0010 kernel: bInterval = 00 kernel: Endpoint: kernel: bLength = 7 kernel: bDescriptorType = 05 kernel: bEndpointAddress = 01 (out) kernel: bmAttributes = 02 (Bulk) kernel: wMaxPacketSize = 0010 kernel: bInterval = 00 kernel: Endpoint: kernel: bLength = 7 kernel: bDescriptorType = 05 kernel: bEndpointAddress = 82 (in) kernel: bmAttributes = 02 (Bulk) kernel: wMaxPacketSize = 0040 kernel: bInterval = 00 kernel: Endpoint: kernel: bLength = 7 kernel: bDescriptorType = 05 kernel: bEndpointAddress = 02 (out) kernel: bmAttributes = 02 (Bulk) kernel: wMaxPacketSize = 0040 kernel: bInterval = 00
