FTDI 设备的 udev 规则在 VMware Ubuntu 16.04 中不起作用
udev rules for FTDI device are not working in VMware Ubuntu 16.04
我已经用 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" 示例,一切正常。唯一的区别是我以超级用户身份执行它 (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
然后重启整个系统。
我已经用 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" 示例,一切正常。唯一的区别是我以超级用户身份执行它 (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
然后重启整个系统。