From OpenSCADAWiki
Процес складання та тестування:
- Патчі CONFIG_PREEMPT_RT та AUFS часів 2.6.29 конфліктують на функції "debug_mutex_set_owner()", у CONFIG_PREEMPT_RT видалена — замінено на "mutex_set_owner()".
- При складанні виявлено низку проблем із "# typedef void irqreturn_t;" — замінено на "#include <linux/irqreturn.h>".
- Перший запуск із CONFIG_PREEMPT_RT, але без AUFS, пройшов вдало — результат вище.
- Запуск із AUFS виявив проблему виділення пам'яті AUFS у "aufs_mmap()" — робочий код AUFS взято цілком із попередньої збірки "rt-up-2.6.29.alt2".
- Запуск із AUFS виявив проблему зависання на корінні ФС у AUFS, схоже через можливість зациклювання/блокування RT-задачі — встановлено CONFIG_PREEMPT_NONE, на LP-8781 та "AMD Turion" проблем не виявлено (можливо ця проблема через відсутність HPET на PLX8).
- На перший погляд ядро працює нормально, але помічено зісковзування на безперервне нарощування часу запізнення.
- Виконано адаптацію ядра для бінарної сумісності із модулями "slot" та "icp" від ICP_DAS. Модуль "8250_linpac" падає при завантажені, а "icpdas_8250" має безліч нерозв'язаних символів — потрібно ці модулі перескладати або пробувати інтерфейси > COM2 ініціювати через setserial — модулі перескладено, завдяки Golden Wang (тех. підтримка ICPDAS).
- Нове ядро встановлено під високе навантаження, конфігурацією проєкту САУ кульових барабанних млинів:
- Збій мережі із драйвером "via_rhine", після 4 діб роботи — збій очікуваний, зібрано драйвер "rhinefet", випробування продовжено.
- На драйвері "rhinefet" система під навантаженням пропрацювала три тижні. Однак помічено, що переривання 11, на якому висить майже все стандартне обладнання (USB, Ethernet та може ще чогось), вимикається та мережа працює у режимі "Опитування", що повільніше. Можливо вимкнення цього переривання відбувається і з "via_rhine", а він не може працювати у режимі "Опитування", чому і пакети у/із мережі не ходять. Проблема пов'язана із відмовою та генерацією необроблених переривань одним із обладнань на переривані 11.
- Виправлено виключенням вимкнення переривань за допомогою параметра ядра Linux "noirqdebug".
- Адаптацію вдало завершено та прошивки на основі цього ядра готові до промислової експлуатації!
- 01.03.2015: Замість функції EnableWDT() використано EnableSysWDT(), у зв'язку із обмеженням до 30 секунд та циклічних перевантажень якщо не завантажується за 30 секунд (до трьох перевантажень).
- 17.03.2015: При участі служби підтримки ICP_DAS виправлено проблему драйверу послідовних інтерфейсів більш за COM2, яка призводила до "замерзання" ядра Linux (схоже у зв'язку із блокуванням переривань) після закриття одного порту та активності на хоча-б одному іншому.
- 29.07.2015: Виявлено ще одну проблему із мережею із схожими симптомами вимкнення переривання 11, але: переривання 11 не вимикається та всі інші пристрої на ньому працюють, відтворюється тільки на конфігураціях із використанням обох інтерфейсів мережі, причому можливе "гальмування" тільки одного із них. Проблема вирішується тільки перевантаженням "загальмованого" мережевого інтерфейсу, командою: ifdown eth0; ifup eth0. Для виявлення та перезапуску рекомендується на рівні OpenSCADA додавати контроль трафіку та безпосереднє перевантаження інтерфейсу за його відсутністю.
- 21.11.2016: Драйвер "rhinefet" адаптовано на предмет запобігання блокування переривань та вимкнення вектору переривань оскільки режим SHARE використовується. Наразі драйвер працює однак 19.12.2016 також було помічено гальмування мережі із двома цими адаптерами після біля двох тижнів роботи.
- Відтак це обладнання зламане для роботи двох адаптерів та у цьому ПЛК ви можете використовувати лише один, для стабільної роботи!
- 06.09.2017: Неповне виправлення у послідовному драйвері ICP-DAS, призводить до непрацедатності використання більш двох послідовних портів, схоже вже повністю виправлено у останіх версіях, що спостерігалось на LX-8x31.