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.
Для роботи з USB-адаптерами на FT2232C/L/D, FT2232H, FT4232H, FT232H необхідно встановити драйвер для мікросхем 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 

В цій таблиці знаходяться деякі найстабільніші версії avreal. В колонці 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

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

 86RF401
 90S1200    90S2313     90S4414     90S8515     90S4434     90S8535
 90S2333    90S4433     90S2323     90S2343
 tiny12     tiny22L     tiny22      tiny13|tiny13A
 tiny2313|tiny2313A     tiny4313
 tiny15     tiny25      tiny45      tiny85
 tiny26     tiny261|tiny261A        tiny461|tiny461A        tiny861|tiny861A
 tiny24|tiny24A         tiny44|tiny44A          tiny84|tiny84A
 tiny1634
 tiny43u    tiny48      tiny88      tiny87      tiny167
 mega603    mega103     mega161     mega163     mega323
 mega8515   mega8535    mega162
 mega8|mega8A           mega48|mega48A          mega48P|mega48PA
 mega88|mega88A         mega88P|mega88PA        mega168|mega168A
 mega168P|mega168PA     mega328     mega328P
 mega16|mega16A         mega32|mega32A          mega64|mega64A
 mega128|mega128A
 90CAN32    90CAN64     90CAN128
 90usb82    90usb162    mega8U2     mega16U2    mega32U2
 mega16U4   mega32U4
 mega32U6   90usb646|90usb647       90usb1286|90usb1287
 mega164A   mega164P|mega164PA      mega324A    mega324P    mega324PA
 mega644|mega644A       mega644P|mega644PA      mega1284    mega1284P
 mega165|mega165P|mega165PA         mega165A
 mega325|mega325A       mega325P    mega3250    mega3250P
 mega645|mega645A       mega6450|mega6450A
 mega169|mega169P|mega169PA         mega169A
 mega329|mega329A       mega329P|mega329PA      mega3290    mega3290P
 mega649|mega649A       mega6490|mega6490A
 mega640    mega1280    mega1281    mega2560    mega2561
 90pwm2|90pwm3          90pwm1|90pwm2B|90pwm3B  90pwm216|90pwm316
 90pwm81    90pwm161
 mega16M1   mega32M1    mega64M1    mega32C1    mega64C1
 mega8HVA   mega16HVA   mega16HVB   mega32HVB   mega8HVD
 mega128RFA1
[flagcounter image]