zoukankan      html  css  js  c++  java
  • RK3288 添加USB转虚拟串口设备

    在系统开启并有日志打印的前提下,插入USB设备,就会打印USB设备和虚拟串口信息。

    打印信息如下:

    供应商ID(VID):idVendor=1234,产品ID(PID): idProduct=5678

    Product、Manufacturer、SerialNumber,这三项暂时用不到。

    ttyACM0:虚拟出来的串口,也有可能是ttySx、ttyGSx(x为0/1/2/3......)

    [ 99.373774] usb 3-1.3: new full-speed USB device number 3 using usb20_host
    [ 99.473868] usb 3-1.3: New USB device found, idVendor=1234, idProduct=5678
    [ 99.473970] usb 3-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 99.473997] usb 3-1.3: Product: USBKey Module
    [ 99.474016] usb 3-1.3: Manufacturer: USBKey Chip
    [ 99.474033] usb 3-1.3: SerialNumber: 202730041341
    [ 99.483763] cdc_acm 3-1.3:1.0: This device cannot do calls on its own. It is not a modem.
    [ 99.491455] cdc_acm 3-1.3:1.0: ttyACM0: USB ACM device

    先手动测试此虚拟串口能否使用(以虚拟串口的扫描枪为例)

    $ adb shell
    // 查看虚拟的串口是否存在
    root@xxx:/ # ls /dev/ttyACM0
    ls /dev/ttyACM0
    /dev/ttyACM0
    // 如果不是 root 权限,此时使用 su 获取 root 权限
    // 修改此虚拟串口为最高权限
    root@xxx:/ # chmod 777 /dev/ttyACM0
    chmod 777 /dev/ttyACM0
    root@xxx:/ # cat dev/ttyACM0
    cat dev/ttyACM0
    // 开始扫码
    DS610018C18021
    DS610018C18021

    确定虚拟串口可以使用,将设备添加到代码中。

    同时添加了ttyACM0-3,为了防止插入多个设备而导致虚拟串口变动。

    将VID和PID添加到数组 option_ids[] 中。USB_DEVICE(VID, PID)

    diff --git a/device/rockchip/common/ueventd.rockchip.rc b/device/rockchip/common/ueventd.rockchip.rc
    old mode 100644
    new mode 100755
    index 34f7ad1..d82fad3
    --- a/device/rockchip/common/ueventd.rockchip.rc
    +++ b/device/rockchip/common/ueventd.rockchip.rc
    @@ -116,3 +116,8 @@
     /dev/i2c-2               0660   system          system
     /dev/i2c-3               0660   system          system
     /dev/i2c-4               0660   system          system
    +
    +/dev/ttyACM0                     0666   system          system
    +/dev/ttyACM1                     0666   system          system
    +/dev/ttyACM2                     0666   system          system
    +/dev/ttyACM3                     0666   system          system
    diff --git a/kernel/drivers/usb/serial/option.c b/kernel/drivers/usb/serial/option.c
    index e7ecdc3..9f1a6b6 100755
    --- a/kernel/drivers/usb/serial/option.c
    +++ b/kernel/drivers/usb/serial/option.c
    @@ -1766,6 +1766,8 @@ static const struct usb_device_id option_ids[] = {
            
            {USB_DEVICE(0x0E8D,0x00A5)},
            {USB_DEVICE(0x05C6,0x9025)},
    +       {USB_DEVICE(0x1234,0x5678)},//扫描枪
            
            { } /* Terminating entry */
     };
  • 相关阅读:
    struts2.0中struts.xml配置文件详解
    spring配置文件详解
    web.xml讲解
    maven项目如何引用本地的jar包
    springmvc框架下ajax请求传参数中文乱码解决
    contentType设置类型导致ajax post data 获取不到数据
    spring 四种依赖注入方式以及注解注入方式
    eclipse 启动tomcat后 页面无法访问tomcat首页
    openfire安装完毕后无法登录控制台(忘记密码)的解决方法
    Mac下新安装的MySQL无法登陆root用户(安装时没有设置密码)
  • 原文地址:https://www.cnblogs.com/lialong1st/p/8667929.html
Copyright © 2011-2022 走看看