让Linux支持usb虚拟网卡。

匿名 (未验证) 提交于 2019-12-02 21:59:42

Usb作为device端插入pc,在pc中会出现对用的usb虚拟网卡,可以像普通网卡一样传递数据,socket编程。

本次使用的设备是AKV300作为嵌入式平台连接PC,让平台支持usb虚拟网卡,需要Linux内核支持UDC(usb 设备控制器)驱动和 Ethernet Gadget ( CDC Ethernet )驱动,cdc是usb的设备通讯类,Ethernet Gadget 驱动支持将多个以太网帧分组为一个USB传输。平台还需要支持rndis(Remote Network Driver Interface Specification),基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡。

1.首先关闭USB的host功能,打开usb gadget功能。

2.进入到USB gadget support,打开USB Peripheral Controller,Anyka usb device Port, udc driver support(usb-otg)对应平台的UDC设备控制,让USB控制器运行在device模式。

3.打开Ethernet Gadget 和RNDIS驱动支持。

4.编译最后生成两个ko。udc.ko和g_ether.ko。

5.将两个ko放入文件系统烧录到板上并加载ko,先加载udc.ko再加载g_ether.ko。
insmod /usr/modules/udc.ko
insmod /usr/modules/g_ether.ko

6.启动网卡
ifconfig usb0 192.168.0.1 up (IP地址随意)

7.插入电脑
出现如下设备,该设备为usb虚拟网卡。

8.配置IP为同一网段,互ping。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!