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 @ XP/64, Windows7/32, Windows7/64

Не було б щастя, так нещастя допомогло.
Знайшов можливість самостійно перевірити роботу avreal під WindowsXP/64, Windows7/32, Windows7/64, досі я перевіряв лише під W2K та XP/32.
Поки-що лише для FTDI (FT2232) – з драйверами CDM 2.06.00 все працює. Найближчими днями буду розбиратися з LPT для перерахованих систем, перевірю різні драйвери та методи їх встановлення. Обговорення було на електроніксі десь з цього місця.

AVReAl update – 1.28r1

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

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

Входит и выходит – замечательно выходит!

Є такий термін – “винахід на застосування” – “застосування пристроїв за новим раніше невідомим призначенням”. Ну це не зовсм воно, бо призначення те ж саме – заткнути дірку. Просто дірка інша :-)

Як з’ясувалося, затичка гнізда зарядного пристрою/гарнітури/… мобільного телефона Siemens ME45 непогано підходить до гнізда USB.
Прямо як у відомого віслючка.
Так що кому жорстокі сертифікатори стріляють чим під руку трапиться у вільні гнізда USB і ноутбук від цього висне – шукайте десь контейнер з такими затичками, щоб вистачило на всю програму випуску, бо якщо вже внесете в комплектність, то треба мати.

Ну і мені з пів мішка відсипете. Бо у мене лише дві штучки – єдине, що залишилоя корисного від подарованих мені кілька років тому залишків ME45-тих, нових корпусів до них (пішли в діло) та кількох акумуляторів, які так і не піднялися :-( Жалкую, бо кращого телефона у мене не було, а мій старий вже не працює.

ME45_with_cover USB_with_cover

download

 

AVReAl – AVR serial programmer

На цій сторінці ви можете завантажити свіжу версію AVReAl.
Для роботи з FT2232C/L/D, FT2232H, FT4232H необхідно встановити драйвер для мікросхем FTDI та біблиотеку FTD2XX.DLL. Лінукс-версія також використовує бібліотеку FTD2XX (libftd2xx.so).

avreal/linux перевірено з бібліотеками libftd2xx версій по 0.4.16 включно. З цієї сторінки можна завантажити 32-бітну libftd2xx0.4.16.tar.gz та 64-бітну libftd2xx0.4.16_x86_64.tar.gz версії цієї бібліотеки.

Для роботи з LPT під WindowsNT, Windows2000, WindowsXP 32 та 64 біт, Windows7 32 та 64 біт необхідно встановити драйвер доступу до портів DLPortIO. Для Windows 98 та її «родичів» драйвер непотрібен, використовується прямий доступ до портів, дозволений в цих системах всім, хто забажає.

avreal для Linux також працює з LPT без додаткових драйверів, необхідно лише вибрати метод роботи та налаштувати права програмі.

AVReAl 

Version Windows Linux i386 Linux x86-64 FreeBSD
1.28rev10 1.28r10 – Win32 1.28r10 – Linux32 1.28r10 – Linux64 1.28r10 – FreeBSD
1.28rev9 1.28r9 – Win32 1.28r9 – Linux32 1.28r9 – Linux64 1.28r9 – FreeBSD (8.2)
1.28rev8 1.28r8 – Win32 1.28r8 – Linux32 1.28r8 – Linux64 1.28r8 – FreeBSD 8.2
1.28r8 – FreeBSD 6.4
1.28rev7 avw-1.28r7.zip avl32-1.28r7.zip avl64-1.28r7.zip avb-1.28r7.zip
1.28rev6 avw-1.28r6.zip avl32-1.28r6.zip avl64-1.28r6.zip avb-1.28r6.zip
1.28rev5 avw-1.28r5.zip avl32-1.28r5.zip avl64-1.28r5.zip avb-1.28r5.zip
1.28rev4 avw-1.28r4.zip avl32-1.28r4.zip avl64-1.28r4.zip avb-1.28r4.zip
1.28rev3 avw-1.28r3.zip avl32-1.28r3.zip avl64-1.28r3.zip avb-1.28r3.zip
1.28rev2 avw-1.28r2.zip avl32-1.28r2.zip avl64-1.28r2.zip avb-1.28r2.zip
1.28rev1 avw-1.28r1.zip avl32-1.28r1.zip avl64-1.28r1.zip avb-1.28r1.zip
1.28rev0 avw-1.28r0.zip avl32-1.28r0.zip avl64-1.28r0.zip avb-1.28r0.zip
avw-1.27r4.zip avl32-1.27r4.zip avl64-1.27r4.zip avb-1.27r4.zip

В колонці Version дано посилання на повідомлення про вихід даної версії з переліком змін в ній.
Всі такі повідомлення та повідомлення про виявлені помилки зібрано в категорії Історія.
Деякі з попередніх версій програми, включно з останньою DOS-версією, знаходяться на «старій» сторінці History.

DLPortIO 

File Comments
dlportio-64.zip (25K)
Драйвер та бібліотека для 64-бітних версій Windows.
Інсталятор командного рядка. Докладнше…
dlportio-32-bat.zip (17K)
Драйвер та бібліотека для 32-бітних версій Windows.
Інсталятор командного рядка. Детальніше…
dlportio-32-exe.zip (167K)
Драйвер та бібліотека для 32-бітних версій Windows.
GUI-інсталятор. Детальніше…

Драйвери не перевірялися під Windows Vista, але, судячи з усього, мають працювати при інсталяції як для Windows 7

 

AT89S51, AT89S52 serial programmer

at89s52.zip
На прохання (як явні, в пошту та коментарі, так і неявні – через ключові слова пошукових машин, по яких було зроблено відвідування цього сайту) викладаю стару версію послідовного програматора AT89S51, AT89S52. Програму було написано для знайомого методом швидкої та не завжди акуратної переробки avreal під інший алгоритм, але нею прошито, наскільки я знаю, багато тисяч контроллерів. Підтримується лише Windows та лише LPT, для роботи необхідно встановити той же драйвер, що і для avreal. Ключі програми також в основному співпадають з ключами avreal, тому окремого опису на неї не було зроблено.
Перевірка перед викладанням показала, що при високих частотах в ключі -o (для конфігурації мого комп’ютера це вище, ніж -o10MHZ) не працює програмування контроллера, лише зчитування, тому при помилках програмування спробуйте знизити цю частоту до -o8MHz чи навіть до -o6MHz.
Ця версія не розвиватиметься, але я спробую знайти час додати підтримку контроллерів серії at89s в основну програму.


AVReAl – ISP програматор AVR

 

Програму AVReAl призначено для програмування мікроконтроллерів Atmel AVR в режимі ISP (in-circuit serial programming – послідовне програмування в схемі).
AVReAl може запрограмувати (“прошити”) мікроконтроллер через

AVReAl – програма командного рядка (console application), що дозвляє інтегрувати її у використовуване середовище розробки (IDE).
Підтримуються версії програми для Windows, Linux та FreeBSD, підтримку DOS припинено з версії 1.26r0. Остання версія для DOS 1.25r6 доступна для завантаження. Версія для FreeBSD не підтримує роботу з мікросхемою FT2232, версії для Win* та Linux працюють через драйвер/бібліотеку від FTDI.
Роботу avreal/win32 з FT2232 перевірено для Windows2000, WindwsXP/32, WindowsXP/64 та для Windows7/32, Windows7/64.
Роботу avreal/win32 з LPT через драйвер DLPortIO перевірено для Windows2000, WindowsXP/32, WindowsXP/64 та для Windows7/32, Windows7/64. Для Windows98 драйвер не потрібен.
Vista не перевірялася, в моєму оточенні такого не водиться.

Програму можна використовувати безоплатно з комерційною чи не-комерційною метою, але її тексти закриті, тобто вона безкоштовна (freeware), але не вільна (free software)

Завантажити програму, а також 32- та 64-бітні драйвери DLPortIO, необхідні для доступу до LPT під Windows, можна зі сторінки download.
Детальніша інформація знаходиться на сторінці description, схеми адаптерів для програматорів — на сторінці adapters.
Повідомлення про оновлення програми та про виявлені помилки публікуються в категорії Історія, окремі повідомлення про помилки публікуються в тому разі, коли нема часу на термінове виправлення або коли я вважаю помилку не дуже важливою, такою, що може побути «особливістю» до наступного оновлення.
Перелік попередніх змін та деякі з попередніх версій програми можна отримати на «старій» сторінці History.

Перелік мікроконтроллерів, що підтримуються програмою, можна отримати командою

avreal -h

Моделі, перераховані через символ ‘|’, не розрізняються програматором, про це можна прочитати детальніше.
На даний момент підтримуються такі моделі:

 AT86RF401
 AT90S1200    AT90S2313    AT90S4414    AT90S8515    AT90S4434
 AT90S8535    AT90S2333    AT90S4433    AT90S2323    AT90S2343
 ATtiny12     ATtiny22L    ATtiny22     ATtiny13|ATtiny13A
 ATtiny2313|ATtiny2313A    ATtiny4313
 ATtiny15     ATtiny25     ATtiny45     ATtiny85     ATtiny43u
 ATtiny87     ATtiny167
 ATtiny26     ATtiny261|ATtiny261A      ATtiny461|ATtiny461A
 ATtiny861|ATtiny861A
 ATtiny24     ATtiny44     ATtiny84     ATtiny48     ATtiny88
 ATmega603    ATmega103    ATmega161    ATmega163    ATmega323
 ATmega8515   ATmega8535   ATmega162
 ATmega8|ATmega8A     ATmega48|ATmega48A     ATmega48P|ATmega48PA
 ATmega88|ATmega88A   ATmega88P|ATmega88PA
 ATmega168|ATmega168A ATmega168P|ATmega168PA
 ATmega328     ATmega328P
 ATmega16|ATmega16A   ATmega32|ATmega32A     ATmega64|ATmega64A
 ATmega128|ATmega128A
 AT90CAN32    AT90CAN64    AT90CAN128
 AT90usb82    AT90usb162   ATmega8U2    ATmega16U2   ATmega32U2
 ATmega16U4   ATmega32U4
 ATmega32U6   AT90usb646|AT90usb647     AT90usb1286|AT90usb1287
 ATmega164A   ATmega164P|ATmega164PA
 ATmega324A   ATmega324P   ATmega324PA
 ATmega644|ATmega644A      ATmega644P|ATmega644PA
 ATmega1284   ATmega1284P
 ATmega165|ATmega165P|ATmega165PA       ATmega325    ATmega325P
 ATmega3250   ATmega3250P  ATmega645    ATmega6450
 ATmega169|ATmega169P      ATmega329    ATmega329P
 ATmega3290   ATmega3290P
 ATmega649    ATmega6490
 ATmega640    ATmega1280   ATmega1281   ATmega2560   ATmega2561
 AT90pwm2|AT90pwm3  AT90pwm1|AT90pwm2B|AT90pwm3B
 AT90pwm216|AT90pwm316 AT90pwm81
 ATmega16M1   ATmega32M1   ATmega64M1   ATmega32C1   ATmega64C1
 ATmega8HVA   ATmega16HVA  ATmega16HVB  ATmega32HVB  ATmega8HVD
 ATmega128RFA1
[flagcounter image]