УкраїнськаEnglishmRussian
Вход/Новый

Сборка проекта OpenSCADA для мобильных устройств фирмы Nokia (N800, N900, N950)

01.01.2012 09:53 Давность: 13 yrs
Категория: НовостьРешениеРазработка

Автор: Роман Савоченко


Имя: NokiaLinux

Основан: декабрь 2010г

Участники: Роман Савоченко, Максим Лысенко

Описание: Проект посвящён сборке проекта OpenSCADA для мобильных устройств фирмы Nokia (N800, N900, N950) на Linux платформах Maemo и MeeGo.

Материалы: ftp://ftp.oscada.org/OpenSCADA/Devices/Nokia

Фирма Nokia является одним из мировых лидеров в производстве и продаже мобильных телефонов. В 2005 году фирма Nokia выпустила карманный персональный компьютер (КПК) N770 на основе развитого Linux окружения с собственным окружением рабочего стола (на GTK+) — Hildon под общим названием проекта Maemo. В последствии на основе платформы Maemo было выпущено ещё три мобильных устройства, а именно два КПК «интернет-планшета» N800, N810 и смартфон «интернет-планшет» N900. В 2010 году фирма Nokia объединила свои усилия по работе над Maemo с проектом MobLin фирмы Intel, создав проект MeeGo. На основе платформы MeeGo в 2011 году было выпущено два смартфона N950(прототип) и N9.

Для проекта OpenSCADA мобильные устройства фирмы Nokia на платформах Maemo и MeeGo интересны в плане их основы на развитом окружении ОС Linux, отсутствия блокировок и ограничений на расширения этих платформ путём сборки и адаптации типовых программ ОС Linux, что позволяет просто осуществить адаптацию OpenSCADA на аппаратные платформы ARM и сборку для вышеупомянутых мобильных устройств фирмы Nokia.

Адаптация проекта OpenSCADA для работы на аппаратных платформах ARM была выполнена в 2011 году в соответствии с общим планом развития wiki.oscada.org/Works/RoadMap в окружении КПК N800 (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.

КПК N800 (657 Кб)
Рис. 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-карте, копии исходного программного окружения (habrahabr.ru/blogs/n800/24111).

Для создания "chroot" окружения ARM репозитория ALTLinux использовано руководство 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.
  • Сборка программы файлового менеджера krusader.

N900 (Maemo 5)

Nokia N900 содержит процессор ARM Cortex-A8 OMAP3430 (600 МГц), сенсорный (резистивный) дисплей 3.5" 848×480 и построен на основе программной платформы Maemo 5.

Мобильный телефон N900 (448 Кб)
Рис. 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.

Мобильный телефон N950 (412 Кб)
Рис. 3. Мобильный телефон N950

Для сборки OpenSCADA под родное окружение было установлено официальное SDK и окружение компиляции фирмы Nokia. Установка проводилась посредством скрипта установки harmattan-sdk-setup.py. Общее описание SDK и инструкцию по установке можно получить по ссылке.


13837