For several months now, I've been happily using a cheap 64M usb keychain with linux 2.4.22 and debian unstable. At home, I connect it to a Via usb controller, for which I use the usb-uhci module:
[orr](0) % lspci | grep USB 00:04.2 USB Controller: VIA Technologies, Inc. USB (rev 10) 00:04.3 USB Controller: VIA Technologies, Inc. USB (rev 10) This is a uniprocessor Athlon. At work, my workstation is an SMP pentium III, with a serverworks chipset and an ohci usb controller: [absolut](0) % lspci | grep USB 00:0f.2 USB Controller: ServerWorks OSB4/CSB5 OHCI USB Controller (rev 04) Plugged into the USB controller is a kinesis USB keyboard with a built-in USB hub. I connect the keychain to the keyboard when I use it. [absolut](0) % lsusb Bus 001 Device 003: ID 05f3:0007 PI Engineering, Inc. Bus 001 Device 002: ID 05f3:0081 PI Engineering, Inc. Bus 001 Device 001: ID 0000:0000 Both setups worked fine with 2.4.22. The keychain was formatted with three partitions: one big FAT one at the beginning for compatibility (though it was only used once under linux), a small ext3 partition for use under linux, and an ext2 partition intended to be read-only. The read-only partition contained ssh keys, and the usb-storage hotplug script would mount it read-only by uuid, and if it found an active ssh-agent and X session, would run ssh-askpass connected to them and load the key with a timeout. The overall effect was that I could plug my keychain into a workstation, enter a password into the box that popped up, and have the key loaded into the ssh-agent with a timeout. There were always some problems with this under 2.4.22, but they were never fatal. Sometimes, after inserting the keychain, the kernel would detect no partitions on the device. Running 'blockdev --rereadpt /dev/sda' was always enough to fix this, so I added it to the usb-storage hotplug script. Another problem was that sometimes processes run under hotplug would be killed for no reason, when the same script run manually would work fine. This always happened at the same point when it happened at all. I never had time to debug this, but worked around it instead. It Last friday, I tried out 2.6.0-test9-bk12 on the dual PIII at work. I was curious to see if the process-dying problem was cured, so I tried doing the hotplug thing a few times while tinkering with the script. It worked a few times, and the process kill problem even seemed to be gone. Then one time when I plugged in the keychain, there were no partitions. /proc/partitions only showed /dev/sda. So I tried blockdev --rereadpt a bunch of times, but still no dice. It was the end of the workday, so I shrugged and went home. At home, with the same 2.4.22 setup that's always worked, it still wouldn't work. Further investigation showed that the keychain is completely hosed, even though there was _no_ write access ever attempted on it under 2.6! I've made two copies of the raw device, one with cat and another with dd using bs=512. They differ. I've combed through them in every way I know how. There are recognizable things in there, like the copy of putty that was on the fat partition. But there are no recognizable pieces of ssh keys (except within the putty binary :), nor do any ext2/3 signatures remain (i'm looking for the 0xEF53 magic that file(1) uses, in both byte orders). The partition table is completely wiped. The image read with cat is all 1's up to an offset of 0x50000 (320k). The same area read with dd is entirely different. The first sector begins with this odd repeating pattern: 0000000: 948b 45f0 8945 988b 45f4 8945 9c8b 45f8 ..E..E..E..E..E. 0000010: 8945 a08b 45fc 8945 a48b 45e8 8945 a88b .E..E..E..E..E.. 0000020: 45ec 8945 ac8b 45d0 8945 b08b 45d4 8945 E..E..E..E..E..E 0000030: b48b 45c4 8945 b88b 45c8 8945 bcc7 45f4 ..E..E..E..E..E. so, I have kernel development experience and i'm willing to start debugging this. But since that will involve reading and writing this usb key, I want to ask here first if there's any possiblity of recovering the data that was there. I have some slim hope that someone knows what happened, and there might be some way to read the key that will return the original data unmolested. any ideas? thanks, Jason ------------------------------------------------------- This SF.Net email sponsored by: ApacheCon 2003, 16-19 November in Las Vegas. Learn firsthand the latest developments in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! http://www.apachecon.com/ _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel