GNU/Linux >> Linux の 問題 >  >> Linux

Android - 名前のないi.onik androidタブレットがadbによって認識されない - adbデバイスが空です

イジーの答えは誤解を招くものです。 2 つの無関係なものが混同されていました (片側の adb のベンダー ID リストと、反対側の Linux の権限設定)。

1) adb によって考慮されるデバイス:

Adb には、試行する USB ベンダー ID のハードコーディングされたリストがあります。例えば。 HTC 携帯電話は、リストされている (ソース ファイル usb_vendors.c) 0xbb4 を使用しますが、0x2207 は使用しません。

のみ このリストに (ソースにパッチを適用せずに) 追加する方法は、ベンダー ID をファイル $HOME/.android/adb_usb.ini に入れることです。 、 1行ずつ。 (HOMEはセットアップされていますよね?)

特別なケーブルは必要ありません。

2) 非ルート アクセスの権限設定:

udev-fiddler は、例えばへのユーザーアクセスを与えることです。 /dev/bus/usb/002/009 (バス番号/デバイス番号の変更; lsusb を参照)

この詳細は、ルートとして adb を実行したため、元の投稿者の質問とは関係ありません。


Ubuntu 11.10 での Nexus 4 用の ADB の構成で説明されているように、Linux では ~/.android/adb_usb.ini のいずれかにリストされていることが重要です。 (ユーザーベース) または /etc/udev/rules.d/51-android.rules .両方のファイルの構文は異なります。一方、最初のケースでは、ベンダー ID (echo 0x18d1 >> ~/.android/adb_usb.ini Nexus 4 の場合)、UDEV ルールのエントリはもう少し複雑です。詳細は、リンクされた質問 (またはその回答) にあります。

私はkrlmlrの場合、それは「どちらか一方」ではありませんでしたが、一見両方の部分が必要だったようです(以前はそれがなかったし、 adb_usb.ini を使用したことさえありませんでした) -- しかし、それはそのような例外がないという意味ではありません)。両方の場所にデバイスを追加することにより (いずれにせよ害はありません)、最終的にデバイスが表示されました。

2 つの追加の注意事項:UDEV ルールを変更した後、UDEV サービスを再起動して変更を受け入れる必要があります。 Ubuntu では、これは sudo service udev restart 経由で実行できます。 (または、単純に udevadm control --reload-rules を使用して UDEV に強制的にルールをリロードさせることもできます。 )。それでもデバイスが検出されない場合は、変更中に接続された可能性があります。次に、USB ケーブルを取り外して再接続する必要があります。もちろん、USB デバッグ デバイスで有効にする必要があります:)

lsusb の次の出力に基づく 問題の Android デバイスの場合:

Bus 002 Device 009: ID 2207:0010  

/etc/udev/rules.d/51-android.rules を作成する必要がありました root として 次の内容で:

SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0010", MODE="0660", GROUP="plugdev"

そして ~/.android/adb_usb.ini を作成する 次の内容で:

0x2207

1 つ目は、通常のユーザー (グループ plugdev に属するユーザー) を許可するために必要です。 ) デバイスにアクセスします。許可マスク 0660 に注意してください よく見られる 0666 の代わりに これはセキュリティの観点からは弱いです (後者は「世界」アクセスを許可しますが、前者は「ユーザーとグループ」アクセスのみを許可します)。 adb になるように 2 番目が必要です。 最初にデバイスとの通信を試みます。その後:

sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules
adb kill-server

Androidデバイスを抜き差しします。次に、

adb devices

最後に Android デバイスを示しました。

LG Optimus 4X HD の場合 、 /etc/udev/rules.d/51-android.rules に 1 行追加するだけで十分でした :

SUBSYSTEMS=="usb", ATTRS{idVendor}=="1004", ATTRS{idProduct}=="61a6", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"

たぶん SYMLINK オプションは、~/.android/adb_usb.ini の余分なエントリを必要としなかったという違いを生みます .


Linux
  1. Linux –無効な構成 `x86_64':マシン` x86_64'が認識されませんか?

  2. V4l2loopbackデバイスがアプリケーションに表示されませんか?

  3. losetup:コマンドが見つかりません

  1. Android adb が見つかりません

  2. Android Debug Bridge (adb) デバイス - 権限なし

  3. Windows で sshpass が認識されない

  1. uflash:コマンドが見つかりません

  2. 不正なデバイスを示すadbデバイスを実行していますか?

  3. Linux カーネルがパーティション テーブルを認識しない