====== Navrh struktury uloziska a sposobu prvotneho nahravania aplikacie ====== ===== Struktura ulozista: ===== === eMMC === flash chip osadeny priamo na maticnej doske: Particie (partition table GPT): ^ nazov ^ velkost ^ typ ^ poznamka ^ | bootfs | 100MB | ext2 | systemova | | bootfs-bak | 100MB | ext2 | systemova | | rootfs | 700MB | ext2 | systemova | | configfs | 100MB | ext4 | systemova | | logfs | 1GB | ext2 | zdielana system/aplikacia - pomocny suborovy system pre upgrady | | userfs | 1.8GB | ext4 | aplikacna | === uSD === uSD karta, pristupna aj zvonku (za pomoci skrutkovaca, pripadne moze byt aj blombovana), odporucana velkost minimalne 512MB, SLC, industrial temperature range Particie (partition table MSDOS): appfs - odporucam minimalne 100MB, ext4 === mSATA === mSATA flash modul - rozsirujuci modul, z jednoduchym mechanickym uchytenim priamo na maticnej doske kapacity 2GB-128GB SLC (-40 az 85 celzia), 8GB-256GB (0 az 70celzia) a viac, aktualne neplanujem konkretne aplikacne vyuzitie, ale informujem o moznostiach a vsetko ostatne dokazeme vyriesit novou verziou systemu. === Z vyssie uvedeneho pre aplikaciu vyplyva: === Particie vyhradene pre aplikaciu: eMMC/userfs - namontovana /mnt/userfs - vytvorena pri instalacii systemu, ucel pouzitia zavisi plne na aplikacii, !!! jedna sa o MLC flashku - ovela mensi pocet zapisov ako SLC !!! uSD/appfs - namontovana /mnt/appfs - vytvorena pri flashovani aplikacnej SD karty, system ak ju nadetekuje, tak ju namontuje do /mnt/appfs Zdielana particia: eMMC/logfs - namontovana /mnt/logfs - vyhradena pre upgrady systemu a aplikacie - !!! jedna sa o MLC flashku - ovela mensi pocet zapisov ako SLC !!! ===== Instalacia aplikacie: ===== === Vstupne poziadavky: === - nainstalovany system - vlozena uSD karta, idealne s vytvorenou strukturou particii, pripadne az adresarovou strukturou - toto nie je vsak nutnost, da sa riesit instalacnym skriptom === Prenos a instalacia aplikacie: === - aplikacny alebo systemovy instalacny/upgradovaci balicek sa uploadne pomocou ftp (uploadnuty bude do particie eMMC/logfs) - instalacny balicek pozostava z dvoch suborov: * package.dat * package.sign - uploadovanie instalacneho balicka musi prebiehat v package.dat a nasledne package.sign * nahratie suboru package.sign ako druheho v poradi bude pouzite ako signalizacia, ze subor package.dat je uz kompletne nahraty - instalacny daemon nadetekuje pritomnost noveho balicka (napr. obhliadanim) skontroluje podpis a spusti instalaciu * v ramci instalacie aplikacie je mozne riesit cokolvek, rozdelenie particii na SD karte, vytvorenie adresarovej struktury a pod. - po uspesnom spusteni (cez navratovy kod) sa odmazu subory .sign a .dat === Spustenie aplikacie: === System sa v pripade existencie skriptu pokusi spustit aplikaciu spustenim z nasledovnej cesty: /mnt/userfs/appinit Pri starte s parametrom start, pri vypinani s parametrom stop. * system nespusta aplikaciu z uSD, v pripade potreby spustenia aplikacie z uSD si to riesi aplikacia spustenim potrebneho skriptu (skript sa tam dostane cez mechanizmus package.dat a .sign) * tento system umoznuje spustit aplikaciu bud z eMMC/userfs alebo sekundarne z uSD/appfs * pouzitie a existencia dalsich particii je plne v rezii aplikacie * moznost implementacie runlevelu rc.d alebo inych runlevelov je v rezii aplikacie ===== Adresarova struktura aplikacie: ===== Takto dokazeme zabezpecit totoznu adresarovu strukturu pre aplikaciu (/opt/emtest/, ...) - ak je to potrebne. Reinicializacia aplikacie moze byt plne v rezii aplikacie, rovnako ako struktura particii a adresarov aplikacie.