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

Від самого початку AVReAl/Linux працював з LPT напряму, командами процесора для доступу до портів вводу/виводу. Для цього потрібні права адміністратора і avreal встановлюється з параметрами власника та групи root та піднятим SUID-бітом. Пізніше було дописано підтримку роботи з пристроями /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, якій записом в конфігураційній EEPROM не замінено vid/pid за умовчанням. Якщо використовується адаптер з іншими vid/pid, треба додати відповідний рядок в цей файл.

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

Звісно, щоб записати цей файл, права адміністратора знадобляться. Але після цього AVReAl працюватиме від імені будь-якого користувача.

Attached Files:

AVReAl та MPSSE

Деякі з мікросхем фірми FTDI мають вбудований апаратний блок послідовних інтерфейсів MPSSE, який призначено для реалізації інтерфейсів JTAG, SPI, I2C. FT2232D та її старіші версії FT2232C, FT2232L підтримують Full-Bandwidth USB та мають верхню межу частоти сигналу TCK/SCK 6 МГц. Для мікросхем, що працюють в стандарті USB 2.0 Hi-Speed, тобто FT2232H, FT4232H, FT232H, межа вища — 30 МГц.

MPSSE визначає використання ліній DBUS0..DBUS2 як сигналів TCK/SCK, TDI/MOSI та TDO/MISO. Для програмування мікроконтролерів AVR потрібен сигнал RESET, для якого можна використати лінію DBUS3 (TMS/CS), що і зроблено в AVReAl за замовчуванням.

»»» Використання MPSSE з AVReAl

AVReAl update — 1.28r9

Вийшла нова версія програматора avreal – v1.28r9 (Tue 2011-12-20).

  • Додано підтримку FT232H (режим MPSSE)
  • Змінено обробку затримок у Windows-версії: зменшено завантаження процесора при роботі з ключами -k/-K.
  • Для всіх мікроконтролерів змінено метод пересинхронізації (resync). Спочатку робиться одна спроба синхронізації імпульсом RESET, після чого виконується спосіб з додатковим імпульсом SCK.
    Більше про методи синхронізації.

AVReAl update – 1.28r1

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

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