一台Linux即可充当USB的device端,也可以由另一台Linux来充当USB的Host端。在与以太网不同,在USB网络里各终端不是对等的,即USB Host端和USB Device端的所需要软件和硬件接口不一样。
Linux充当USB Host
Linux开发板当USB Host时,需要安装安装 rndis_host.ko 这个驱动。
复制代码
│ Prompt: Host for RNDIS and ActiveSync devices (EXPERIMENTAL) ││ Defined at drivers/net/usb/Kconfig:234 ││ Depends on: NETDEVICES && USB && NET && USB_USBNET && EXPERIMENTAL ││ Location: ││ -> Device Drivers ││ -> Network device support (NETDEVICES [=y]) ││ -> USB Network Adapters ││ -> Multi-purpose USB Networking Framework (USB_USBNET [=m]) │
复制代码
Linux充当USB Device
Linux开发板需要安装USB Gadget驱动g_ether.ko 来进行通讯。
Symbol: USB_ETH_RNDIS [=n] ││ Prompt: RNDIS support ││ Defined at drivers/usb/gadget/Kconfig:609 ││ Depends on: && USB_ETH ││ Location: ││ -> Device Drivers ││ -> USB support (USB_SUPPORT [=y]) ││ -> USB Gadget Support (USB_GADGET [=y]) ││ -> USB Gadget Drivers ( [=m]) ││ -> Ethernet Gadget (with CDC Ethernet support) (USB_ETH [=n │
最终配置选项就是:CONFIG_USB_ETH=y和CONFIG_USB_ETH_RNDIS=y。