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

时间:2018-06-12 15:21:55

标签: linux vmware udev ftdi d2xx

我已经在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 /读取”示例,一切正常。唯一的区别是我以超级用户身份执行它(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

1 个答案:

答案 0 :(得分:0)

经过一段时间的努力,我确实找到了解决方案。我发现在更改之间关闭系统非常重要。

我将我的用户添加到tty和拨出组:

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

然后重新启动整个系统。