簡単に言うとroot権限でadbのdaemonが起動していないからそうなる。
特にAndroid Studioでは、裏でadbが勝手に起動しているので、結構引っかかる。
しかもWindowsやMacだとこの現象が起きないので、訳がわからなくなる。
以下のように、adbを一旦終了してroot権限で起動し直せば大丈夫。
adb kill-server sudo adb devices
注意点として、Android側も開発者ツールでUSB接続が有効になっているのを確認しておくこと。
また、毎回やるのは面倒なのでsystemdにadbを登録しておくと便利。 ちょうどいい感じなリポジトリがあった。
https://github.com/tweakdeveloper/adb-starter
以下は、リポジトリがなくなっても大丈夫なように上記URLから転載したもの。
[Unit] Description=Android Debug Server Daemon [Service] Type=forking User=root ExecStart=/usr/bin/adb start-server ExecStop=/usr/bin/adb kill-server [Install] WantedBy=multi-user.target