2009-12-24 34 views
6

Làm thế nào để xác định một cách có lập trình tốc độ cổng USB trong các thiết bị nhúng đang chạy nhân Linux?Tốc độ cổng USB Linux

+2

Điều này thuộc về lỗi Máy chủ hoặc bạn cần chỉ định ngôn ngữ nào muốn sử dụng. –

+3

Đừng ngớ ngẩn: các thiết bị nhúng không có quản trị viên máy chủ (và không phải là những người chạy mã trên chúng "người dùng", vì vậy nó không phải là một câu hỏi superuser!). Đó rõ ràng là một câu hỏi về ** phát triển ** nhúng, hỏi về lập trình cho các tính năng cụ thể của hệ điều hành. – caf

+2

Tất cả những gì bạn cần là lsusb -t – sMyles

Trả lời

16

Bạn có thể đọc /sys/bus/usb/devices/usb?/speed - nó sẽ cung cấp cho bạn tốc độ bus của (các) hub gốc trong Mbps: 1.5, 12, 480 hoặc 5000. Hai đầu tiên cho biết USB1 (tốc độ thấp hoặc tốc độ tối đa), USB2 thứ ba và USB3 thứ tư.

+0

và nó nói 5000 nếu nó là USB3. đây là những trung tâm gốc. –

1

Điều này thay vì phụ thuộc vào mã cần thông tin đang chạy. Nếu bạn muốn sửa đổi hành vi trình điều khiển thiết bị USB hạt nhân dựa trên tốc độ kết nối thì cấu trúc usb_device được truyền cho trình điều khiển bởi hệ thống con USB chứa một liệt kê tốc độ. Nếu bạn muốn một ứng dụng trong không gian người dùng phát hiện tốc độ kết nối thiết bị thì hãy thử đi bộ/sys/bus/usb tree, bạn sẽ có thể nhận dạng thiết bị USB của mình bằng cách kiểm tra các mục idProduct và idVendor. Một khi bạn có một trận đấu thì mục tốc độ sẽ cung cấp cho bạn những gì bạn cần. Nếu bạn có nhiều thiết bị được kết nối thì bạn có thể cần tìm cách kết hợp USB id với thiết bị cụ thể. Nói chung, USB đến ánh xạ thiết bị khác nhau trên bất kỳ hỗ trợ cắm nóng nào cho biết thiết bị có cung cấp số sê-ri và hệ thống phụ tóm tắt chức năng được cung cấp bởi thiết bị USB hay không.