правила udev для устройства FTDI не работают в VMware Ubuntu 16.04 - PullRequest
0 голосов
/ 12 июня 2018

Я установил среду 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 Ответ

0 голосов
/ 12 июня 2018

Я действительно нашел решение после довольно долгого времени попытки.Я обнаружил, что важно выключить систему между изменениями.

Я добавил своего пользователя в группы 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

Затем перезагрузил всю систему.

...