上一篇文章《Linux指定某个USB口虚拟网卡_Dingdanjun798077632的博客-CSDN博客》中,实现了使用指定USB口实现虚拟网卡功能,那么开发板有多个USB口时,应该就可以同时虚拟出串口和网卡。本人尝试实现了该功能。
目录
一、修改menu菜单
修改drivers/usb/gadget/Kconfig 的USB Gadget Drivers,改为能同时启用usb虚拟网卡和虚拟串口功能。

修改前的菜单, USB Gadget Drivers只能选则一项

修改后的菜单,可以同时选择多项

二、修改配置和代码
修改后,make menuconfig同时选中Ethernet Gadget和Serial Gadget两项。

在代码中将g_ether和g_serial配置到不同的USB peripheral,就可以同时启动usb虚拟网卡和虚拟串口功能了。
drivers/usb/gadget/legacy/ether.c

drivers/usb/gadget/legacy/serial.c
三、测试
编译内核重新启动开发板,插入usb,虚拟串口ttySG0和网卡usb0
插入电脑出现COM15

可以看到,上面的虚拟串口和网卡测试都OK。使用的串口测试应用测序代码 http://blog.chinaunix.net/uid-24404030-id-2609467.html
文章详细介绍了如何修改Linux内核的menu配置,使开发板能够支持多个USB口同时虚拟出串口和网卡功能。通过修改drivers/usb/gadget/Kconfig文件,更新menu菜单,然后在代码中配置g_ether和g_serial到不同的USBperipheral。经过编译和测试,成功实现了虚拟串口ttySG0和网卡usb0的功能。
8608

被折叠的 条评论
为什么被折叠?



