首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libusb批量的最大传输大小是多少?

libusb批量的最大传输大小是多少?
EN

Stack Overflow用户
提问于 2021-07-17 12:16:31
回答 1查看 100关注 0票数 1

最近,我正在开发一个在Linux上运行的自定义USB接收器程序。我选择使用libusb来开发它。由于带宽较大,我需要更大的总传输大小。此时,当我提交超过15MB (每次批量传输1MB,第16次提交失败)时,将出现错误:

代码语言:javascript
复制
[INFO] submit transfer [0]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [1]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [2]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [3]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [4]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [5]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [6]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [7]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [8]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [9]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [10]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [11]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [12]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [13]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] submit transfer [14]: [0] LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
libusb: error [submit_bulk_transfer] submiturb failed error -1 errno=12
[INFO] submit transfer [15]: [-1] LIBUSB_ERROR_IO
libusb: error [submit_bulk_transfer] submiturb failed error -1 errno=12

这是ubuntu18.04上的测试结果。

相关系统信息:

代码语言:javascript
复制
Linux xxx 5.4.0-77-generic #86~18.04.1-Ubuntu SMP Fri Jun 18 01:23:22 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

系统RAM: 20 RAM

当我在Raspberry Pi 4B上测试它时,我也遇到了同样的问题。我没有通过Google找到相关问题的答案(可能使用了错误的关键字?)

有一个非常类似的问题here,但他说,最大限制是一个整数可以表示的最大值,但情况似乎并非如此。

任何建议或提示都会对我有很大帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-22 22:44:55

事实证明,我用谷歌很糟糕,开源真的很棒!

我深入研究了代码,发现了内核源代码中的内存限制:https://github.com/torvalds/linux/blob/3d5895cd351757f69c9a66fb5fc8cf19f454d773/drivers/usb/core/devio.c#L133

现在我可以通过/sys/module/usbcore/parameters/usbfs_memory_mb设置内存限制了

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68417347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档