让Linux支持usb虚拟网卡。

时间:2024-05-31 08:16:38

介绍:

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设备看上去像一块网卡。

Linux内核配置如下:

1.首先关闭USB的host功能,打开usb gadget功能。
让Linux支持usb虚拟网卡。
2.进入到USB gadget support,打开USB Peripheral Controller,Anyka usb device Port, udc driver support(usb-otg)对应平台的UDC设备控制,让USB控制器运行在device模式。
让Linux支持usb虚拟网卡。
3.打开Ethernet Gadget 和RNDIS驱动支持。
让Linux支持usb虚拟网卡。
4.编译最后生成两个ko。udc.ko和g_ether.ko。
让Linux支持usb虚拟网卡。
5.将两个ko放入文件系统烧录到板上并加载ko,先加载udc.ko再加载g_ether.ko。
insmod /usr/modules/udc.ko
insmod /usr/modules/g_ether.ko
让Linux支持usb虚拟网卡。
6.启动网卡
ifconfig usb0 192.168.0.1 up (IP地址随意)
让Linux支持usb虚拟网卡。
7.插入电脑
出现如下设备,该设备为usb虚拟网卡。
让Linux支持usb虚拟网卡。
8.配置IP为同一网段,互ping。
让Linux支持usb虚拟网卡。
让Linux支持usb虚拟网卡。

至此USB虚拟网开配置完成。