Description of problem: When trying to hotsync with my Palm Pilot (Tungsten E), very often the HotSync fails. In KPilot I see: 08:18:53 End of HotSync 08:18:53 HotSync Completed. 08:18:58 Pilot device /dev/pilot does not exist. Assuming the device uses DevFS. 08:18:59 Trying to open device /dev/pilot... 08:18:59 Could not open device: /dev/pilot (will retry) 11:51:22 Device link ready. And than it just sits there instead of HotSyncing with Palm. The only way to get it working again is to exit from kpilot (and also daemon), and start them again. After restarting several times, eventually it will sync. I'd estimate that every time I hit HotSync button on my Palm, I have about 20-25% chance that things will work. And 75-80% that I'll need to restart kpilot. Version-Release number of selected component (if applicable): kdepim-3.3.1-2.1 How reproducible: 75-80% of HotSync operations Steps to Reproduce: 1. Start kpilot 2. Connect Tungsten E via USB 3. Hit HotSync button on Tungsten E Actual results: Expected results: Additional info: I've setup udev to automatically create /dev/pilot symlink. The link is created every time HotSync button is pressed (checked).
After some more debugging, I found that this really wasn't problem with kpilot. I attempted to to close this bug report with NOTABUG. Got error message saying I must be reporter to be able to do that (well, I am, and I was logged in). Anyhow, if somebody else can do it, it would be nice. I'll document this in case somebody hits the same problem in future. What happens is that udev is not creating devices and /dev/pilot link the same way every time. When syncing works, it looks like: $ ls -l /dev/pilot /dev/ttyUSB* lrwxrwxrwx 1 root root 7 May 1 08:23 /dev/pilot -> ttyUSB1 crw-rw---- 1 root uucp 188, 0 May 1 08:23 /dev/ttyUSB0 crw------- 1 amilivojevic uucp 188, 1 May 1 08:23 /dev/ttyUSB1 When it doesn't work it looks like: $ ls -l /dev/pilot /dev/ttyUSB* lrwxrwxrwx 1 root root 7 May 1 08:12 /dev/pilot -> ttyUSB0 crw------- 1 amilivojevic uucp 188, 0 May 1 08:12 /dev/ttyUSB0 crw-rw---- 1 root uucp 188, 1 May 1 08:12 /dev/ttyUSB1 The device that should be used for syncing is always /dev/ttyUSB1. You can see that in later case not only symlink points to the wrong file (easy to fix by editing udev rules), but the ttyUSB1 is not readable by console owner (me in this case). Not sure if this is udev bug, or I just need to fix some config files. If I find solution, I'll followup with comment.
The solution was to change my custom udev rule from BUS="usb", SYSFS{product}="Palm Handheld", KERNEL="ttyUSB*", SYMLINK="pilot" to: BUS="usb", SYSFS{product}="Palm Handheld", KERNEL="ttyUSB[13579]", SYMLINK="pilot" Now, the link always points to correct device (odd numbered). Or at least this will work as long as I don't have any device that creates single ttyUSB entry, pushing my Palm to use even numbers for second device...
Milivojevic, it looks a bug in udev. Thanks for debugging.
> Or at least this will work as long as I don't have any device that creates single > ttyUSB entry, pushing my Palm to use even numbers for second device... Problem!
This request was evaluated by Red Hat Engineering for inclusion in a Red Hat Enterprise Linux maintenance release. Red Hat does not currently plan to provide this change in a Red Hat Enterprise Linux update release for currently deployed products. With the goal of minimizing risk of change for deployed systems, and in response to customer and partner requirements, Red Hat takes a conservative approach when evaluating enhancements for inclusion in maintenance updates for currently deployed products. The primary objectives of update releases are to enable new hardware platform support and to resolve critical defects. However, Red Hat will further review this request for potential inclusion in future major releases of Red Hat Enterprise Linux.