Правила udev для устройства FTDI не работают в VMware Ubuntu 16.04
Я установил среду 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
1 ответ
Я действительно нашел решение после довольно долгого времени попытки. Я обнаружил, что важно выключить систему между изменениями.
Я добавил своего пользователя в группы 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
Затем перезагрузил всю систему.