2016-09-22 38 views
13

Tóm tắt (Những gì chúng ta đã làm, những gì chúng ta đã cố gắng):Làm thế nào để thiết lập kết nối adb qua USB giữa hai máy tính

Về cơ bản, mục đích là để thiết lập một giao thức adb qua usb giữa hai máy tính Linux bằng cách sử dụng mã nguồn adb.

Envinronment là Ubuntu 16.0.4. Có gói android-tools-adbd (adb daemon) sẵn sàng để sử dụng trong hồ bơi với nguồn của nó.

Cũng có một nguồn trên link (adbd) này có thể đồng bộ với tùy chọn gcc -stc = C++ 14 được hỗ trợ trong 16.0.4 theo mặc định (hoặc gcc 5.2).

Chúng tôi có thể xây dựng gói từ nguồn hoặc sử dụng gói đã xây dựng thành công bằng cách sử dụng kết nối adb (phụ thuộc TCP/IP). Không có vấn đề gì về kết nối adb qua TCP/IP nếu hai máy tính được kết nối với cùng một mạng.

Thật không may, chúng tôi không thể đặt kết nối USB giữa hai máy tính có cáp A đến A (cả nam). Tiện ích ADB không hoạt động và không thiết bị nào nhận dạng được thiết bị kia. Chúng tôi không thể quyết định liệu có cần thiết cho một trình điều khiển rõ ràng bên cạnh tiện ích của ADB hay không.

Câu hỏi là (REAL câu hỏi để được giải đáp):

Làm thế nào để thiết lập một giao thức USB giữa hai máy tính Linux để giao tiếp adb có thể được thực hiện thông qua USB?

Có giải pháp nào cho nó không?

[--- EDIT ---]

GHI CHÚ:

  • Đi ngày thêm theo ngày, các vấn đề nhỏ trái. Đối với những người muốn tham gia; chúng tôi đang theo dõi this guide.

  • (Kernel phiên bản 4.4.0-38-generic)

  • Có vấn đề với chạy UDC (USB Device Controller) điều khiển chính xác. Sau khi kích hoạt ConfigFS theo modprobe usb_f_fs, xdg-adbd(có thể thực thi từ liên kết nguồn, adbd) hoạt động tốt cho đến khi if(...) phát hiện trình điều khiển udc. Chúng tôi đã thử chạy modprobe musb_hdrc nhưng không thấy tên trình điều khiển rõ ràng bên dưới /sys/class/udc.

(27.09.2016)


+2

'tài xế udc' không phải là một trừu tượng - 'xế udc' là phần cứng phụ thuộc. lý do tại sao nỗ lực 'modprobe musb_hdrc' của bạn thất bại là vì' musb_hdrc' là một trình điều khiển cho một chip điều khiển 'USB' cụ thể mà đơn giản không nằm trong hệ thống của bạn http://processors.wiki.ti.com/index.php/ Inventra_HDRC_USB_Controller –

+0

Tất cả những dự án mà bạn tìm thấy nơi mọi người quản lý để làm cho 'adbd' làm việc trên hệ thống của họ dường như khiến bạn rất bối rối. Phần mà bạn dường như bị thiếu là tất cả những câu chuyện thành công đã đạt được trên các bo mạch phát triển nhúng sử dụng các chip 'Bộ điều khiển thiết bị USB 'được hỗ trợ. Không có máy tính 'x86' chính thống nào có. –

Trả lời

5

Trước tiên, hãy để tôi chỉ ra chỉ vài điều về the guide bạn nói bạn đang theo đuổi:

  1. nó đòi hỏi (nó nói như vậy trong đoạn đầu tiên) bạn hiểu USB, điều ngược lại với việc thử để đặt kết nối USB giữa hai máy tính có cáp A đến A (cả nam) và mong muốn nó hoạt động.

  2. Linaro (tổ chức đã xuất bản hướng dẫn) được biết đến vì công việc của mình trong việc cải tiến Linux trên nền tảng ARM. Hướng dẫn chỉ cần không áp dụng cho máy tính dựa trên x86.

Ngoài ra bạn cần phải hiểu rằng USB là một giao thức không đối xứng giữa một USB Host (master) và một USB Device (nô lệ). Không có cách nào xung quanh quy tắc này. Để có thể kết nối 2 thiết bị bằng cách sử dụng USB - một thiết bị cần phải có bộ điều khiển USB được định cấu hình là USB Host và một thiết bị khác cần có bộ điều khiển USB được định cấu hình là USB Device. Sự cố với bộ điều khiển USB phần cứng đang được sử dụng trong máy tính cá nhân (độc lập hoặc được cài sẵn cho Intel PCH) là chúng chỉ có thể hoạt động như USB Host. Không có phần mềm nào có thể thay đổi điều đó.

Tất cả các dự án và tài nguyên bạn liên kết trong câu hỏi của bạn đang cố gắng chứng minh rằng kết quả mong muốn của bạn có thể được phát triển cho các nền tảng khác với PC.

Nếu bạn nhấn mạnh vào việc sử dụng PC làm USB Device - có rất ít bộ điều hợp USB thương mại (chủ yếu là bảng điều khiển bộ điều khiển USB), sử dụng chip điều khiển USB có hỗ trợ UDC. Nhưng vì sự hiếm có của họ, chúng thường khá đắt (những cái tôi thấy được bán với giá khoảng 200 đô la). Vì vậy, nếu ý định ban đầu của bạn là giảm chi phí phát triển của bạn bằng cách chuyển sang phần cứng hàng hóa - tùy chọn này cũng sẽ không giúp bạn.

Đây là cách một trong adapter đó trông giống như: NET2280EVB

Các vấn đề liên quan