问题标签 [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.

0 投票
0 回答
427 浏览

linux - Windows 7/8 无法连接到 Linux 3.4 中的 g_ether

我有一台运行 Linux 3.4 的嵌入式计算机,不幸的是,我目前无法升级到 4.xy。

g_ether使用以下配置选项编译为内核模块:

该模块编译良好,我可以在系统启动后加载它而没有问题:

我的目标是将这台嵌入式计算机连接到 Windows 计算机。当我连接嵌入式计算机时,Windows 最初在设备管理器中显示“设备”正常工作,然后更新以显示它无法正常工作并出现错误:

FWIW 我在 Windows 端尝试了几种不同的驱动程序,包括linux.infLinux USG Gadget 文档中引用的驱动程序、一些内置驱动程序以及我在论坛上找到的一个驱动程序。

在 Linux 端,当我插入 USB 线时,我看到以下输出:

这对应于 Windows 端(通过 USBPcap):

Linux 端的rndis req21对应于Windows 端的 ,和SEND ENCAPSULATED COMMAND也是如此。rndis reqa1GET ENCAPSULATED RESPONSE

在最后的响应/请求之后,没有其他输出。

我知道 Linux 3.4 已经过时了,但我没有升级选项,因为这是一台嵌入式计算机,因此我很感激芯片制造商提供更新。

有没有人在 Windows 7/8 和 Linux 3.4 上成功使用过g_ether内核模块,或者知道为什么这些请求/响应似乎在最后一个之后就停止了GET ENCAPSULATED RESPONSE

0 投票
0 回答
785 浏览

android - Bus Hound 中值为 0xC001 0000 的 USBD_STATUS_CANCELED 是什么?

我正在尝试使用运行 Android 操作系统的 RK3288 SoC 的板上测试 USB 共享网络的功能。

当我通过 OTG 端口将它连接到另一个运行 Windows 7 操作系统的板时。不幸的是,仅仅几分钟后,网络就要断开了。我运行 Bus Hound 来检测 USB 总线上发生的情况。我得到这个带有 0xC0010000 的 USBD_STATUS_CANCELED 作为响应,我在 linux 内核版本 3.10.79 的 USB 驱动程序的中断处理函数中得到内核日志“USB RESET”。

我无法确定主板的 OTG 端口或 USB 驱动程序或 USB 总线... :-( 总而言之,USB 组件的某些部分损坏了。因为我在另一台运行 Ubuntu 14.04 的 PC 上对其进行了测试操作系统,没关系。

也许运行Windows 7操作系统的主板也有问题,我也不能保证。呃……不过我用手机华为测试了USB共享网络的功能。它运行良好,并且在我关闭它之前网络可以始终保持连接。

顺便说一句,我讨厌微软公司创建的 RNDIS(远程网络驱动程序接口服务?)。

如果有人对 USB 有所了解并能告诉我到底发生了什么,非常感谢 U :-)。

0 投票
0 回答
653 浏览

android - 安卓网络接口配置

我正在基于 Android 的设备上开发 RNDIS 主机功能。我已经编译并安装了合适的Android驱动程序,但遇到了另一个问题:如何在Android中自动设置网络接口(usb0)的IP地址?我可以手动为接口设置IPifconfig, ip addr等,但是我需要在网络接口自动启动后自动执行这些操作。我知道它在 Linux 操作系统中是如何完成的(编辑 /etc/network/interfaces 之类的文件),但我没有找到有关 Android 操作系统的任何信息。

0 投票
1 回答
1100 浏览

usb - USB idproduct 和 idvendor

我对 USB 接口非常陌生,我正在尝试为 WINCE 2013 设备构建应用程序。在我的设备中,一个供应商(假设为“X”)的 VID 和 PID 用于 USB 大容量存储设备类。

现在,我有特定的用例,通信应该建立在 USB rndis 类上。出于此通信目的,我们按原样使用微软通用 rndis 驱动程序(不是自定义驱动程序)。那么,我是否可以将 X 的 VID 和 PID(我现在用于 MASS STORAGE 类)也用于 Rndis 类,或者需要再次购买一个新的。我知道我可以在开发阶段使用任何 VID 和 PID,但我需要 VID 和 PID 用于生产设备。

或者我可以通过仅更改设备的序列号来使用与 Microsoft 通用 rndis 驱动程序兼容的 Microsoft VID、PID 和兼容 id?

请提前建议和感谢!:-)

(如果查询太模糊而无法理解,请告诉我。)

0 投票
0 回答
243 浏览

dns - 重定向所有流量 IPtables(以太网仿真)

我有一个可以模拟以太网适配器并运行 linux 的设备(与 Bash Bunny 不同)。

我想将所有流量从它连接到的机器(受害者)重定向到设备本身。我尝试使用 IPtables,它可以工作,但只能在 Windows (RNDIS) 而不是 Mac 或 Linux (ECM) 上工作。我想了解为什么会发生这种情况,因为除了局域网上的 Dnsspoofing 之外,我找不到任何特定的 IPtables 示例。我现在使用的代码是:

PS:设备是P4wnP1:https ://github.com/mame82/P4wnP1

0 投票
1 回答
487 浏览

windows - 具有 MS OS 2.0 描述符的复合 RNDIS HID

我正在开发 USB RNDIS 和 HID 复合设备。对于 RNDIS 设备,我正在使用 2017 年 4 月的 Microsoft 文档“Microsoft OS 2.0 描述符规范”中描述的 MS OS 2.0 描述符(链接在https://docs.microsoft.com/en-us/windows的底部-hardware/drivers/usbcon/microsoft-defined-usb-descriptors)。我正在使用 Windows 10 主机。

两个设备都被识别,但只有 HID 设备被正确识别;windows 将 RNDIS 设备分配为串行端口。

这里有一些相关的。设备描述符:

配置描述符

BOS 描述符

MS 兼容性描述符:

如果我将我的设备构建为严格的 RNDIS 设备,那么一切都会按预期工作 - Windows 将设备识别为 RNDIS 设备;我不安装任何驱动程序。以下是我对仅 RNDIS 设备所做修改的摘要(还进行了所需的大小更改):

  • 更改设备描述符设备类字段
  • 删除配置描述符的 IAD 和 HID 部分
  • 将配置描述符 bNumInterfaces 数量减少到 2
  • 从 MS 兼容性描述符中删除配置子集标头和功能子集标头

请注意,如果我在 MS 兼容性描述符中保留配置子集标头和功能子集标头,Windows 会如上响应 - 将 RNDIS 设备分配为串行端口。

我尝试了各种排列,但似乎无法超越这一点。我还没有尝试为自定义设备创建 INF,但这是我想要避免的。

有什么帮助或建议吗?

谢谢。

0 投票
1 回答
195 浏览

windows - RNDIS 驱动程序在 Win 10 Pro 下崩溃,但在 Win 10 家庭/学生版上不崩溃

我有一个应用程序需要通过 USB 电缆使用以太网协议来控制某些设备。所有使用 MS 提供的 RNDIS 驱动程序在 Win 7 下工作。我的应用程序也可以使用 ACER 提供的 RNDIS 驱动程序在 Win 10 家庭版或学生版下运行,但不能在 Win 10 Pro 下运行。这可能是因为此应用程序使用另一个网络链接(无线)访问数据库,其以太网链接可能与 Win 10 Pro 下通过 RNDIS 驱动程序的无线网络发生冲突。如何?Win 10 Pro 的哪些特定方面会导致这种行为,我们可以修复它吗?

0 投票
1 回答
1355 浏览

android - 如何仅使用微型 USB 电缆(无 OTG 适配器)在已植根的 Galaxy S7 上配置静态 IP 和以太网?

我有一个根深蒂固的 Galaxy S7,我将使用有线作为更大系统的显示器。它需要能够使用静态 IP 地址通过其内置的微型 USB 端口发送和接收以太网数据。

在手机上,当插入笔记本电脑并选择 RNDIS USB 配置时,该设置不会“粘连”并允许手机通过笔记本电脑设置 IP。Android 菜单永远不会更新以显示选择了 RNDIS(它会在选择 MTP 或 Charge 时更新)。但在选择 RNDIS 后,笔记本电脑可以看到 RNDIS 连接,但由于手机没有收到 IP,我无法 ping 通它。“以太网”设置也是灰色的。

我不能使用带有以太网适配器的 OTG 电缆,也不能使用其他电话。我需要静态 IP 是持久的,这样当我拔下手机时它会保留静态 IP,包括在启动之间。有没有我可以运行/编写的软件来完成这个任务,还是我遗漏了一些明显的东西?

需要明确的是,当使用 Galaxy S7 -> OTG 电缆 -> usb-to-ethernet -> ethernet -> ethernet-to-usb -> Windows 10 笔记本电脑设置时,我能够完成这个确切的任务。但是,那是 4 根电缆,我需要用 1 根电缆来完成。如果有人有任何线索,请告诉我。

0 投票
1 回答
102 浏览

android - 如何使用 Android 手机通过 USB 系留笔记本电脑发送下行链路 Iperf 数据?

我已将笔记本电脑与 Android 手机绑定。我在 USB 中使用 RNDIS。我可以通过网络发送 UL iperf 数据。但我无法将 DL 数据发送到笔记本电脑。DL 数据可以推送到手机,但不能推送到笔记本电脑。任何想法?

0 投票
0 回答
271 浏览

android - Android 是否默认使用 RNDIS 来连接 Linux 主机?

我正在尝试了解 Android 中的 RNDIS 功能。

即使连接到 Linux 主机,Android 设备是否使用 RNDIS 通过 USB 进行以太网,而不是使用 CDC NCM?为什么?