2018年10月17日水曜日

Chrome OS/Linuxから adb devices などができないとき

Chrome OS/Linuxから adb devices などを実行した際、List of devices attached が ???????????? no permissions になってしまうことがあります。今回それにハマったので、以下に対策方法を記しておきます。

まず lsusb コマンドで、デバイスの idVendor:idProduct を調べます。

  $ lsusb
    :
  Bus 002 Device 003: ID 0fce:51d9 Sony Ericsson Mobile Communications AB
    :

今回は idVendor = 0fce, idProduct = 51d9 ということがわかったので、以下のような内容を実行します。

  $ echo 'SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″' | sudo tee /etc/udev/rules.d/99-android.rules
  $ sudo chmod a+rx /etc/udev/rules.d/99-android.rules
  $ sudo udevadm control --reload-rules
  $ sudo udevadm trigger --verbose --action=add --subsystem-match=usb

これで、/etc/udev/rules.d/ に 99-android.rules というファイルが作られ、中身に今調べた内容が記録された状態で udevadm が再起動されました。

次に、adb serverを“sudo 付きで”再起動します。

  $ sudo adb kill-server
  $ sudo adb start-server

この状態で adb devices を実行して、先ほどと同じようなエラーが出なければOKです。