当前位置: 代码迷 >> 综合 >> linux上使用ftdi的串口芯片,D2XX for Linux,出现ftdi d2xx与linux上的ftdi_sio冲突问题
  详细解决方案

linux上使用ftdi的串口芯片,D2XX for Linux,出现ftdi d2xx与linux上的ftdi_sio冲突问题

热度:49   发布时间:2024-02-24 00:48:53.0

智科创玩

    • 写在前面
    • 1.问题概述
    • 2.解决方法
      • 2.1 查看VCP串口信息
      • 2.2 查看驱动信息

写在前面

声明:笔者使用的ARM平台是orangepi4平台,Ubuntu,aarch64,D2XX Drivers :libftd2xx-arm-v8-1.4.8。
x64平台分别是:台式电脑和笔记本电脑,Ubuntu,x86_64,D2XX Drivers :libftd2xx-x86_64-1.4.8。
笔者按照FTDI官网:D2XX Drivers,安装D2XX驱动程序允许通过DLL直接访问USB设备,在x64平台上按照官网 ReadMe.txt提示如期进行,毫无问题,在ARM平台上出现了问题,最终在不懈探索尝试下,得到解决。
笔者经历的过程应该可以解决的通用平台存在的问题,下面把在这个过程出现的问题及解决过程做一个分享,希望能够为遇到该问题的同志们提供思路!

1.问题概述

ftdi d2xx与linux上的ftdi_sio冲突,linux自动加载了ftdi_sio驱动程序,需要删除ftdi_sio驱动程序。

sudo rmmod ftdi_sio

rmmod: ERROR: Module ftdi_sio is builtin.

sudo rmmod usbserial

rmmod: ERROR: Module ftdi_sio is builtin.

出现Module ftdi_sio is builtin的问题,内置了无法删除。
在这里插入图片描述

2.解决方法

2.1 查看VCP串口信息

ls -l /dev/ttyUSB0

在这里插入图片描述FTDI usb串行设备转换器映射到ttyUSB0

sudo dmesg | grep ttyUSB0

得到如下信息:
在这里插入图片描述

2.2 查看驱动信息

tree /sys/bus/usb/drivers/ftdi_sio/

/sys/bus/usb/drivers/ftdi_sio/
├── 5-1:1.0 -> …/…/…/…/devices/platform/usb1/fe900000.dwc3/xhci-hcd.11.auto/usb5/5-1/5-1:1.0
├── bind
├── uevent
└── unbind
1 directory, 3 files
在这里插入图片描述

然后在超级用户下使用该命令
注:sudo -s 或者 su 命令进入超级用户

echo -n "5-1:1.0"  > /sys/bus/usb/drivers/ftdi_sio/unbind

注:5-1:1.0 需要修改成上条命令查看对应的结果

查看VCP串口信息不存在了,大功告成!
在这里插入图片描述下面就可以通过D2XX驱动程序从DLL直接访问USB设备,应用程序软件可以通过一系列DLL函数调用来访问USB设备。

感谢阅读,我是智科创玩,希望文章能够解决您的问题。
事为之,须极致!