SEC_ERROR_LIBRARY_FAILURE

Або «як заблокувати собі інтернет за кілька секунд і як повернути його собі назад»
Щоправда, якщо це вперше, то назад не за кілька секунд і якщо є ще з чого погуглити.

Минулого разу я запускав Wireshark давно і у WindowsXP. Пам’яталося, що там запускав його від адміністратора, тому коли в Linux він мені сказав, що на щось там (на dumpcap, але то не важливо) йому не вистачає привілеїв, я не поліз читати, що треба робити (додати себе в групу wireshark), а взяв і запустив його через sudo.

Йому це однак не сподобалося (і правильно!) і він послав мене читати документацію. В інтернеті. Через Firefox. Ну я прочитав, зробив як він просив, захотів ще щось глянути в мережі, запустив Firefox, а він мені і каже оце кляте SEC_ERROR_LIBRARY_FAILURE

Добре, що є ще планшет. Причина хвороби та ліки знайшлися швидко — Firefox з-під sudo-шного Wireshark кілька файлів у мене в ~/.mosilla/ перезаписав від рута. При роботі від звичайного користувача ті файли не читалися і робота далі не йшла.
Ліки:

find ~/.mozilla/firefox/ -user root -print0 | xargs -0 sudo chown fooluser:fooluser

де fooluser — логін необережного користувача.

p.s. Дійсно щось я став необережним поспішайком :-(

Символ діаметру

І не лише він.

Вже багато років використовую розкладку клавіатури «Ukrainian unicode».
Спочатку вибирав її при налаштуванні Linux, тепер вже багато років ця розкладка встановлюється автоматично при виборі української мови системи. До речі, цю розкладку можна встановити і для Windows.

Переваги цієї розкладки для мене суттєві:
• У системі залишається дві розкладки — англійська та ця. Російську мову я використовую доволі рідко і можливості набрати російські літери Ы ы Ё ё Э э Ъ ъчерез правий Alt вистачало ще тоді, коли я відносно багато часу проводив на форумах, а зараз і поготів. Перемикання можна призначити на клавішу CapsLock — капсом я пишу набагато рідше, ніж російською, а якщо сильно потрібно, то можна натиснути Shift-CapsLock. Індикацію вибраної розкладки для двох розкладок можна призначити на світлодіод ScrollLock на клавіатурі, що теж доволі зручно.
• Доступні символи, заради яких зазвичай доводилося перемикатися на англійську. Це «більше-менше», різноманітні дужки, косі риски.
• Доступні символи, яких раніше просто не було і доводилося пам’ятати код Unicode для набору через Ctrl-Shift-u або шукати потрібне через меню «вставити символ». Це ± та , еліпсис , градус °, лапки потрібного виду, em- та en- тире і © ® ™. Також є можливість поставити наголос та вставити нерозривний пробіл.

Але завжди хочеться більшого ;-)

»»» Наприклад…

Quartus, USB-blaster та Ubuntu 13.04

Років десять тому була задумка з підручних матеріалів (мікросхем, які однак завжди є у шафці) зробити спеціалізоване «щось схоже на логаналізатор» — запис з мітками часу прийнятого з двох каналів UART, кількох цифрових входів з дискретністю в десяток мікросекунд та пари аналогових входів з дискретністю в сотню мікросекунд.

На платі ATmega64, FT245, мікросхема статичної пам’яті 512Kx8 та між ними мостом EPM240. Ця альтеринка повинна була сама писати у буферну пам’ять цифрові входи при зміні їх стану, а також супроводжувати міткою часу записи від мікроконтролера (UART-и та аналогові входи) а також бути «DMA-каналом» для FT245.
Але змінилися задачі, змінилася робота, … Через кілька років по виготовленні плат парочку навіть було запаяно, але далі справа не пішла.

Заманулося таки хоч якось запустити цю стару плату, хоча б для тестування змін у scmRTOS :-)

Знайшов у себе в завалах якийсь Квартус 9.1 (free-шна версія для Linux). Поставив. Поруч в архівах лежали рекомендовані для роботи з USB-blaster файли 51-usbblaster.rules (записувати у каталог /etc/udev/rules.d)

# USB-Blaster
#
SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001|6002|6003",\
OWNER="root", GROUP="root", MODE="0666", SYMLINK+="usbblaster"

та рядки, що їх треба додати до файлу /etc/rc.local

# For Altera USB Blaster
mount --bind /dev/bus /proc/bus
ln -s /sys/kernel/debug/usb/devices /proc/bus/usb/devices
#

«Вмикаю — не працює». На деякий час програматор квартуса задумався, потім сказав, що не знайшов нічого, що його могло б зацікавити. Пробую cat /sys/kernel/debug/usb/devices, а воно мене не пускає. О, дивлюся далі.

$ ls -l /sys/kernel | grep debug
drwx------  22 root root    0 лис 19 08:58 debug

При тому, що

$ sudo ls -l /sys/kernel/debug | grep usb
drwxr-xr-x  3 root root 0 лис 19 08:58 usb

Тобто доступ на читання до підкаталогу usb є, так само до всіх інших у debug, поруч лежать файли з правами 444.
Отже, все, що лежить у debug — дозволено читати всім. Тому не став гаяти часу, зробив просто

$ sudo chmod 755 /sys/kernel/debug

Програматор квартуса побачив мій усб-бластер, тепер, може, щось і зроблю.

Обмалинився і я

І що цікаво — син учора ввечері спитав: «а чого це у нас в хаті малиною пахне?»

Про те, що я десять днів тому замовив з британського сайту RS плату Raspberry Pi, він нічого не знав. Але нюх у нього є :-)
Сьогодні вранці по дорозі на роботу мене перехопив дзвінком кур’єр DHL, зрадів що не треба буде пертися до мене додому в наш куток. У Києві під’їхати — туди, куди і без мене, імовірно, щось було, бо поруч офісний центр немаленький — набагато простіше.

Загалом конверт, коробочка та плата — все таке саме, як мало бути, фотографувати та показувати нема сенсу.

Прибуло кур’єром, перехопив мене дзвінком по дорозі на роботу, то туди й підвіз.

RS Stock No. Qty     Description                  Unit Price Goods Value
756-8308      1   Raspberry Pi Type B
                  Single Board Computer 512MB     US$35.00   US$35.00
                                             Running Total   US$35.00

    Standard Delivery (Despatch expected within 2 week(s))    US$8.02

                                               Order total   US$43.02

Доставили за десять днів після оплати, в два тижні чудово вклалися.

Тепер треба знайти час з цим поколупатися. Боюся, за наступні пару тижнів лише викачаю образ лінукса та запишу на SD карту…
Ой, це ж треба ще SD карту знайти. Хоча тимчасово можна з Canon A610 вийняти.

Gnumeric

Останнім часом починає доходити, що «необхідність сумісності з тими, хто у віндовсі» — це для мене така «міська легенда», яка, здебільшого, не має жодного стосунку до реальності. Досить багато «документів» у мене — для внутрішнього використання. З тих, що мають виходити назовні — переважна більшість не призначені для редагування там, «іззовні». Тобто можуть іти у світ у вигляді pdf-файлів. І вже багато років так і роблять, бо це виключає імовірність випадкового редагування в процесі читання/друкування.
Так, спільної роботи над документами у мене практично нема, точніше, вона є у формі «посиділи за столом, обговорили, підказали/попросили, а далі редагую все одно я».

Так чому ж я досі навіть свої майже тимчасові таблички, наприклад, напруга-струм на вході-виході для різних режимів та пораховані з них потужності, коефіцієнти корисної дії та подібне — роблю у OpenOffice (на роботі убунта новіша і він там називається LibreOffice — «вони самі не знають, чого хочуть»)?

Кілька місяців тому майже випадково запустив gnumeric. Здається, коли xfce пробував, він прикрутив запуск gnumeric і для .ods-файлів. Так, місцями воно простіше, місцями трохи незвичне. Але запускається практично моментально, ті ж самі файли мають менший розмір, …
А таки якщо сильно буде треба, то .gnumeric експортується і в .ods, і в .xls.

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:

Windows7 vs WindowsXP vs Linux

Так-сяк закінчив переїзд більшості робіт на ноутбук. Але на «великому» комп’ютері у мене крім Ubuntu ще була жменя розділів по 4..8 гігабайт з 32- та 64- бітними версіями WindowsXP та Windows7 («виключно з метою ознайомлення нових версій avreal з середовищем, де їм доведеться працювати»). Ставити весь цей зоопарк на ноутбук бажання нема. Але у ноутбука є гніздо eSATA.
»»» Читати далі про мороку з завантаженням Windows

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 старту програмування по натисканню кнопки на адаптері отримав дві форми з різним порядком етапів роботи avreal.

avreal та LPT в Linux

На відміну від Windows лінійки NT, для роботи avreal з LPT-адаптерами в Linux/x86 (32- та 64-бітних) немає потреби в спеціальному драйвері на зразок DLPortIO.sys. На відміну від Windows 98, в Linux будь-яка програма не може просто так працювати з портами вводу-вводу, для цього необхідно налаштувати дозвіл на таку роботу.

Є два варіанти роботи — безпосередній доступ до портів вводу-виводу та робота з пристроєм паралельного порта parport. Безпосередній доступ до портів дає дещо вищу швидкість програмування, але вимагає використання привілеїв адміністратора системи під час запуску avreal, що не завжди зручно чи можливо.

Continue reading ‘avreal та LPT в Linux’ »

Подаруночок від 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’ »

[flagcounter image]