01.01.2012 09:26 Age: 5 yrs

By: Roman Savochenko

Build the OpenSCADA project for mobile devices of the Nokia company (N800, N900, N950)

Name: NokiaLinux

Start: december 2010

Performers: Roman Savochenko, Maxim Lysenko

Description: The project is dedicated to building the OpenSCADA project for the mobile devices of the Nokia company (N800, N900, N950) on the Linux platforms Maemo and MeeGo.

Materials: ftp://ftp.oscada.org/OpenSCADA/Devices/Nokia

The Nokia company is one of the global leaders in the manufacture and sale of mobile phones. In 2005 the Nokia company has released a pocket-sized personal digital assistant (PDA) N770 on the basis of the full-blown Linux environment with their own desktop environment (based on the GTK +) - Hildon with the title of the project - Maemo. Subsequently, based on the Maemo platform three more mobile devices were produced, namely, two PDAs, "Internet Tablets» N800, N810, and smart phone, "Internet Tablet" N900. In 2010 the Nokia company teamed up to work on Maemo with the MobLin project of the Intel company, thus creating the WikiPedia:MeeGo project. Based on the MeeGo platform in 2011 two smartphones N950(prototype) and N9 were released.

For the OpenSCADA project the mobile devices of the Nokia company on the Maemo and MeeGo platforms are interesting in terms of their full-blown OS Linux environment, and the lack of restrictions and blocks on the expansions of these platforms by building and adapting the typical OS Linux programs, which allows easy to adapt the OpenSCADA to the ARM hardware platform and to build the project for these mobile devices of the Nokia company.

Adaptation of the OpenSCADA project to run on the ARM hardware platforms was made in 2011 in accordance with the general plan of development wiki.oscada.org/HomePageEn/Works/RoadMap in the N800 environment (wiki.oscada.org/Works/Tests/ARM). Much of adaptation was made in the chroot environment of the ALTLinux distribution, as more recent and less problematic. The latest builds of the OpenSCADA correctly operate in the native environment of the N800.

N800 (Maemo 4.1)

N800 PDA (fig.1) contains the OMAP2420 processor, with an operating frequency of 400 MHz, touch (resistive) 4.1 "800×480" and is based on the Maemo 4.1 software platform.

Fig. 1. N800 PDA, "Internet Tablet»

At the stage of exploring the possibility of building the OpenSCADA on the N800 some problems of obsolescence of software environment and a number of problems in the performance of the built OpenSCADA were found, part of which was associated with unwillingness the OpenSCADA to work on the ARM architecture. For this reason, the build of OpenSCADA in "chroot" environment of the ALTLinux distribution on the N800 was made. Among the most significant problems encountered during building of OpenSCADA, it may be noted:

  • The relatively small amount of RAM, as well as the the paged memory for build. Thus, the device contains 128MB of RAM and up to 128MB of paged memory, which is not enough to build in the "chroot" some of the user interface modules with (-O2) optimization.
  • Access to the file system problem during the loading libraries' and models' databases of OpenSCADA. On the early stages of the OpenSCADA start in the N800 native environment the OpenSCADA crashes during the loading of standard libraries in the SQLite database were found, which was not seen in the ALTLinux chroot environment. Later this problem was solved by a fine adaptation of OpenSCADA to work in a "bad" environment of the LP-5141 controller of the "ICP DAS" company.
  • The low performance of the device. The device contains the TI OMAP 2420 processor with 400MHz frequency, which is not sufficient for a full run of mathematical models. In general, the low processor's frequency aggravated by low processor's speed of floating-point calculations, detailed information can be seen from the performance analysis of the floating-point calculations.

To safely make the experiments with the device and prevent possible damage of the original software environment it was adjusted the multi-boot with the ability to boot from the original software environment on the internal flash-drive and from the experimental environment on the internal SD-card, a copy of the original software environment (habrahabr.ru/blogs/n800/24111).

To create the "chroot" of the ARM environment of ALTLinux repository the manual www.altlinux.org/Ports/arm/chroot was used. On the basis of the received chroot it was created the building environment to build the OpenSCADA in it, directly on the N800. Theoretically it is possible to build directly on the big PC through quemu, but at the same time I'm having problems with crashing of quemu. In addition to the building of OpenSCADA the resulting "chroot" environment has also been successfully used to launch a fresh environment KDE 3.5.12 on the N800.

Subsequently, to build the OpenSCADA with GUI for the native environment, which became possible with the appearance of the QT4 packages, the official SDK and compile environment of the Nokia company was installed. Installation was made by the installation script of the building environment maemo-scratchbox-install_4.1.sh and the SDK installation script maemo-sdk-install_4.1.sh. General description of the SDK can be obtained from the link.

Attention! In the extended Maemo 4.1 repository, the latest version of QT4 (libqtcore4, libqtgui4-4.5.3-1maemo1) contains an error which leads to the crash of the applications at the time of the creation/deletion of widgets that can be observed in the OpenSCADA configurator on the QT library. To circumvent this problem, it is necessary to install and fix from the updating the previous version of QT4 (libqtcore4, libqtgui4-4.5.2-1maemo2), which does not have this problem and is stable.

In addition to the primary purpose of building and running OpenSCADA on this device the following tasks were also made:

  • Installing the KDE3 (3.5.8) desktop environment as more developed and familiar environment, supplementing the original "Hildon" environment.
  • Correction of the virtual keyboardprogram kvkbd when switching Shift.
  • Build of the krusader file manager program.

N900 (Maemo 5)

Nokia N900 contains the ARM processor Cortex-A8 OMAP3430 (600 MHz), touch (resistive) display 3.5 "848 × 480 and is based on Maemo 5 software platform.

Fig. 2. N900 mobile phone

To build the OpenSCADA for the native environment an official SDK and compile environment of Nokia company was installed. Installation was made by the building environment installation script maemo-scratchbox-install_5.0.sh and the SDK installation script maemo-sdk-install_5.0.sh. General description of the SDK is available at the link.

N950, N9 (MeeGo 1.2 Harmattan)

Nokia N950 contains the ARM processor Cortex-A8 OMAP3630 (1 GHz), touch (capacitive) display 4 "854 × 480 and is based on the MeeGo 1.2 Harmattan software platform.

The phone was received from Nokia within the Qt Ambassador Program program to adapt the OpenSCADA for it.

Fig. 3. N950 mobile phone

To build the OpenSCADA for the native environment an official SDK and compile environment of Nokia company was installed. Installation was made using the installation script harmattan-sdk-setup.py. General description of the SDK and installation instructions are available at the link.