gpt4 book ai didi

linux - FTDI 设备的 udev 规则在 VMware Ubuntu 16.04 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 05:48:13 25 4
gpt4 key购买 nike

我已经使用 Ubuntu 16.04 设置了 VMware (14.1.1) 环境,在其中尝试通过 FTDI 的 D2xx 驱动程序控制一些 FTDI 设备。但是,我无法打开 FTDI 设备或与其通信。使用

FT_CreateDeviceInfoList(&NumDevs);

告诉我有一个可用的设备。但是,如果我尝试使用打开它

ftStatus = FT_OpenEx(const_cast<char*>(tmp),FT_OPEN_BY_SERIAL_NUMBER, &keyHandle);

它给了我一个错误(ftStatus = 2)。据我所知,这个错误意味着没有可用的设备。

如果我从 FTDI 驱动程序执行“EEPROM/read”示例,则一切正常。唯一的区别是我以 super 用户身份执行它(sudo ./read)。因此,我制定了一条 udev 规则,希望能解决我的问题:

cd /etc/udev/rules.d

cd /etc/udev/rules.d

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”0403”, ATTRS{idProduct}==”faf0”,
GROUP=”student”

sudo udevadm control –reload-rules

但是问题仍然存在。如果我在非常相似的物理 Ubuntu 16.04 机器上运行完全相同的东西,则使用此 udev 规则一切正常。

使用虚拟系统时定义这些规则的方式有什么不同吗?但我还有一些其他 FTDI 设备可以很好地满足此规则:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="a8b0", GROUP="users", MODE="0666"

我按照 FTDI 的安装指南进行操作:http://www.ftdichip.com/Support/Documents/AppNotes/AN_220_FTDI_Drivers_Installation_Guide_for_Linux.pdf

最佳答案

经过一段时间的尝试,我实际上找到了解决方案。我发现在更改之间关闭系统很重要。

我将我的用户添加到 tty 和 dialout 组中:

sudo usermod -aG tty user
sudo usermod -aG dialout user

这应该已经足够了。但似乎不起作用,所以我删除了最后一个 udev 规则并添加了:

sudo gedit 99-ftdi.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="faf0", GROUP="users", MODE="0666"
sudo udevadm control --reload

然后重新启动整个系统。

关于linux - FTDI 设备的 udev 规则在 VMware Ubuntu 16.04 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50820663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com