Фірма Nokia є світовим лідером у виробництві та продажу мобільних телефонів. У 2005 році фірма Nokia випустила кишеньковий персональний комп'ютер (КПК) N770, на основі розвинутого Linux оточення з власним оточенням робочої стільниці (на GTK+) — Hildon, під загальною назвою проекту Maemo. Надалі на основі платформи Maemo було випущено ще три мобільних пристрої, а саме два КПК «інтернет-планшету» N800, N810 та смартфон «інтернет-планшет» N900. У 2010 році фірма Nokia об'єднала свої зусилля по роботі над Maemo з проектом WikiPediaRu:MobLin фірми Intel, створивши проект WikiPediaRu:MeeGo. На основі платформи MeeGo у 2011 році було випущено два смартфони N950(прототип) та N9.
Для проекту OpenSCADA мобільні пристрої фірми Nokia, на платформах Maemo та MeeGo, цікаві у сенсі їх ґрунтування на розвинутому оточенні ОС Linux, відсутності блокувань та обмежень на розширення цих платформ шляхом збірки та адаптації типових програм ОС Linux, що дозволяє просто здійснювати адаптацію OpenSCADA на апаратні платформи ARM та збірку для вищенаведених мобільних пристроїв фірми Nokia.
Адаптація проекту OpenSCADA для роботи на апаратних платформах ARM було виконано у 2011 році, у відповідності із загальним планом розвитку http://wiki.oscada.org/Works/RoadMap, в оточені КПК N800 (http://wiki.oscada.org/Works/Tests/ARM ). Значним чином адаптацію було виконано у межах chroot оточення дистрибутиву ALTLinux, як більш свіжого та менш проблемного. Останні збірки OpenSCADA вже повноцінно та коректно працюють у рідному оточені N800.
N800 (Maemo 4.1)
КПК N800 (рис.1) містить процесор OMAP2420, з робочою частотою 400 МГц, сенсорний (резистивний) дисплей 4,1" 800×480 та побудовано на основі програмної платформи Maemo 4.1.
Рис. 1. КПК (інтернет-планшет) N800
На етапі знайомства та вивчення можливостей збірки OpenSCADA під або для N800 були виявлені проблеми деякої застарілості програмного оточення та низка проблем при виконанні зібраної OpenSCADA, частину з яких булу пов'язано з неготовністю OpenSCADA для роботи на архітектурі ARM. З цієї причини було також здійснено збірка OpenSCADA у "chroot" оточені дистрибутиву ALTLinux на N800. Із більш суттєвих проблем, з якими довелося зіткнутися під час збірки OpenSCADA, можна відзначити:
Порівняно невеликий об'єм оперативної, а також вивантажувальної пам'яті для збірки. Так, пристрій містить 128Мб оперативної пам'яті та до 128Мб вивантажувальної, чого недостатньо для збірки у "chroot" деяких модулів користувацького інтерфейсу з оптимізацією (-O2).
Проблема доступу до файлової системи під час завантаження БД бібліотек та моделей OpenSCADA. На перших етапах запуску OpenSCADA у рідному оточені N800 було виявлено падіння OpenSCADA під час завантаження стандартних бібліотек у БД SQLite, чого не помічалось у chroot оточені ALTLinux. Надалі цю проблему було вирішено шляхом тонкої адаптації OpenSCADA для роботи у "поганому" оточені контролеру LP-5141 фірми "ICP DAS".
Невисока продуктивність пристрою. Пристрій містить процесор TI OMAP 2420 з частотою 400МГц, чого не достатньо для повноцінного запуску математичних моделей технологічних процесів. В цілому низька частота процесору посилюється невисокою швидкістю обчислень із плаваючою точкою, детальніше про це можна побачити із аналізу продуктивності обчислювань з плаваючою точкою.
Для безпечного проведення експериментів з пристроєм та попередження можливого пошкодження первинного програмного оточення було налаштовано мульті-завантаження з можливістю завантаження як до первинного програмного оточення на внутрішньому flash-носії так і до експериментального оточення на внутрішній SD-карті, копії первинного програмного оточення (http://habrahabr.ru/blogs/n800/24111 ).
Для створення "chroot" оточення ARM репозиторію ALTLinux використано керівництво http://www.altlinux.org/Ports/arm/chroot. На основі отриманого chroot було створено складальне оточення для збірки у ньому OpenSCADA, безпосередньо на N800. Теоретично можлива збірка безпосередньо на великій машині, через quemu, однак при цьому у мене виникли проблеми з падінням quemu. Крім збірки OpenSCADA отримане "chroot" оточення також вдало використано для запуску свіжого оточення KDE 3.5.12 на N800.
Надалі, для збірки OpenSCADA з графічним інтерфейсом під рідне оточення, що стало можливим з появою пакетів QT4, було встановлено офіційне SDK та оточення компіляції фірми Nokia. Встановлення проводилась за посередництвом скрипту встановлення складального оточення maemo-scratchbox-install_4.1.sh та скрипту встановлення SDK maemo-sdk-install_4.1.sh. Загальний опис SDK можна отримати за посиланням.
У розширеному репозиторії Maemo 4.1 остання версія QT4 (libqtcore4, libqtgui4-4.5.3-1maemo1) містить помилку, яка призводить до падіння програми під час створення/видалення віджетів, що можна спостерігати у конфігураторі OpenSCADA на бібліотеці QT. Для обходу цієї проблеми потрібно встановити та зафіксувати від оновлення попередню версію QT4 (libqtcore4, libqtgui4-4.5.2-1maemo2), яка не має цієї проблеми та працює стабільно.
Крім першочергової мети збірки та запуску OpenSCADA на цьому пристрої було також виконано завдання:
Встановлення оточення робочого столу KDE3 (3.5.8) у ролі більш розвинутого та звичного оточення, яке доповнює попереднє оточення "Hildon".
Виправлення роботи програми віртуальної клавіатури kvkbd при переключенні Shift.
Nokia N900 містить процесор ARM Cortex-A8 OMAP3430 (600 МГц), сенсорний (резистивний) дисплей 3.5" 848×480 та побудовано на основі програмної платформи Maemo 5.
Рис. 2. Мобільний телефон N900
Для збірки OpenSCADA під рідне оточення було встановлено офіційне SDK та оточення компіляції фірми Nokia. Встановлення відбувалося за посередництвом скрипту встановлення збіркового оточення maemo-scratchbox-install_5.0.sh та скрипту встановлення SDK maemo-sdk-install_5.0.sh. Загальний опис SDK можна отримати за посиланням.
N950, N9 (MeeGo 1.2 Harmattan)
Nokia N950 містить процесор ARM Cortex-A8 OMAP3630 (1 ГГц), сенсорний (ємнісний) дисплей 4" 854×480 та побудовано на основі програмної платформи MeeGo 1.2 Harmattan.
Телефон було отримано від Nokia у межах програми Qt Ambassador Program для адаптації на нього системи OpenSCADA.
Рис. 3. Мобільний телефон N950
Для збірки OpenSCADA під рідне оточення було встановлено офіційне SDK та оточення компіляції фірми Nokia. Встановлення відбувалося за посередництвом скрипту встановлення harmattan-sdk-setup.py. Загальний опис SDK та інструкцію по встановленню можна отримати за посиланням.