摘要

Linux内核集成的USB Gadget提供了开发USB设备端驱动的支持,因此也可以利用其将USB设备接口虚拟成其他类型接口。本文阐述了USB Gadget原理和总体架构;深入分析了其UDC驱动层和Gadget接口层复杂的数据结构、各类操作函数以及主要工作流程;在Gadget功能驱动层给出了虚拟成网口的具体开发方法;对Linux内核初始的USB Gadget通用模块中UDC层依据平台环境进行修改配置,在S3C2440平台上实现了USB接口虚拟成网口。经测试验证,虚拟后的网口传输正常稳定,为用户在Linux下应用USB Gadget提供了参考。