Question: I've used this official [tutorial](http://developer.android.com/guide/developing/device.html) to setup my machine so it could detect my Android devices. But from some reason ADB doesn't detects any of my devices properly(Hero and Magic), ie it doesn't show device's IMEI or Firmware version but a bunch of question marks: 

> 
> ?????????????
> 
> 
> 

I've tried googling for a solution but I've found nothing.

Answer: 
The same problem on Ubuntu 9.10 x64 + HTC Desire

Solution:

* Create/edit a udev rules file: "sudo vim /etc/udev/rules.d/51-android.rules"
* Add the following line: SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"

Here 0bb4 is HTC id. You can "lsusb" to list your vendor id.

* Restart udev: "sudo reload udev"
* Connect device
* Run "adb devices"

and you should see your device

Taked from: <http://alan.lamielle.net/2010/01/22/nexus-one-usb-in-ubuntu-9-10>
The problem is fixed. I'm not sure how, though.

The last thing I've done is adding the android /tools directory to the system path. Earlier today when I attached my HTC Hero device and executed `adb devices` command in console, adb detected my device. I've started Eclipse and tried running one of the applications and it worked.