dfu-programmer says no device present, but lsusb says DFU device _is_ present

I'm using an Arduino Uno R3 with Debian 6 (stock Debian kernel 2.6.32-5-686, build date Jan 11 12:29:30 UTC 2012). avrdude 5.11.1 programs the 328p successfully, and programs run as expected. I've never reprogrammed the 16u2 yet, but I want to reprogram it so I can use the Arduino as a HID using the built-in USB connector. When I put the 16u2 into DFU mode by resetting it (the stock Uno R3 already has a pulldown resistor on HWB), I know it goes into DFU mode successfully because /dev/ttyACM0 disappears and "lsusb -v" says the device changes from an Arduino comm device (idVendor 0x2341, idProduct 0x0043, bcdDevice 0.01) to an Atmel DFU device (idVendor 0x03eb Atmel Corp., idProduct 0x2fef, bcdDevice 0.00).
But using dfu-programmer 0.5.4, when I run "dfu-programmer at90usb82 get" as root, it says "dfu-programmer: no device present." The same thing happens if I try it with at90usb162 or atmega8u2 instead of at90usb82, or erase instead of get.
I've searched the web for answers, but the only problems other people mention having are problems getting the Arduino into DFU mode, or dfu-programmer failing because they aren't running it as root, neither of which applies in my case.
Any ideas on what's wrong?

dhunt says (http://arduino.cc/forum/index.php/topic,92148.msg692355.html#msg692355) "dfu-programmer 0.5.4 does not know about the atmega16u2".
My new problem is that I'm unable to build dfu-programmer from source (see Resetting the Arduino Uno R3 Atmega16U2 - #12 by system - Microcontrollers - Arduino Forum) but at least my original question is answered.