一台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。