搜索
bottom↓
回复: 14

linux下如何使用虚拟串口的usb设备?

[复制链接]

出0入0汤圆

发表于 2011-7-2 16:44:03 | 显示全部楼层 |阅读模式
linux下如何使用虚拟串口的usb设备?

一个usb的虚拟串口的设备,在linux下lsusb可以看到设备信息,在/proc/bus/usb/device中也可以看到这个设备,
按理说它该使用cdc-acm.ko这个驱动,lsmod可以看到这个也加载了,但device文件中显示这个设备的驱动是none,该怎么做在能让它们关联?才能使用这个设备

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-7-2 17:45:14 | 显示全部楼层
自己顶下。

出0入0汤圆

发表于 2011-7-2 20:14:00 | 显示全部楼层
例如  STM32制成的Virtual COM

出0入0汤圆

发表于 2011-7-2 20:40:01 | 显示全部楼层
关注

出0入0汤圆

发表于 2011-7-2 20:41:09 | 显示全部楼层
回复【楼主位】dzmcs  
-----------------------------------------------------------------------

VID, PID设置成一个系统有驱动的型号,让内核以为你是那个USB转串口的设备。

出0入0汤圆

 楼主| 发表于 2011-7-2 21:05:23 | 显示全部楼层
回复【2楼】QQ373466062  萤火虫
例如  stm32制成的virtual com
-----------------------------------------------------------------------

是啊,插到linux上该如何被linux的cdc-acm.ko自动关联呢?

出0入0汤圆

 楼主| 发表于 2011-7-2 21:11:53 | 显示全部楼层
回复【4楼】rtems  
回复【楼主位】dzmcs  
-----------------------------------------------------------------------

vid, pid设置成一个系统有驱动的型号,让内核以为你是那个usb转串口的设备。

-----------------------------------------------------------------------
不是usb转串口,是usb虚拟串口。
在linux上usb转串口的使用的节点是ttyUSB*,cdc虚拟串口的用的是ttyACM*这个节点,驱动是cdc-acm.ko这个内核发行版附带的驱动。可是驱动加载了,usb插进去,没有反应,自己建了个ttyACM的节点,其实也没有关联到驱动上,对驱动还是不太了解。


这个虚拟串口的usb设备在windows上使用,自己伪造了一个.inf的文件,调用windows自己的驱动就可以使用了。

出0入0汤圆

发表于 2011-7-2 23:31:03 | 显示全部楼层
我明白啊,我好多年前做过,系统初始化USB设备的时候会set address啥的,也会读你的VIP,PID,根据这个来加载不同的驱动,你用windows的话,就是inf里面指定的VIP,PID要和你的这个设备初始化的时候报告上去的匹配,这样windows才会知道你这个设备和这个inf对应。

出0入0汤圆

 楼主| 发表于 2011-7-3 11:41:11 | 显示全部楼层
回复【8楼】rtems  
我明白啊,我好多年前做过,系统初始化usb设备的时候会set address啥的,也会读你的vip,pid,根据这个来加载不同的驱动,你用windows的话,就是inf里面指定的vip,pid要和你的这个设备初始化的时候报告上去的匹配,这样windows才会知道你这个设备和这个inf对应。
-----------------------------------------------------------------------

是啊,关键是linux上该怎么做呢?重新编译cdc-acm.c这个系统自带的驱动,吧vid,pid该成这个usb设备的吗?

出0入0汤圆

发表于 2011-7-3 13:45:07 | 显示全部楼层
lsusb 看下 VID/PID是否和cdc-acm.c中的一致或者直接用modinfo cdc-acm.ko来看

出0入0汤圆

 楼主| 发表于 2011-7-3 16:35:44 | 显示全部楼层
回复【10楼】root  
lsusb 看下 vid/pid是否和cdc-acm.c中的一致或者直接用modinfo cdc-acm.ko来看

-----------------------------------------------------------------------
明天上班了看看,刚看了下cdc-acm.c这个文件,应该没有这个设备的vid/pid,

请问,是不是把该设备的vid/pid加进这个文件,重新编译这个驱动文件,再加载就可以使用设备了?

有没有方法,像windows上那样建立一个*.inf文件,把vid/pid写进文件,操作系统可以依据这个文件加载驱动,看到linux内核的
代码里也有个inf的文件。

出0入0汤圆

发表于 2011-7-3 18:04:54 | 显示全部楼层
modprobe cdc-cam vid???=xxxxx pi????=xxxx

出0入0汤圆

 楼主| 发表于 2011-7-3 18:21:28 | 显示全部楼层
回复【12楼】panjun10  
modprobe cdc-cam vid???=xxxxx pi????=xxxx
-----------------------------------------------------------------------

谢谢!明天了试试。

出0入0汤圆

 楼主| 发表于 2011-7-4 20:09:44 | 显示全部楼层
谢了,所有的朋友,重新编译了cdc-acm这个驱动,把usb的pid和vid加进去,一切OK
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 19:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表