Pi là máy khách USB


16

Tôi đang tìm cách để Pi hoạt động như một máy khách USB và giả trang thành một ổ đĩa flash.

Tôi đã thấy rất nhiều đề xuất, tuy nhiên hầu hết trong số chúng đã cũ (1+ năm) và mơ hồ / không đầy đủ - tôi muốn yêu cầu làm mới về những gì đã hoạt động, những gì không, v.v.

Thay vào đó, có rất nhiều gợi ý để sử dụng Pi như một thiết bị loại NAS thay thế. Điều này sẽ không hoạt động cho mục đích của tôi, vì tôi có một máy chủ "ngu ngốc" chỉ có thể chấp nhận ổ đĩa flash (và tôi muốn sử dụng Pi để làm cho nó "thông minh hơn")

tóm tắt các đề xuất mà tôi đã thấy:

  1. giả lập máy khách USB thông qua các chân GPIO
  2. giả lập kết nối nối tiếp qua GPIO, sau đó sử dụng các cáp hiện có để đi từ nối tiếp sang USB
  3. sử dụng mô hình A, sử dụng phần mềm để thuyết phục pi hành động như một khách hàng
  4. sử dụng cáp USB từ máy chủ đến máy chủ (không chắc chắn tôi đã thấy bất kỳ máy nào hỗ trợ linux ..)

bất cứ ai có thể giải thích sâu hơn một số giải pháp được đề xuất?

Tái bút - Tôi không cần và cũng không mong đợi hiệu năng cao trong cấu hình này, tốc độ USB 1.1 là đủ.

chỉnh sửa: Tôi cũng sẽ quan tâm đến bất kỳ lựa chọn thay thế nào có thể cung cấp chức năng này, tuy nhiên tôi chưa thấy bất kỳ thanh usb "thông minh" hoặc biến thể android-on-a-stick nào có thể.


1
Chắc chắn có cáp mà linux hỗ trợ; đây là một phần của mục tiêu với người usbnetlái xe Họ có một trang đề cập đến một số; nó có vẻ lỗi thời vì vậy có thể có nhiều hơn bây giờ. Trước khi bạn mua bất cứ điều gì kiểm tra xung quanh.
goldilocks

Một số nhận xét cụ thể cho mô hình A về vấn đề này tại đây
goldilocks

Bạn cũng có thể thấy các dự án như usbip: stackoverflow.com/a/19689740/544721 hoặc linux-usb.org/gadget hữu ích trong việc lắp ráp giải pháp.
Grzegorz Wierzowiecki

Câu trả lời:


6

Bạn sẽ gặp may nếu các cổng USB trên PI là OTG chứ không phải USB Host.

Có lẽ bạn nên xem xét một số thiết bị khác vì không có giải pháp nào bạn được đề xuất có thể thiết thực:

giả lập máy khách USB thông qua các chân GPIO: Về lý thuyết có thể mô phỏng USB bằng cách sử dụng bit-banging các chân. Điều này có thể gây ra chi phí phần mềm khá lớn về phát triển phần mềm. Giải pháp sẽ tương đối khó thực hiện. Về lý thuyết là có thể nhưng bạn cần thực hiện phân tích chi phí / lợi ích.

mô phỏng kết nối nối tiếp qua GPIO, sau đó sử dụng các cáp hiện có để chuyển từ nối tiếp sang USB: Giải pháp này sẽ không phục vụ mục đích của bạn vì bạn (chứ không phải Máy chủ DUMB của bạn) sẽ muốn mô phỏng "Thiết bị lưu trữ khối" (loại thiết bị 0x08) chứ không phải Mô phỏng thiết bị "Truyền thông và CDC" (loại thiết bị 0x02).

sử dụng mô hình A, sử dụng phần mềm để thuyết phục pi hành động như một khách hàng: Không rõ những gì bạn đã được đề xuất

sử dụng cáp USB từ máy chủ đến máy chủ (không chắc chắn tôi đã thấy bất kỳ thiết bị nào hỗ trợ linux ..): Trong trường hợp này, cả hai thiết bị sẽ thấy thiết bị Mass Storage được kết nối với bộ điều khiển máy chủ của chúng. Sử dụng phương pháp này, Raspberry pi của bạn sẽ hiển thị dưới dạng thiết bị lưu trữ hàng loạt xuất bộ nhớ dựa trên thẻ SD của bạn. Với giải pháp này, bạn có thể muốn xem xét loại lưu trữ nào bạn muốn xuất sang máy chủ DUMB. Máy chủ DUMB của bạn không được tự xuất dưới dạng thiết bị lưu trữ lớn. Tại thời điểm này, bạn sẽ có các tùy chọn USB khác ngoài Raspberry Pi.


Những loại thiết bị khác bạn muốn giới thiệu? (Tôi hy vọng một cái gì đó có wifi và khả năng chạy dropbox hoặc đồng bộ hóa bittorent hoặc một cái gì đó tương tự)
user2813274

Nhu cầu của bạn về việc phục vụ máy chủ DUMB khá rõ ràng. Rõ ràng hơn là cần thiết.
Chetan Bhargava

2
OK, hôm nay tôi có một ổ đĩa flash trong xe hơi để phát mp3 - bất cứ khi nào tôi muốn thay đổi nhạc trên đó, tôi phải di chuyển ổ đĩa flash một cách vật lý - tôi muốn có một thiết bị đồng bộ hóa với một thứ gì đó trên máy tính để bàn của tôi và trình bày giao diện USB cho xe hơi - đồng thời, cổng USB trên model A Pi là chip OTG (và trên model B, nhưng cổng ethernet sẽ vô hiệu hóa chức năng đó) - nguồn
user2813274

Hãy chuyển sang trò chuyện (Bakery) để chúng tôi không làm lộn xộn bài đăng với các bình luận :-)
Chetan Bhargava

2

Hiện tại có một biến thể Pi zero, có thể làm những gì tôi muốn và Adaf nhung đã thực hiện một hướng dẫn cho nó:

https://learn.adafbean.com/turn-your-raspberry-pi-zero-into-a-usb-gadget/overview

Tên chính thức cho điều này dường như là "hệ thống tiện ích usb" và chỉ cần một cáp OTG.

Tôi chưa thể kiểm tra điều này vì Pi zero đã hết hàng ở khắp mọi nơi, nhưng tôi nghĩ rằng đây hiện là con đường tốt nhất

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.