Some people have had trouble with DFU if they use hubs, or USB3. So make sure you are connecting directly to a USB2 or USB1 port on the computer. And if ever you try to reset the Arduino by unplugging it from the USB port and plugging it back in, always make sure you wait 10 seconds between unplugging and plugging in. If you plug it in too quickly after unplugging the USB chip can get confused. It can take another 10 seconds after plugging in for Linux to detect it.
If you do all that and there's still nothing showing on dmesg then it's probably faulty.