Tvorba NVR na bázi Linuxu

Přehled

Tento článek popisuje běžné kroky partnera, který chce vytvořit hardwarový produkt podobný NVR – vestavěný počítač (zde nazývaný „NVR“) s předinstalovanou aplikací Server. Typicky je takový NVR počítač založený na systému Linux s procesorem ARM.

Základní kroky k výrobě takového produktu zahrnují následující:

  • Výběr hardwaru
    • Platforma
    • Úložiště
  • Výběr příchutě systému Linux
  • Instalace aplikace Server
  • Dodatečné funkce
  • Vytvoření zásad podpory

Tyto kroky jsou podrobně popsány níže.

Výběr hardwaru

Aby byl produkt úspěšný, měl by být nákladově efektivní a poskytovat požadovaný výkon – podporovat požadovaný počet kamer s požadovaným datovým tokem/rozlišením. Použitý hardware by měl mít alespoň 1 GB paměti RAM a čipovou sadu ARM Cortex A7 nebo vyšší.

Doporučujeme nejprve prostudovat výkonnost podporovaných platforem ARM (seznam těchto platforem naleznete v dokumentu ARM Support Policy) a poté vybrat platformu, která je nejblíže vašim požadavkům.

Platforma

Zvolenou podporovanou platformu ARM lze použít jako jednu z následujících:

  • počítač připravený ke koupi (např. standardní základní deska Raspberry Pi), případně s vlastní skříní a napájecí jednotkou;
  • referenční pro návrh vlastního počítače se základní deskou, která může obsahovat další hardwarové komponenty, jako jsou periferní rozhraní nebo řadiče pevného disku.

Pokud se předpokládá, že NVR bude mít na desce kromě aplikace Server další software, například webový server poskytující webové rozhraní uživateli, software pro analýzu videa (např. zásuvný modul VMS a/nebo jeho backend) nebo podobně, nezapomeňte přidat dostatečnou paměť RAM a výpočetní výkon procesoru, abyste to pokryli.

Překódování videa není na zařízeních ARM podporováno z důvodu omezeného výpočetního výkonu. Kromě toho mohou mít některé závislosti, například OpenSSL, problémy s kompatibilitou. Pokud počáteční analýza ukáže, že typická platforma založená na architektuře ARM nezajistí požadovaný výkon, lze zvážit platformu x64.

Výkon úložiště platformy by měl být dostatečný pro plánovanou zátěž. Je například známo, že taková řešení, jako je SATA-over-USB, mohou vést k nízkému výkonu HDD, který je nedostatečný pro záznam požadovaného počtu kamer.

Síťový výkon platformy by měl být dostatečně dobrý pro plánovanou zátěž. Je například známo, že taková řešení, jako je softwarová implementace Ethernetu, zabírají mnoho prostředků CPU, a mohou tak vést k výpadkům snímků při nahrávání kamer nebo streamování na klienty nebo k jiným problémům. Navíc hardwarové modely, které implementují ethernet prostřednictvím rozbočovače USB, mohou mít menší než inzerovanou šířku pásma sítě.

Platforma by měla být vybavena hardwarovými hodinami reálného času (RTC) a/nebo by měla být povolena synchronizace času prostřednictvím sítě (např. pomocí protokolu NTP) – pro správnou funkci VMS musí být správné datum a čas operačního systému. Pokud není k dispozici hardwarový RTC a jediným plánovaným zdrojem data a času je síť, doporučuje se, aby se zařízení v případě nemožnosti synchronizace data a času vůbec odmítlo spustit.

Úložiště

Ujistěte se, že je v souborovém systému dostatek místa pro správnou funkci VMS. Server používá následující úložná místa:

  • Instalace VMS – binární soubory a dynamické knihovny (.so soubory)
    • Umístěny v /opt/<vendor>/mediaserver/
    • Potřebné místo: lze vypočítat měřením celkové velikosti příslušných souborů v distribuci s určitou přidanou rezervou; čím vyšší rezerva – tím menší šance na problémy s aktualizací na budoucí verze. Obecně se doporučuje 30% rezerva.
    • Pokud není v /opt dostatek místa, lze soubory .so přesunout pomocí symlinků do jiného umístění, včetně úložiště FAT32 (v tomto případě však lze přesunout pouze soubory, které nejsou symlinkem).
  • Soubory databáze serveru – uchovávají informace o kamerách a dalších serverech, protokoly událostí atd.
    • Typicky se nachází v /opt/<vendor>/mediaserver/var/; lze změnit v konfiguračním souboru Serveru.
    • Vyžaduje souborový systém ext4
    • Potřebný prostor: závisí na počtu kamer a Serverů v systému VMS, ale obecně se doporučuje alespoň 500 MB.
  • Databáze Analytics serveru – ukládá metadata Video Analytics generovaná zásuvnými moduly Analytics
    • Obvykle se nachází v /opt/<vendor>/mediaserver/var/data; lze změnit v konfiguračním souboru Serveru.
    • Potřebný prostor: závisí na tom, zda jsou na tomto Serveru používány moduly Analytics Plugins a kolik metadat budou tyto moduly posílat. Obecně se doporučuje 20 % velikosti úložiště videoarchivu, pokud jsou na tomto Serveru používány moduly Analytics Plugins.
  • Deníky serveru
    • Nachází se v /opt/<vendor>/mediaserver/var/log/
      • Může být přemístěn prostřednictvím mediaserveru.conf.
    • Deníky jsou automaticky přepisovány ve smyčce.
    • Potřebné místo: doporučuje se alespoň 260 MB.
    • Poznámka: Všimli jsme si, že na specifických zařízeních ARM (např, Raspberry Pi 3), nebyla interní paměť flash (v tomto případě Micro SD) dostatečně dobrá pro přijímání protokolů. Systém zamrzal až na 4 sekundy. U takových zařízení jsme doporučili přesměrovat protokoly do stejného umístění jako videoarchiv.
  • Videoarchiv – ukládá nahrané video z kamer
    • Obvykle se nachází v /opt/<vendor>/mediaserver; lze změnit v konfiguračním souboru serveru.
    • Systémový oddíl bude pravděpodobně ve výchozím nastavení omezen na nahrávání, pokud nebude k dispozici alespoň 10 GB volného místa.
    • Interní paměť flash (eMMC) nebo karta SD
        • Odhadněte, kolik cyklů zápisu může paměť přijmout. Videoarchiv se automaticky přepisuje ve smyčce, proto lze dobu trvání jednoho cyklu zápisu vypočítat vydělením volného místa kombinovaným datovým tokem všech kamer zaznamenávaných na serveru.
        • Ujistěte se, že propustnost paměti je dostatečná pro kombinovaný datový tok všech kamer zaznamenávaných na Serveru s bezpečnostní rezervou 30 %.
    • Interní HDD nebo SSD
        • Ujistěte se, že propustnost disku je dostatečná pro kombinovaný datový tok všech kamer zaznamenávaných na Serveru s bezpečnostní rezervou 30 %.
    • Externí NAS
        • Ujistěte se, že skutečná šířka pásma síťového adaptéru je dostatečná pro kombinovaný datový tok všech kamer nahrávaných na Serveru vynásobený 2 (protože kamery pravděpodobně posílají své datové toky na Server pomocí stejného síťového adaptéru), s bezpečnostní rezervou 30 %.
  • Soubory aktualizace aplikace Serveru
    • Aby bylo možné provést aktualizaci, musí aplikace Serveru stáhnout svou novější verzi a rozbalit ji.
    • Nachází se v /tmp/
    • Potřebné místo: celková velikost zabaleného distribučního souboru Serveru vynásobená 2,6; to zahrnuje rezervu. Lze doporučit více místa, aby se minimalizovaly šance na problémy s aktualizací na budoucí verze.

  • Dočasné soubory operačního systému
    • Typicky umístěné v /tmp/
    • Potřebné místo: doporučuje se alespoň 100 MB, bez započtení potřebného místa pro soubory aktualizace aplikace Server (viz výše).

Většině výše uvedených věcí lze v konfiguračním souboru Serveru přiřadit uložení v jiném umístění: /opt/<vendor>/mediaserver/etc/mediaserver.conf

Protože typické úložiště na kartě SD není spolehlivé a je známo, že při intenzivních operacích čtení a zápisu selhává, doporučujeme nainstalovat operační systém a uložit videoarchiv na pevný disk (disky). Pokud pro uložení videoarchivu zvažujete SSD/pevný disk nebo kartu SD, posuďte jeho schopnost pro vícenásobné přepisovací operace pomocí typického datového toku požadované podporované kamery vynásobeného požadovaným počtem podporovaných kamer.

Například pro Raspberry Pi 3 B+:

    • Pro archiv použijte adaptér USB-SATA a externí pevný disk.
    • Na externí pevný disk nainstalujte operační systém (Raspbian). Podrobnosti naleznete v článku Jak spustit počítač Raspberry Pi z paměťového zařízení USB. Tento proces by měl být automatizovaný podle toho, jak bude zařízení ARM distribuováno: s pevným diskem nebo bez něj:
      • S pevným diskem – vytvořte předkonfigurovaný obraz s nainstalovaným systémem VMS a naklonujte ho na pevné disky.
      • Bez pevného disku – budete muset vytvořit sadu skriptů, která naformátuje HDD, zkopíruje OS a provede všechna potřebná vylepšení. Jedná se o poměrně složitý a časově náročný úkol.

Výběr příchutě Linuxu

Obvykle existuje několik možností OS Linux na daném NVR:

  • „Busybox“ – pouze jádro Linuxu a základní sada nástrojů příkazového řádku; používá se u relativně málo výkonných NVR, jako jsou „okrajové“ kamery (kamery, na kterých běží VMS Server).
  • Standardní Debian nebo některá z jeho variant, jako je Ubuntu.
  • Modifikovaná verze Debianu nebo jiné distribuce Linuxu, obvykle upravená výrobcem zařízení (např, Raspbian pro Raspberry Pi).

Obecně se doporučuje zvolit variantu systému Linux, která je nativní volbou pro platformu, na které je NVR založen. Například při vývoji NVR hardwarově podobného Raspberry Pi (nebo dokonce s použitím přesné základní desky Raspberry Pi) se doporučuje zvolit Raspbian.

Je-li pro zařízení k dispozici několik distribucí Linuxu s různými sadami balíčků, doporučuje se zvolit tu nejméně zatíženou. Pokud například není v plánu zobrazovat na NVR grafické uživatelské rozhraní, není potřeba systém X Window.

Ujistěte se, že verze systému Linux a jeho sada balíčků splňují požadavky systému VMS. U zařízení s operačním systémem ARM si přečtěte podrobnosti o operačním systému uvedené v zásadách podpory ARM.

Instalace aplikace Server

Po nahrání vhodného operačního systému Linux do zařízení NVR je třeba nainstalovat aplikaci Server na zařízení NVR. V zásadě existují dvě možnosti:

  1. Pro OS založený na Debianu: nainstalujte oficiální balíček .deb z distribuce VMS pomocí dpkg.
  • Viz podrobné pokyny pro instalaci VMS na zařízení: Pokyny pro instalaci ARM SBC
  • Pro OS založený na Busyboxu: rozbalte požadované soubory z balíčku VMS .deb do požadovaného adresáře a ručně se postarejte o následující aspekty:
    • Jak se bude Server spouštět při startu a zda nevyhovuje podpora system.d z distribuce?
    • Kde bude Server brát knihovny .so, které v nainstalovaném Linuxu chybí?
    • Bude povolen standardní systém automatických aktualizací VMS?

    U méně typických konfigurací OS může být vyžadována určitá kombinace možností 1 a 2.

    Doplnění dalších funkcí

    Typicky není NVR jen standardní počítač s Linuxem a nainstalovanou aplikací Server – často poskytuje uživateli další funkce:

    • Hardwarová tlačítka, LED nebo dokonce vestavěné displeje.
    • Webové rozhraní, které umožňuje přizpůsobit NVR nad rámec pouhého nastavení aplikace Server prostřednictvím vlastního webového rozhraní, například
      • možnosti připojení k síti:
      • systémový čas a časové pásmo;
    • Video výstup (např, HDMI), který zobrazuje grafické uživatelské rozhraní nebo alespoň uvítací obrazovku se základními hodnotami konfigurace, jako je IP adresa NVR;
    • doplňkový software, který běží souběžně se systémem VMS, např. konfigurační démon nebo backend pro analýzu videa.
      • Pokud má doplňkový software ověřování koncového uživatele pomocí hesla, zvažte zavedení synchronizace hesel, aby heslo serveru VMS bylo vždy stejné jako heslo doplňkového softwaru. Pokud je uživateli pro přístup k NVR nabízeno rozhraní ssh, zvažte synchronizaci i jeho hesla.
    • Další vylepšení, například minimalizace paměti videa (GPU). Například pro Raspberry Pi 3 B+ nastavte paměť GPU na 16 MB. Podrobnosti naleznete v dokumentaci k Raspberry Pi.

    Pro implementaci těchto funkcí může být nutné napsat nebo upravit skripty, které ovládají aplikaci Server, nebo napsat další programy v jazyce C/C++.

    Synchronizace času

    Ujistěte se, že má NVR vestavěnou baterii CMOS, aby se zabránilo resetování jeho hodin v případě ztráty napájení. Například Raspberry Pi 3 B+ nemá vestavěnou baterii CMOS. Pokud dojde k restartu zařízení, čas se vynuluje, což bude mít za následek nesprávný zápis archivu. Abyste tomu zabránili, existuje několik možností:

    • Ujistěte se, že je připojeno k internetu, aby se synchronizoval čas.
    • Jestliže se jedná o uzavřenou síť, budete muset nastavit server NTP.
    • Přidejte na desku modul hodin reálného času (RTC) a předem jej nakonfigurujte. Viz část Přidání hodin reálného času do počítače Raspberry Pi.

    Nalezení/vyrobení skříně pro váš NVR

    Je nutné najít nebo navrhnout skříň, do které se vejde veškerý výše uvedený hardware.

    Provedení rozsáhlého zátěžového/zátěžového testu

    Aby bylo zajištěno, že vše funguje dohromady, je nutné naplánovat intenzivní zátěžový test, aby nedošlo k přehřátí nebo poruše komponent. Test by měl být schopen zatížit všechny součásti systému, jako je procesor, paměť, pevný disk (disky), síť a Wi-Fi (v případě potřeby) atd.

    Vypracujte zásady podpory

    NVR bude dodáván koncovým uživatelům a ti budou určitě vyžadovat nějakou technickou podporu. Tým podpory dodavatele VMS nemůže takové služby koncovým uživatelům poskytovat, a proto by měla být vytvořena politika poskytování takové podpory, jako je online centrum podpory, komunitní fórum nebo podobně.

    Pokud si je tým podpory dodavatele NVR jistý, že konkrétní problém nesouvisí se specifiky samotného NVR, ale jedná se spíše o problém ve VMS, může požádat dodavatele VMS o podporu podle výše uvedené politiky podpory ARM a poté použít výsledek tohoto případu podpory k uspokojení žádosti o podporu od koncového uživatele.

    Dotazy

    Pokud máte jakékoli dotazy týkající se tohoto tématu nebo se chcete podělit o své zkušenosti s ostatními členy komunity či naším týmem, navštivte a zapojte se do naší komunity podpory nebo se obraťte na svého místního prodejce.

    Napsat komentář

    Vaše e-mailová adresa nebude zveřejněna.