AVReAl/Linux и права администратора

Изначально AVReAl/Linux работал с LPT напрямую, командами процессора для обращения к портам I/O. Для этого avreal должен запускаться с правами администратора. Позже была дописана поддержка работы с устройствами /dev/parport, для доступа к которым достаточно включить пользователя в группу lp. Всё это описано в публикации AVReAl и LPT в Linux.

Когда в программу добавилась поддержка работы с FTDI MPSSE, я заметил, что без прав рута не выходит соединиться с микросхемой FT2232. Но у меня на компьютере все версии AVReAl работают от имени администратора, так как время от времени делается проверка работы с прямым доступом к LPT. Поэтому и с FT2232 всё работает и я не копал глубже.

Наконец-то решил разобраться с этим вопросом. Как это часто бывает, достаточно было немного почитать.

Для того, чтобы работать с микросхемами FTDI без привелегий администратора, нужно в каталог /etc/udev/rules.d/ записать файл с именем, например 55-ftdi.rules, такого содержания:

# FTDI-based devices
#
# FTDI vid=0403
# FT2232, FT2232H: pid=6010
# FT4232H:  pid=6011
# FT232H:   pid=6014
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010|6011|6014", OWNER="root", GROUP="root", MODE="0666"

Эти правила рассчитаны на микросхмему FTDI, которой не заменены vid/pid по умолчанию. Если используется адаптер с другими vid/pid, нужно добавить соответствующую строку в файл.

Пакет OpenOCD содержит файл правил для всех адаптеров, который он поддерживает. При использовании AVReAl с адаптером на микросхеме FTDI из этого списка можно просто перенести файл правил OpenOCD в каталог /etc/udev/rules.d/. В правилах OpenOCD использовано GROUP="plugdev", MODE="0664". Но я не вижу разницы между этими двумя вариантами на «десктопе», где все пользователи по умолчанию включены в группу plugdev, чтобы они могли подключать USB-флешки и переносные диски.

Attached Files:

AVReAl update — 1.28r6

Вышла новая версия програматора avreal — v1.28r6 (Sun 2011-01-09).

  • Добавлены ATmega325A, ATmega329A.
  • Добавлены имена-синонимы для тех контроллеров з буквой «A», которые не отличаются от «не-A» кристаллов:
        ATmega165A, ATmega645A, ATmega6450A
        ATmega169A, ATmega329PA, ATmega649A, ATmega6490A
  • avreal/Linux64, адаптеры на FT2232*, FT4232H:
    Библиотека загружается по имени libftd2xx.so.0, а не libftd2xx.so, как это было раньше. Это делает возможной установку на компьютере параллельно старой (необходимой для avreal/Linux64) и новой версий библиотеки, например, libftd2xx.so.0.4.16 и libftd2xx.so.1.0.0.
    avreal/Linux32 может работать как со старыми, так и с новыми версиями бибилотеки.
    Читать больше про проблемы с libftd2xx.so.1.0.0 в 64-битном линуксе.
  • Ключ -k/-K старта программирования по нажатию кнопки на адаптере получил две формы с разным порядком работы.

Подарочек от FTDI

Подарочек от FTDI оказался довольно интересным.

В полном соответствии с принципом «см. рис.1» они взяли и поменяли типы данных при переходе от библиотек libftd2xx.so версий 0.4.x к libftd2xx.so.1.0.0. Подарочек влияет только на работу с 64-битными вариантами библиотек, с 32-битными проблем нет.

Библиотека ftd2xx рождалась в Windows и ещё и содержит в себе функции FT_W32_ххх() для работы с микросхемами FTDI в стиле функций работы с COM-портом в WinAPI. Поэтому в ней используются стандартные для WinAPI типы данных DWORD, BYTE и т.п. Чтобы при написании Linux-версии библиотеки не менять файл ftd2xx.h и все тексты, в проект был добавлен файл WinTypes.h с определениями нужных типов. Сам по себе шаг логичный, но…

Continue reading ‘Подарочек от FTDI’ »

avreal/linux and libftd2xx.so.1.0.0 64-bit

В начале декабря FTDI сделала нам маленький подарочек — выпустила версию 1.0.0 библиотеки libftd2xx.so (предыдущая версия была 0.4.16). Что-то там, наверное, сильно улучшили, но 64-битная версия avreal/linux перестала работать. Явные ошибки где-то или «просто неаккуратный код» код, из-за которого вылезли проблемы в avreal, придётся разбираться. А пока я на странице download выложил архивы предыдущей версии libftd2xx, с которой avreal работает стабильно.


Подробнее об этом тут: «Подарочек от FTDI»

Ошибки в avreal 1.28r2 и 1.28r3

Обнаружилсь довольно странная ошибка в avreal 1.28r2 и 1.28r3. При совпадении условий

  • Используется программатор на базе FT2232/FT4232
  • Заняты верхние два байта флеш-пам’яти (кодом или счётчиком стираний)
  • В одном вызове avreal выполняется работа как с флеш памятью, так и с фьюзами
  • Присутствует ключ верификации -v

для некоторых микроконтроллеров после первой операции верификации работа обрывается с ошибкой synchronosation lost.

Continue reading ‘Ошибки в avreal 1.28r2 и 1.28r3’ »

AVReAl update – 1.28r1

Вышла новая версия програматора avreal – v1.28r1 (Sun 2010-01-31).

  • Добавлено поддержку FT2232H, FT4232H с возможностью использовать для программирования оба канала с MPSSE. Допустимые имена выводов перечислены в описании конфигурирования.
  • Добавлен ключ -k для ожидания нажатия кнопки на адаптере программирования и соответствующую конфигурационную запись key.
  • Добавлена модификация ключа -os для задания частоты SCK, а не частоты тактирования микроконтроллера.
[flagcounter image]