Modern ARM alapú mikroprocesszoros rendszerekben (Cortex-A sorozat) az üzleti értéket hordozó alkalmazás elindításáig számtalan egyéb szoftver hívódik meg, amely inicializálja a hardvert, távmenedzsment funkciókat éleszt fel stb. Az üzemeltetés során az illetéktelen behatolás két fő veszélyt rejthet:
A módosított szoftver nem kívánt módon viselkedik a rendszerben (pl. meghamisítja a mérési adatokat), A rendszerből adatok és IP szivároghat. Ahhoz, hogy a veszélyeket elkerülhessük, szükséges a szoftverláncban egy megbízhatósági láncot (“chain of trust”) kialakítani, azaz a következő szoftver csak akkor léphessen működésbe, ha annak eredetiségéről kétséget kizárólag megbizonyosodtunk.
Az evopro Innovation által használt processzorok egy részében olyan szoftverláncot alkalmazunk, amelyek képesek lehetnek a következő komponens (ROM loader -> u-boot, u-boot->linux, linux->linux), vagy akár önmaguk ellenőrzésére (dm-verity).
Feladat:
Kapcsolódó készségek és ismeretek:
Modern ARM alapú mikroprocesszoros rendszerekben (Cortex-A sorozat) az üzleti értéket hordozó alkalmazás elindításáig számtalan egyéb szoftver hívódik meg, amely inicializálja a hardvert, távmenedzsment funkciókat éleszt fel stb. Az üzemeltetés során az illetéktelen behatolás két fő veszélyt rejthet:
A módosított szoftver nem kívánt módon viselkedik a rendszerben (pl. meghamisítja a mérési adatokat), A rendszerből adatok és IP szivároghat. Ahhoz, hogy a veszélyeket elkerülhessük, szükséges a szoftverláncban egy megbízhatósági láncot (“chain of trust”) kialakítani, azaz a következő szoftver csak akkor léphessen működésbe, ha annak eredetiségéről kétséget kizárólag megbizonyosodtunk.
A vizsgálathoz szükséges adatok kezelése egy olyan komponens segítségével valósítható meg, amely teljesen függetlenül él a normál szoftvereinktől, és azok nem befolyásolhatják a működését. Az ARM Trustzone megoldása szolgáltatja az ezt megvalósító CPU egységeket, melyekhez létezik referencia OS implementáció Open-TEE néven.
Feladat:
Trustzone és Open-TEE funkciók felélesztése Freescale i.MX6 processzoron Vizsgálja meg, hogy ez hogyan integrálható a normál OS-hez (Linux), például rendszerintegritás figyelése vagy kriptográfiai adatok kezelése céljából. Készítsen egy teszt implementációt, mely a minimális funkcionalitás után integrálható az evopro saját build rendszerébe. Kapcsolódó készségek és ismeretek:
Szoftverfejlesztés C és C++ nyelven Linux ismeretek Valós-idejű szoftverfejlesztés
A hallgató feladata egy beágyazott Linux operációs rendszer fölött dedikált alkalmazáscsomagot futtató eszköz felhő intergációját és távoli menedzsmentjét támogató middleware fejlesztése. A middleware funkciói között szerepel az eszköz távoli elérésének támogatása, az automatikus firmware frissítés, a hálózat konfigurációja (pl. Wifi végpont SSID és jelszó), illetve a futó alkalmazással való kétirányú (D2C és C2D) kommunikáció. A feljesztés során törekedni kell az ilyenkor szokásosan elvárt követelményeknek való megfelelésnek (egyszerűség, modularitás, karbantarthatóság, bővíthetőség). A kész szoftvert ezek után illeszteni kell az operációs rendszer fordítását végző környezetbe (buildroot). A munka a teszteléssel és a kapcsolódó dokumentáció elkészítésével zárul.
Napjainkban a kamera rendszerek alkalmazása és a gépi látás elengedhetetlenné vált a modern ipari alkalmazásokban. A hallgató feladata, hogy megismerje a kamera illesztés lehetőségeit az Evopro Innovation által használt i.mx6 alapú beágyazott számítógépeken. Ez magában foglalja a lehetséges kamera interface-k összehasonlítását (MIPI-CSI, USB, Ethernet), a driver és a userspace szoftverek integrálását (gstreamer) végül a rendszer működését pedig egy egyszerű képfeldolgozó alkalmazással demonstrálja. Fontos szempont a munka során, hogy a rendszer képes legyen a jövőben deep learning alkalmazások futtatására. Ehhez jelenleg az i.mx6 Vivante GPU-ja, későbbi i.mx szériákban pedig dedikált Neural Processing Unit tud hardveres gyorsítóként szolgálni.RISC-V processzor alkalmazása Linux alapú beágyazott rendszerekben - (open standard isa, open source hardware)
a yocto projekt az egyik legelterjedtebb keretrendszer beágyazott linux disztribúciók összeállításához és fordításához. ma már számos félvezető és sbc gyártó kizárólag yocto-hoz illeszkedő konfigurációs csomagokban (layer-ekben) biztosít hivatalos szoftvertámogatást a termékeihez. A hallgató feladata, hogy az Evopro Innovation egy egyedi tervezésű, NXP i.MX6 processzor alapú, beágyazott számítógépéhez készítsen Yocto réteget. A layer legyen felkészítve a hardver család eltérő konfigurációjú tagjainak későbbi támogatására, valamint az ezekhez tartozó egyedi szoftverkonfigurációk tárolására is. Az említett eszközök leggyakrabban hálózatba kapcsolt beágyazott rendszerekben kerülnek felhasználásra így a szoftvertámogatás legfontosabb eleme a szerver oldali integráció. A legismertebb felhőszolgáltatók ma már kész platform szolgáltatásokat (PaaS) nyújtanak ehhez. A hallgató feladatának emiatt része egy olyan disztribúció készítése is, amely megvalósítja az Evopro által alkalmazott Azure IoT Edge platformhoz való illesztést is.
Hálózatba kapcsolt beágyazott rendszerek elosztott számítási architektúrájának fontos eleme az adatok keletkezési helyénél, illetve annak határán történő feldolgozás (edge computing). Hagyományos beágyazott rendszerek esetében az adatok gyakran csak összegyűjtésre kerülnek, majd egy távoli adatközpontban kerülnek feldolgozásra. Edge computing segítségével a keletkezési helyen történő feldolgozással sávszélességet lehet spórolni, átviteli és későbbi tárolási költségeket csökkenteni, valamint lehetőség van a gyors helyszíni beavatkozásra. Az architektúra egyik kulcs eleme az adatokat feldolgozó alkalmazások terjesztése (ez gyakran Linux konténerek segítségével történik) és az eszközök tömeges konfigurálása. Erre ma több felhő szolgáltatónak kínál megoldást az egyik legismertebb ezek közül az Azure IoT Edge a Microsoft-tól. A hallgató feladata, hogy példa alkalmazást készítsen i.MX6 fejlesztőkártyához, amely adatokat gyűjt és feldolgoz CAN és RS485 buszokról. A Linux container-be csomagolt alkalmazás és a hozzá tartozó konfiguráció automatizáltan kerül telepítésre egyszerre több eszközre Azure IoT Edge keretrendszeren keresztül. A szerver oldali illesztés fontos része az adatok további feldolgozása, megjelenítése és tárolása, ezért a hallgató további feladata, hogy a beágyazott rendszerben összegyűjtött adat útjának ezen a lépéseit is bemutassa az Azure platformon.
A minőségellenőrzési rendszerek lehetővé teszik a gyártással foglalkozó cégek számára, hogy kiküszöböljék a termékgyártási folyamatok során keletkező hibákat. A már meglévő tesztrendszerekből származó hibaadatokkal és főképp a hibás termékekből származó adatokkal tovább fejleszhetőek a termékgyártási folyamatok gépi tanulás segítségével. A hallgató feladata egy kamerát felhasználó minőségellenőrző rendszer prototípusának fejlesztése amellyel cserép gyártás során felmerülő tipikus hibák ismerhetőek fel. A készült képeket az evopro Innovation által használt i.mx6 alapú beágyazott számítógépen futtatott modellel értékelje ki, amelynek célja a hibás termék felismerése és a jellegzetes hiba típus meghatározása.
Ma a hálózatba kapcsolt beágyazott rendszerek egyik aktuális fejlesztési iránya az edge computing: egyes számítási feladatok peremhálózatra való áthelyezésével az eszközök kevesebbet kommunikálnak a felhővel így gyorsabban reagálnak a helyi változásokra. Ehhez kapcsolódó kihívás az üzleti logika beágyazott eszközökre való kitelepítése és a dinamikus újrakonfigurálás, emiatt az ismert szerver oldali és cloud megoldások (Linux container-ek, Function as a Service platformok) folyamatosan kerülnek bevezetésre beágyazott rendszerekben.
A legnagyobb felhő szolgáltatók saját rendszerei (AWS IoT Greengrass, Azure IoT Edge) kompakt megoldást kínálnak ezek építésére. A hallgató feladata:
Elsajátítható készségek és ismeretek:
open standard isa, open source hardware
nxp imx9
eitg, nxp secure enclave, arm trustzone
on-prem firmware update, open source
debian package feed based embedded systems, security, firmware update, edge
Napjainkban több nyílt forráskódú keretrendszert is használhatunk saját Linux disztribúció készítésére. Ezek közül a legismertebb a Yocto és a Buildroot, viszont mindkettő esetében saját magunknak kell gondoskodunk az összes felhasznált szoftver csomag fordításáról vagy keresztfordításáról. Ebből következően minden csomag esetleges biztonsági frissítése is a fejlesztő feladata, ami sok üzemeltetési munkát jelent. Erre nyújt megoldást az ELBE keretrendszer ahol publikusan elérhető más disztribúciók (Debian, Ubuntu) által használt csomagokat újrahasználhatunk és azok segítségével készíthetünk egyedi beágyazott Linux rendszert. A hallgató feladata, hogy készítsen az Evopro Innovation egy egyedi tervezésű ARM alapú beágyazott számítógépéhez egy Debian alapú Linux disztribúciót ELBE keretrendszer segítségével.
Kapcsolódó készségek és ismeretek: