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

本文档介绍了在Ubuntu ARM平台(如Orangepi4)上,如何解决FTDI D2XX驱动与内置ftdi_sio驱动冲突的问题。通过查看VCP串口信息和驱动信息,然后执行特定命令卸载驱动,成功实现了使用D2XX驱动直接访问USB设备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

声明:笔者使用的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设备。

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值