I had trouble getting the Android toolchain working under Fedora 14 with my Nexus One. The Android documentation only gives the correct udev rules for Ubuntu, so I had to dig around to find something that worked.
My solution is to add the following into /etc/udev/rules.d/51-nexus-one.rules. You should not need anything besides this to get it working.
SUBSYSTEM=="usb", ATTRS{idProduct}=="4e12", ATTRS{idVendor}=="18d1", MODE="0666" SYMLINK+="android_adb"
After which you run udevadm control --reload-rules
, and plug in your phone. At this point, lsusb should display your Nexus in the listing.
In order to have adb recognize the device, you need to kill the server
adb kill-server
after which
adb devices
should display your device.
Try the above first. If you get stuck, these tools can be helpful:
- Tailing /var/log/messages will display what happens when you plug in your phone
- Running
udevadm control --reload-rules
as root will reload your rules - Running
lsusb
will tell you which USB devices are plugged in.
As long as my rules file was invalid, the phone would not show up when I ran lsusb. There is no need to do anything with adb until the device shows up with lsusb. An invalid rules file will prevent the phone from being listed by lsusb, if you comment out everything in the file, the phone should show up.
Once you have a rules file that works with your phone, you should be able to use adb (after killing the server first) as normal.
Thanks, that helped. Wonder why the idVendor changed though, hm.