Jetson Orin AGX上FTD2XX_NET.cs无法获取FTDI设备序列号与描述
在Jetson Orin AGX(ARM64 Ubuntu 22.04)上使用FTD2XX_NET.cs封装无法获取FTDI设备序列号和描述
问题背景
我使用FTDI官方提供的FTD2XX_NET.cs封装,该封装通过#IF WINDOWS和#IF LINUX条件编译指令分别加载ftd2xx.dll(Windows)或libftd2xx.so(Linux),实现跨平台支持:
- Windows x64环境(
ftd2xx.dll版本2.12.36.4):所有功能正常,可正确获取设备序列号和描述 - Jetson Orin AGX环境(Ubuntu 22.04 ARM64,
libftd2xx.so版本1.4.27):无法获取设备序列号、描述及其他字段,所有目标字段均为空
复现步骤
- 搭建两个.NET7项目:类库项目包含
FTD2XX_NET.cs封装,控制台项目用于测试功能 - 在Jetson上执行发布命令:
dotnet publish -c LINUX -r ubuntu.22.04-arm64 --self-contained -o ./publish - 运行发布后的测试程序:Windows端正常显示设备信息,Jetson端序列号和描述字段为空
调试发现
修改封装中的GetDeviceList方法后观察到:
- Windows平台下,存储序列号的
sernum数组和存储描述的desc数组有正常内容 - Jetson平台下,上述两个数组全为0
但使用FTDI Linux驱动自带的1.4.27版本ARMv8 hard-float示例程序,可正确显示设备序列号和描述,说明问题出在FTD2XX_NET.cs封装与libftd2xx.so的交互逻辑上
疑问与求助
- 为何官方示例程序正常,但
FTD2XX_NET.cs封装在Jetson Orin AGX上失效? - 是否与ARMv8和x64架构的内存处理、字符串编码差异有关?
- 是否存在Jetson/Ubuntu特定的依赖缺失?
- 封装对ARM64非托管资源的管理方式是否存在问题?
求有类似问题经验的开发者提供调试方向或解决方案
更新
尝试添加sudo执行发布命令后,结果无变化
内容的提问来源于stack exchange,提问作者Ultegra12vDi2
相关产品推荐
相关产品推荐

