TL;DR: use Windows XP, in a VM if you like
I own a TomTom XL navigator. It typically gets used once a year when we make our annual pilgrimage to the West Country. Every year I buy the newest map and every year I have trouble getting it on the device - the copying is very, very slow. I'm not the only one either. I thought it was due to using OS-X, so I thought I'd try some alternatives. Below is the list of results:
- OS-X 10.7, mbp: didn't complete in an amount of time I was willing to wait. Could abort in TomTom Home and eject. Error message: kernel: USBF: 409117.102 AppleUSBEHCI[0xffffff8012585000]::Found a transaction past the completion deadline on bus 0xfd, timing out! (Addr: 5, EP: 1) in Console.
- Windows Server 2008 R2, desktop: didn't complete in an amount of time I was willing to wait, hung Explorer windows. Could not (always) close TomTom Home, could not always cleanly reboot. Error message: hundreds of Event Id 51. Description: An error was detected on device \Device\Harddisk1\DR1 during a paging operation. in Event log.
- Linux (Ubuntu 12.04), desktop (same machine as for Win2008R2), using a manual copy of files or a dd of a disk image: seemed to hang permanently, unkillable process. Error message: kernel: usb XX-XX: reset high speed USB device using uhci_hcd and address XX in dmesg.
- Windows XP (mbp, in a Parallels VM): success!. Took roughly 45 minutes. Some Event Id 51s in event log, but only some.
I think the USB controller on the XL is just not very good, and modern OS's have more trouble with it. People talk on the intertubes about letting it run for three days, maybe that would have worked on OS-X.
Things that I tried that didn't help:
- OS-X, Linux: Stopping the copying when the first error appears, ejecting and restarting - it would still get stuck on the single big file.
- Linux: Setting max_sectors in /sys/block/sdX/device
- Repartitioning or reformatting the device, including moving the start of the partition
- Running TomTom's 'clear flash' tool
- Dropping from high-speed to full-speed in the BIOS (using both Windows 2008 and Linux). (I'm not sure this actually affects how the bus works under OS control.)
- Using a powered USB hub instead of the computer's ports
BTW, if you are a Windows user, you should be able to get a free XP VM from Microsoft. I haven't tried that a) with TomTom or b) at all.