ADB trên Ubuntu không công nhận Nexus 4


8

Tôi không thể nhận điện thoại Nexus 4 của mình trên ADB (Ubuntu 12.04 với kernel mới hơn được cài đặt: 3.8.0-30-generic). Chế độ nhà phát triển được bật trên điện thoại.

Thiết bị hiển thị trong lsusb :

$ lsusb
...
Xe buýt 003 Thiết bị 034: ID 18d1: 4ee5 Google Inc. 
...

Nhưng khi tôi chạy các thiết bị adb, tôi nhận được một danh sách trống. Tôi tìm thấy nhiều bài viết trên internet về vấn đề này nhưng không ai trong số họ giải quyết vấn đề. Có hai giải pháp.

  • Thêm quy tắc vào /etc/udev/rules.d/51-android.rules . Tôi tìm thấy các biến thể khác nhau cho nội dung của tập tin này. Trong hầu hết các trường hợp, một idVendoridProduct giá trị nên được thiết lập dựa trên đầu ra của lsusb . Dưới đây là một số ví dụ mà tôi đã thử
SUBSYSTEM == "usb", ATTRS {idVendor} == "18d1", ATTRS {id SẢNt} == "4ee5", MODE = "0666" GROUP = "androiddev", SYMLINK + = "android% n"
SUBSYSTEM == "usb", ATTR {idVendor} == "18d1", MODE = "0666", GROUP = "plugdev"
SUBSYSTEM == "usb", ATTRS {idVendor} == "18d1", SYMLINK + = "android_adb", MODE = "0666"
SUBSYSTEM == "usb", ATTR {idVendor} == "18d1", ATTR {id SẢNt} == "4ee5", MODE = "0666", OWNER = "my-login" 

Sau khi thêm điều này, tôi đặt quyền cho tệp quy tắc thành 644 và tôi khởi động lại PC / khởi động lại udev, khởi động lại điện thoại và cắm vào Nexus 4 của tôi.

  • Thêm id nhà cung cấp vào ~ / .android / adb_usb.ini.
tiếng vang 0x18d1 >> ~ / .android / adb_usb.ini

Tôi đã chạy các thiết bị adb với tư cách là người dùng root và bình thường nhưng tôi chỉ nhận được một danh sách trống:

thiết bị $ adb
* daemon không chạy. bắt đầu ngay bây giờ trên cổng 5037 *
* daemon bắt đầu thành công *
Danh sách các thiết bị kèm theo 

Bất kỳ ý tưởng về cách giải quyết vấn đề này? Bất kỳ trợ giúp của các đề xuất sẽ được đánh giá rất cao.

Câu trả lời:


7

Không đủ để làm cho trang tùy chọn Nhà phát triển xuất hiện trong menu cài đặt (bằng cách nhấn liên tục vào số bản dựng). Trên trang đó, có một tùy chọn gỡ lỗi USB , mặc định tắt.

Khi bật gỡ lỗi USB, việc kết nối thiết bị của bạn với PC bằng USB sẽ xuất hiện thông báo "Gỡ lỗi USB được kết nối", bất kể adbhiện đang chạy trên PC.


Bạn có thể vui lòng chi tiết câu trả lời của bạn? Nơi có thể tìm thấy "trang" này?
Luís de Sousa


Tôi đang cố gắng kết nối thông qua adbvì màn hình cảm ứng bị hỏng. Tôi không có phương tiện để truy cập bất kỳ menu và ứng dụng nào của nó. Có cách nào khác để kích hoạt tính năng gỡ lỗi USB này không?
Luís de Sousa

1

Để có bộ hướng dẫn đầy đủ hơn về cách nhận quy tắc udev của Nexus 4 trên ubfox được định cấu hình, hãy làm theo các hướng dẫn sau:

Cách tìm ID nhà cung cấp thiết bị của bạn

Bạn có thể tìm thấy ID nhà cung cấp cho các thiết bị được kết nối usb bằng lệnh linux sau:

lsusb

Thao tác này sẽ tạo danh sách tất cả các thiết bị USB được kết nối, vì vậy hãy đảm bảo thiết bị của bạn được kết nối trước khi bạn làm như vậy.

Bus 001 Device 004: ID 18d1:4ee2 Google Inc.

Phần đầu tiên của trường sau ID là ID nhà cung cấp (18d1) và phần thứ hai tương ứng với chế độ mà thiết bị được kết nối. Trong trường hợp này, 4ee2 bằng với chế độ MTP khi gỡ lỗi.

TẠO QUY TẮC UDEV CHO NEXUS 4

Để có thể phát hiện điện thoại Nexus 4 trong Ubuntu, điều đầu tiên là tạo ra các quy tắc udev thích hợp sẽ cho phép hệ thống phát hiện điện thoại.

Các quy tắc udev này sẽ có thể xử lý 4 trường hợp khác nhau:

  • điện thoại được kết nối ở chế độ MTP (bật hoặc tắt USB)
  • Điện thoại được kết nối ở chế độ PTP (bật hoặc tắt USB)
  • Điện thoại được kết nối ở chế độ Fastboot
  • Điện thoại được kết nối ở chế độ Recovery

Họ sẽ được tuyên bố trong /etc/udev/rules.d/99-android.rules. Nếu tập tin đã tồn tại, chỉ cần nối thêm nội dung vào cuối của nó.

# sudo gedit /etc/udev/rules.d/99-android.rules

Dưới đây nội dung phải được thêm vào. Đảm bảo thay thế trường đăng nhập của bạn bằng tên người dùng phù hợp mà bạn đã đăng nhập.

# Google Nexus 4 16 Gb
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee1", MODE="0666", OWNER="your-login" # MTP media (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0666", OWNER="your-login" # MTP media with USB debug on(multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee5", MODE="0666", OWNER="your-login" # PTP media (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee6", MODE="0666", OWNER="your-login" # PTP media with USB debug on (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0666", OWNER="your-login" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666", OWNER="your-login" # Recovery

Khởi động lại dịch vụ

Sau khi hoàn thành, dịch vụ udev phải được khởi động lại.

# sudo service udev restart

Lưu ý rằng trong một số trường hợp, cũng cần phải khởi động lại adb bằng:

adb kill-server
adb start-server

Hoặc khởi động lại hoàn toàn hệ thống với:

sudo reboot -n

Kết nối lại cáp USB (thay vì khởi động lại) cũng có thể hoạt động.

Cho phép kết nối ADB

Nếu bạn vừa kích hoạt tùy chọn gỡ lỗi ADB trên điện thoại và tạo kết nối mới này, lệnh ADB có thể liệt kê thiết bị của bạn dưới dạng unauthorized. Chỉ cần kiểm tra màn hình điện thoại của bạn sau đó cho phép kết nối mới.

Tín dụng

Hầu hết các thông tin này được tìm thấy tại http://bernaerts.dyndns.org/android/267-android-nexus4-root-twrp-ubfox . Đây là một hướng dẫn root cho nexus 4 trên Ubuntu. Tôi chỉ sử dụng bước đầu tiên của hướng dẫn này.


Tôi vừa thử giải pháp này từ Ubuntu 14.04 và ngay cả sau khi khởi động lại hệ thống, Nexus 4 không được nhận dạng.
Luís de Sousa

Bạn đã thử bắt đầu adb với quyền root? Xem một trong những câu trả lời khác về Ubuntu 14.04 + bạn đã kiểm tra chế độ kết nối USB trên thiết bị chưa?
hcpl

Vâng, tôi đã thử nó với sudo. Điện thoại được kết nối ở chế độ MTP với gỡ lỗi.
Luís de Sousa

1

Tôi đang chạy Ubuntu 14.04 LTS và tôi thấy rằng tôi phải chạy adb với quyền root để phát hiện điện thoại của mình. Vừa ./adb devicesnãy tôi chạy (từ thư mục công cụ nền tảng) và đưa ra một danh sách trống. Tôi khởi động lại adb với quyền root bằng cách chạy ./adb kill-servervà sau đó sudo ./adb start-server. Bây giờ adb devicestrả lại:

List of devices attached 
01d17087d29dec60    device

Trong khi trước khi nó trông như thế này:

Danh sách các thiết bị kèm theo


giết, sau đó bắt đầu như root làm việc cho tôi. Sử dụng Nexus 5
Russ Wheeler

1
Tôi mới thử giải pháp này trên Ubuntu 14.04 và tôi vẫn nhận được một danh sách thiết bị trống.
Luís de Sousa

0

FYI: Gần đây tôi đã cập nhật phiên bản Android từ 4.4 lên 5.0 trên điện thoại của mình và ADB sẽ không còn hiển thị thiết bị như đã kết nối. Có vẻ như phương thức kết nối USB MTP đã chính xác trước khi nó phải là PTP .


Bạn có thể vui lòng chi tiết câu trả lời của bạn? Chính xác thì phương pháp này nên được điều chỉnh ở đâu?
Luís de Sousa

Như tôi đã nói MTP là chính xác TRƯỚC, SAU KHI cập nhật PTP là chính xác.
Flowtron 22/03/2016
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.