打印
[技术问答]

[NUC972/NUC980]USB gadget虚拟2个以上的VCOM在window下只识别出一个

[复制链接]
237|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2023-8-7 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
USB gadget虚拟2个以上的VCOM在window下只识别出一个

使用特权

评论回复
沙发
riplay| | 2023-8-8 08:05 | 只看该作者
通过修改/drivers/usb/gadget/serial.c中n_ports=2可以虚拟出2个VCOM(ttyGS0和ttyGS1),window识别却只有一个串口。

原因在于多个串口通过IAD来分割,

所以在device descriptor中需要支持IAD protocal

使用了IAD的设备,设备描述符中类(Class)、子类(SubClass)和协议(Protocol)的值必须定义成如下数值:

bDeviceClass = 0xEF (miscellaneous device class)

bDeviceSubClass = 0x02 (common class)

bDeviceProtocol = 0x01 (interface association descriptor)

在serial.c中判断n_ports > 1时候使用IAD protocol

static int __init init(void)

{

        /* We *could* export two configs; that'd be much cleaner...

         * but neither of these product IDs was defined that way.

         */

        if (use_acm) {

                serial_config_driver.label = "CDC ACM config";

                serial_config_driver.bConfigurationValue = 2;

                if(n_ports == 1)

                        device_desc.bDeviceClass = USB_CLASS_COMM;

                else

                {

                        printk("IAD setting\n");

                        device_desc.bDeviceClass = USB_CLASS_MISC; //0xef

                        device_desc.bDeviceSubClass = 0x02;

                        device_desc.bDeviceProtocol = 0x01; //IAD

                }

使用特权

评论回复
板凳
Betty1299| | 2023-9-11 16:46 | 只看该作者
有可能是驱动的问题吧

使用特权

评论回复
地板
Charlotte夏| | 2023-9-11 17:50 | 只看该作者
建议楼主查查驱动,确保你的USB gadget驱动程序正确安装并且与操作系统兼容

使用特权

评论回复
5
Estelle1999| | 2023-9-11 18:59 | 只看该作者
如果是驱动问题,可能会这样,有时候,驱动程序可能会有冲突或不完全兼容的问题,导致只能识别一个虚拟VCOM端口

使用特权

评论回复
6
Emily999| | 2023-9-11 20:14 | 只看该作者
你这个有点意思啊,驱动是一样的吧,咋能这么样子呢

使用特权

评论回复
7
Carina卡| | 2023-9-11 21:28 | 只看该作者
其实楼主可以尝试更新或重新安装驱动程序,或者查看是否有更新的驱动程序可用

使用特权

评论回复
8
Betty996| | 2023-9-11 22:35 | 只看该作者
是不是有啥资源冲突导致的问题呢

使用特权

评论回复
9
alxd| | 2023-9-12 07:06 | 只看该作者
你这把其他功能关闭,试试

使用特权

评论回复
10
Carmen7| | 2023-9-12 09:34 | 只看该作者
如果你的USB gadget配置了多个虚拟VCOM端口,可能会发生资源冲突的情况。

使用特权

评论回复
11
Allison8859| | 2023-9-12 11:24 | 只看该作者
你单独插一个USB的话,虚拟串口是不是就好使啊

使用特权

评论回复
12
Annie556| | 2023-9-12 13:50 | 只看该作者
可能是USB gadget硬件本身存在问题。检查USB gadget的硬件连接,确保它们正确连接并且没有损坏。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1414

主题

3814

帖子

5

粉丝