问题标签 [rndis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux-kernel - linux cdc_ecm驱动vs rndis驱动
linux cdc_ecm驱动和rndis协议有什么关系?cdc_ecm 是否以任何方式基于微软的 rndis 规范?
从这个维基页面https://en.wikipedia.org/wiki/RNDIS
USB 实施者论坛 (USB-IF) 定义了至少三个具有类似“虚拟以太网”功能的非专有 USB 通信设备类 (USB CDC) 协议;其中之一 (CDC-ECM) 早于 RNDIS,并广泛用于与非 Microsoft 操作系统的互操作性,但不适用于 Windows。
似乎 cdc_ecm 是基于 microsoft rndis 的。
c# - 如果它因 ERROR_INVALID_PARAMETER 而失败,如何使用 setupapi DiInstallDevice 以编程方式 (RNDIS) 强制通用 Microsoft 驱动程序?
当我将 USB RNDIS 设备(Linux 小工具)插入 Windows PC 时,被视为“RNDIS”设备,没有驱动程序。为了让它工作,我去设备管理器,手动选择微软通用远程 RNDIS 驱动程序。
我的最终目标是从代码 (C#) 强制安装该通用 Microsoft 驱动程序,以避免用户手动执行此操作。我尝试了 devcon、pnputil 和其他方式,但没有任何效果。最后,我为DiInstallDevice Windows SetupAPI 实现了一个 pinvoke。
我可以同时检索 deviceInfoData 和 driverInfoData,其中包含有意义的数据。
对 DiInstallDevice 的最终调用总是失败并出现最后一个错误 87:ERROR_INVALID_PARAMETER。我错过了什么吗?有没有其他方法可以为无法识别的设备选择通用驱动程序?
android - 为什么 dwc3 usb 控制器没有报告 xfercomplete 事件?或者小工具驱动程序错过了那个事件?
使用usb的Android手机连接PC,打开rndis,然后在手机和PC之间进行iperf测试。经过几个小时的测试,rndis 的端点 ep1out 没有收到小工具驱动程序在发送传输命令后应该收到的 xfercomplete 事件。
我尝试将事件缓冲区大小从 256 扩大到 4096,也将 grxfifosize 从 delault value 扩大,但问题仍然存在。
手机有 8 个 cortex-A53 核心,但我们留下 1 个小核心(cpu0)和 1 个大核心(cpu7)在线,并通过设置 dwc irq 的 smp_affinity 设置 dwc 中断不路由到 cpu0,因为吞吐量原因。所以dwc3_interrupt在cpu7上运行,dwc3_thread_interrupt也在cpu7上运行。
很奇怪,如果我们将 irq 路由到 cpu0,并且 dwc3_thread_interrupt 在不同的 core(cpu7) 运行,问题就消失了,不明白为什么。
代码是来自 synopsys 的开源代码,您可以在 kernel/drivers/usb/dwc3/gadget.c 找到
提前致谢。
linux - 复合 USB CDC 小工具不适用于 Windows10 主机
我的问题类似于以下 url 问题。 复合 USB CDC 小工具不适用于 Windows 主机
我有一个带有 USB 设备接口的嵌入式 Linux 5.4(OpenSTLinux)系统
Window10 主机只检测 RNDIS 接口,忽略 ACM 接口。RNDIS 运行良好。
已应用以下设置
回声“0xEF”> ${d}/bDeviceClass
回声“0x02”> ${d}/bDeviceSubClass
回声“0x01”> ${d}/bDeviceProtocol
如果您知道问题的原因,请告诉我。
windows - Windows RNDIS 兼容设备:是否需要将 RNDIS 列为复合 USB 设备中的第一个功能?
在实现由 RNDIS 和 ACM 两个功能组成的多功能复合设备时,我注意到 Windows 10 无法安装/启动 RNDIS 设备,除非它被列为第一个功能(第一个 IAD/第一组接口)。
以下 .txt 是来自工作案例的 USB 描述符转储,其中列出的第一组 IAD / 第一组接口对应于 RNDIS(随后是 ACM IAD / 接口):
但是,如果我交换 RNDIS 和 ACM 描述符的写入顺序,以便首先列出 ACM IAD / 接口(然后是 RNDIS IAD / 接口),那么枚举的 RNDIS 设备启动时会出现问题。
这是失败情况下的 USB 描述符转储: acm-rndis-not-working.txt
请注意,在这两种情况下,ACM 设备都会正常启动(无论它是列出的第一个功能还是第二个功能)
我已经多次检查了 RNDIS 失败案例的 USB 描述符转储,它对我来说看起来很合适。. . 这可能表明 RNDIS 驱动程序堆栈(rndismp6.sys / usb80236.sys / 其他地方)中存在错误,还是我遗漏了什么?
首先十分感谢!
python - 有没有办法在 Python 中识别 RNDIS 连接/适配器?然后配置那个适配器?
我连接了多个设备,我需要识别并希望配置该 RNDIS 连接。
ssh - USB CDC ACM 用于高速传输和 TCP/IP 传输
我是 USB 驱动程序的新手,我尽我所能更好地阅读和理解 USB 驱动程序架构/结构。
最初我想在 CDC ACM 模式下通过 USB 在 PPP 上运行 SSH,以连接 Windows 机器和 Linux 机器。后来我发现了其他 CDC 模式:ECM、NCM 和 EEM。起初我以为我可以使用适配器芯片,比如 Prolific PL27A1。
考虑使用 CDC ACM(而不是像 FTDI 芯片那样使用 USB 转串口)是因为需要高速。
我了解到Windows会根据USB描述符自动安装和使用驱动程序,而我购买的Prolific PL27A1配置为USB EasyTransfer,而不是CDC ACM。在其数据表上,它说它支持 CDC ACM 以及 RNDIS 模式。但不幸的是,他们不支持最终用户客户。我想我可以简单地将模式更改为 RNDIS 或 CDC ACM。
类似的东西需要固件包装器吗?所以,我想了解,我如何实现我所需要的?CDC ACM 是否可行?
我考虑过现成的 USB-to-Ethernet 适配器设备,但在高速 UART 上使用 PPP 是有价值的。