Я установил среду VMware (14.1.1) с Ubuntu 16.04, где я пытался управлять некоторыми устройствами FTDI через драйвер FTDI D2xx.Тем не менее, я не могу открыть свое устройство FTDI или связаться с ним.Использование
FT_CreateDeviceInfoList(&NumDevs);
говорит мне, что доступно устройство.Однако, если я пытаюсь открыть его с помощью
ftStatus = FT_OpenEx(const_cast<char*>(tmp),FT_OPEN_BY_SERIAL_NUMBER, &keyHandle);
, это выдает ошибку (ftStatus = 2).Насколько я знаю, эта ошибка означает, что нет доступного устройства.
Если я выполняю пример «EEPROM / read» из драйвера FTDI, все работает нормально.Разница лишь в том, что я выполняю его как суперпользователь (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