Linux Windows下USB RNDIS网络传输方式详解
来源:互联网 发布:微电影拍摄技巧知乎 编辑:程序博客网 时间:2024/05/21 22:47
- │ 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]) │
- Symbol: USB_ETH_RNDIS [=n] │
- │ Prompt: RNDIS support │
- │ Defined at drivers/usb/gadget/Kconfig:609 │
- │ Depends on: <choice> && USB_ETH │
- │ Location: │
- │ -> Device Drivers │
- │ -> USB support (USB_SUPPORT [=y]) │
- │ -> USB Gadget Support (USB_GADGET [=y]) │
- │ -> USB Gadget Drivers (<choice> [=m]) │
- │ -> Ethernet Gadget (with CDC Ethernet support) (USB_ETH [=n │
- [root@hxy]# find /lib/modules/2.6.18-194.el5/ -name "rndis*"
- /lib/modules/2.6.18-194.el5/kernel/drivers/usb/net/rndis_host.ko
- [root@hxy]# modprobe rndis_host
- [root@hxy]# lsmod | grep rndis_host
- rndis_host 10433 0
- cdc_ether 9793 1 rndis_host
- usbnet 19913 2 rndis_host,cdc_ether
- # insmod g_ether.ko
- g_ether gadget: ing random self ethernet address
- g_ether gadget: using random host ethernet addr
- usb0: MAC de:5e:8b:3d:84:db
- usb0: HOST MAC 32:90:92:52:a9
- g_ethethernet Gadget, morial Day 2008
- g_ether gadget: g_ether ready
- Registered gadget driver 'g_ether'
- hub 1-0:1.0: unable to enumerate USB device 2
- g_ether gadget: high speed config #1: Chernet (ECM)
- # ifconfig usb0 192.168.3.120 up
- usb 1-1: new high speed USB device using ehci_hcd and address 5
- usb 1-1: configuration #1 chosen from 2 choices
- usb0: register 'cdc_ether' at usb-0000:00:1d.7-1, CDC Ethernet Device, 32:90:26:92:52:a9
- #define RNDIS_VENDOR_NUM 0x0525 /* NetChip */
- #define RNDIS_PRODUCT_NUM 0xa4a2 /* Ethernet/RNDIS Gadget */
USB驱动代码在/drivers/usb/gadget下,有三个文件:android.c,f_adb.c,
f_mass_storage.c;g_android.ko 是由这三个文件编译而来,其中android.c 依赖于
f_adb.c 和 f_mass_storage.c(这两个文件之间无依赖关系)。
可在android.c中看到:
static int __init android_bind_config(struct usb_configuration *c)
{
struct android_dev *dev = _android_dev;
int ret;
printk(KERN_DEBUG "android_bind_config\n");
ret = mass_storage_function_add(dev->cdev, c, dev->nluns);
if (ret)
return ret;
return adb_function_add(dev->cdev, c);
}
cdc-ncm:
分为HOST端和Device端
在Linux中对应的驱动分别为host driver and gadget driver
Host Driver位于
drivers/net/usb/
gadget driver位于
drivers/usb/gadget/
drivers/net/usb/Kconfig
drivers/net/usb/Makefile
drivers/net/usb/cdc_ether.c
drivers/net/usb/cdc_ncm.c
drivers/net/usb/usbnet.c
drivers/usb/gadget/Kconfig
drivers/usb/gadget/Makefile
drivers/usb/gadget/f_ncm.c
drivers/usb/gadget/ncm.c
drivers/usb/gadget/u_ether.c
drivers/usb/gadget/u_ether.h
include/linux/usb/cdc.h
include/linux/usb/ncm.h
include/linux/usb/usbnet.h
- Linux Windows下USB RNDIS网络传输方式详解
- 修改mini2440 以实现 Linux USB gadget rndis 网络
- linux下usb传输实现
- USB-RNDIS
- win10下usb rndis驱动配置
- Linux USB RNDIS设备在WinXP、Win7、Win10下的驱动安装
- windows下tcp网络传输
- Linux下完美驱动HTC Android手机的Internet传输(通过USB共享电脑网络)
- usb传输方式
- usb传输方式
- Linux 下使用USB 网络
- Linux 下使用USB 网络
- Linux 下使用USB 网络
- USB RNDIS实现
- linux和windows之间传输文件方式
- Windows下向Linux下传输文件
- USB四种传输方式
- Linux下用USB传输文件到开发板
- 数据类型
- 计算机专用英语词汇一
- Win7上编译OpenCV3.2与扩展模块
- OpenCV学习笔记大集锦
- 无意间在查阅资料中发现一个文件共享的好方法
- Linux Windows下USB RNDIS网络传输方式详解
- 交叉编译器差异
- OVS源码阅读
- 设置maxLines=2,ellipseSize=end,判断文本内容是否超出,显示省略号
- GreenDao:3.2.0用法
- Exynos4412 Uboot 移植(一)—— Uboot 编译流程分析
- 求一个数的质因数
- Apache maven 入门
- SpringMVC入门