Èìÿ: NokiaLinux Îñíîâàí: äåêàáðü 2010ã Ó÷àñòíèêè: Ðîìàí Ñàâî÷åíêî, Ìàêñèì Ëûñåíêî Îïèñàíèå: Ïðîåêò ïîñâÿù¸í ñáîðêå ïðîåêòà OpenSCADA äëÿ ìîáèëüíûõ óñòðîéñòâ ôèðìû Nokia (N800, N900, N950) íà Linux ïëàòôîðìàõ Maemo è MeeGo. Ìàòåðèàëû: ![]() | ![]() |
Ôèðìà 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 (ðèñ.1) ñîäåðæèò ïðîöåññîð OMAP2420, ñ ðàáî÷åé ÷àñòîòîé 400 ÌÃö, ñåíñîðíûé (ðåçèñòèâíûé) äèñïëåé 4,1" 800×480 è ïîñòðîåí íà îñíîâå ïðîãðàììíîé ïëàòôîðìû Maemo 4.1.
Íà ýòàïå çíàêîìñòâà è èçó÷åíèÿ âîçìîæíîñòè ñáîðêè OpenSCADA ïîä èëè äëÿ N800 áûëè îáíàðóæåíû ïðîáëåìû íåêîòîðîé óñòàðåëîñòè ïðîãðàììíîãî îêðóæåíèÿ è ðÿä ïðîáëåì ïðè èñïîëíåíèè ñîáðàííîé OpenSCADA, ÷àñòü èç êîòîðûõ áûëà ñâÿçàíà ñ íåãîòîâíîñòüþ OpenSCADA äëÿ ðàáîòû íà àðõèòåêòóðå ARM. Ïî ýòîé ïðè÷èíå áûëà îñóùåñòâëåíà òàêæå ñáîðêà OpenSCADA â "chroot" îêðóæåíèè äèñòðèáóòèâà ALTLinux íà N800. Èç íàèáîëåå ñóùåñòâåííûõ ïðîáëåì, ñ êîòîðûìè ïðèøëîñü ñòîëêíóòüñÿ ïðè ñáîðêå OpenSCADA, ìîæíî îòìåòèòü:
Äëÿ áåçîïàñíîãî ïðîâåäåíèÿ ýêñïåðèìåíòîâ ñ óñòðîéñòâîì è ïðåäîòâðàùåíèÿ âîçìîæíîãî ïîâðåæäåíèå èñõîäíîãî ïðîãðàììíîãî îêðóæåíèÿ áûëà íàñòðîåíà ìóëüòè-çàãðóçêà ñ âîçìîæíîñòüþ çàãðóçêè êàê â èñõîäíîå ïðîãðàììíîå îêðóæåíèå íà âíóòðåííåì 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 íà ýòîì óñòðîéñòâå áûëè òàêæå âûïîëíåíû çàäà÷è:
Nokia N900 ñîäåðæèò ïðîöåññîð ARM Cortex-A8 OMAP3430 (600 ÌÃö), ñåíñîðíûé (ðåçèñòèâíûé) äèñïëåé 3.5" 848×480 è ïîñòðîåí íà îñíîâå ïðîãðàììíîé ïëàòôîðìû Maemo 5.
Äëÿ ñáîðêè OpenSCADA ïîä ðîäíîå îêðóæåíèå áûëî óñòàíîâëåíî îôèöèàëüíîå SDK è îêðóæåíèå êîìïèëÿöèè ôèðìû Nokia. Óñòàíîâêà ïðîâîäèëàñü ïîñðåäñòâîì ñêðèïòà óñòàíîâêè ñáîðî÷íîãî îêðóæåíèÿ maemo-scratchbox-install_5.0.sh è ñêðèïòà óñòàíîâêè SDK
maemo-sdk-install_5.0.sh. Îáùåå îïèñàíèå SDK ìîæíî ïîëó÷èòü ïî
ññûëêå.
Nokia N950 ñîäåðæèò ïðîöåññîð ARM Cortex-A8 OMAP3630 (1 ÃÃö), ñåíñîðíûé (åìêîñòíîé) äèñïëåé 4" 854×480 è ïîñòðîåí íà îñíîâå ïðîãðàììíîé ïëàòôîðìû MeeGo 1.2 Harmattan.
Òåëåôîí áûë ïîëó÷åí îò Nokia â ðàìêàõ ïðîãðàììû Qt Ambassador Program äëÿ àäàïòàöèè íà íåãî ñèñòåìû OpenSCADA.
Äëÿ ñáîðêè OpenSCADA ïîä ðîäíîå îêðóæåíèå áûëî óñòàíîâëåíî îôèöèàëüíîå SDK è îêðóæåíèå êîìïèëÿöèè ôèðìû Nokia. Óñòàíîâêà ïðîâîäèëàñü ïîñðåäñòâîì ñêðèïòà óñòàíîâêè harmattan-sdk-setup.py. Îáùåå îïèñàíèå SDK è èíñòðóêöèþ ïî óñòàíîâêå ìîæíî ïîëó÷èòü ïî
ññûëêå.