Table of Contents

Jednodeskové počítače z pohledu dlouhodobé spolehlivosti

Jednodeskovým počítačem (SBC - single-board computer) myslím malý počítač na jedné desce plošných spojů, jako například nejznámější Raspberry Pi. Kladu si otázku, zda bývají tato zařízení dostatečně spolehlivá s dostatečně dlouhou životností pro většinu aplikací v běžném životě. Pokud si postavím ovládání zavlažovacího systému, telefonní ústřednu, alarm či domovní zvonky s kamerou a napojení na VoIP, bude to dosahovat stejné spolehlivosti a životnosti jako obdobná existující řešení? Zákazník je zvyklý, že obdobná zařízení fungují i desítky let a průměrná porucha vyžadující servis by neměla být o mnoho častější než jednou za deset let. Jsou běžné jednodeskové počítače schopny splnit tyto přísné ale zároveň běžné nároky na většinu aplikací? Jedině pak má smysl SBC do takových aplikací nasazovat.

Kolik stojí výpadek?

Cena neplánovaného výpadku může být podstatně vyšší, než kolik by se mohlo zdát. Hlavní důvod je ten, že uživatelé takového zařízení se zdaleka nemusí chovat a často nechovají ideálně. Pro lidi je přirozené nepříjemné drobné problémy ignorovat až do doby, kdy je z malého problému problém velký. Bohužel tohle není vlastnost jen jednotlivců, ale tímto chování trpí i velké firmy a to často až neuvěřitelným způsobem. Pracuji v telekomunikacích a běžně narážím na závažné, ale dlouhodobě přehlížené problémy u velkých firem. Přimět je k nápravě, i když je to ku prospěchu všech, bývá někdy opravdu těžké.

Jak takové zatloukání problému může vypadat? V předvánoční době roku 2019 jsme učinili objednávku na Alze s doručením do Alzaboxu. Když jsme si šli ale zásilku vyzvednout, počítač uvnitř se jen pořád dokola restartoval - nemohl najít disk z kterého bylo možné nabootovat. Na Infolince ale stále tvrdili, že je vše v pořádku, nemělo moc smysl se nimi hádat. Po skončení víkendu (5 dní od objednávky), kdy se měl podle SMS již balík vracet, na infolince Alzy už problém připouštěli, stále jaksi ale nevěděli, co s tím, když zboží nelze objednat znovu, protože by jej přednostně chtěli stále doručit do nefunkčního Alzaboxu. A teprve týden po objednávce přišel strohý email o tom, že objednávka je stornována, že mám provést novou. Vypadá to, že to v Alze začali řešit až poté, co se jim někde ve skladě nahromadilo několik set nedoručitelných balíků. Alzabox byl pak nefunkční ještě cca měsíc.

Jako laik jsem si ze začátku myslel, že po prvním nahlášení problému, disk vymění člověk rozvážející balíky hned následující noc. Takhle ale velké firmy nefungují. Na všechno mají specialisty a dost možná na rozvážení balíčků najímají externí firmu. A co více, servis Alzaboxů možná také dělá nějaká externí firma. Dokonce je i možné, že Alzabox dokonce Alze nepatří, jen se tak jmenuje. Prostě a jednoduše u velkých firem bývá často vše složité a z telekomunikací vím, že jsou schopny z práce na pět minut udělat projekt na několik měsíců. I kdyby Alza jednala hned, výjezdu technika z druhého konce republiky (do Břeclavi) by se nejspíš nevyhnula.

Mnohem lepší je tedy podobným potížím předcházet co možná nejkvalitnějším hardware a systém též navrhnout tak, aby bylo možné problémy spravit na dálku s co nejmenšími nároky na uživatele. Tedy něco jako bootování do záchranného režimu, ve kterém je možné provést diagnostiku a instalaci či update na dálku by mělo u podobných projektů samozřejmostí.

Pokud budou totiž požadavky na schopnosti správce a uživatele příliš vysoké, hrozí, že až 90% z potencionálních uživatelů tím odradíme a projekt tak úplně zbytečně neuspěje.

Slabá místa Raspberry Pi

Jaká jsou tedy potenciálně slabá místa Raspberry Pi? Nejdůležitější je jistě kvalitní a dlouhodobě spolehlivý zdroj. Druhá velmi podstatná a bohužel také volitelná součástka je microSD karta, která se používá jako běžný disk, na což není určena. Problematické je časté zapisování malých bloků dat. Běžná karta neumí zapsat malý blok, musí tak přepsat blok velký, čímž se zbytečně opotřebovává, navíc se tím zvyšuje pravděpodobnost výpadku napájení během zápisu. Výpadek napájení během zápisu může znamenat nejen, že přijdete o celý velký blok, na který se zapisuje, ale může dojít k nevratnému poškození celého souborového systému.

Běžně dělám podporu VoIP zařízení (telefony a adaptéry). Je třeba si uvědomit, že uživatelé z běžné populace mívají často problém i s naprosto jednoduchými úkony. Pro někoho může být obtížné už jen samotné zařízení najít a zkontrolovat napájení a připojení ethernetu. Chtít po uživateli, aby si sám vybral, koupil a připravil microSD kartu, může být velmi zatěžující, někdy až nereálné. A i pokud bychom náhradní kartu zasílali poštou, nebo měl zákazník nějakou v zásobě, výměna a opětovné nastavení, i když může být tak jednoduché jako zadání jména a hesla na webových stránkách, nemusí být pro ně triviální.

A hlavně běžný uživatel může mít vůbec problém s tím, aby si zavčas všiml toho, že zařízení nefunguje jak má a začal to řešit dříve, než to způsobí nějaké podstatnější škody.

Jak zlepšit spolehlivost microSD karty

Použít industrial microSD kartu. Tyto karty bývají dražší, měli by mít větší životnost a měly by umět zapisovat po menších blocích. Problém ale může být jakou kartu přesně vybrat. Kdyby výrobce RPi nějakou sám prodával nebo doporučoval, hodně by nám tohle rozhodování ulehčil.

Koupit si eMMC kartu, kterou lze zapojit do běžného slotu na microSD kartu. UUGear Raspikey: 16GB eMMC - Nevýhoda je, že tato karta trčí do prostoru, a tak při použití běžné krabičky hrozí její ulomení koncovým uživatelem.

Přidat k RPi baterii, aby nemohlo dojít k nečekanému výpadku elektřiny. K poškození SD karty nebo dat na ní uložení dochází především při výpadku napájení během zápisu. Běžná SD karta také zapisuje v hodně velkých blocích, tedy pravděpodobnost problému kvůli výpadku elektřiny je podstatná. Přispět k problémům může též nešikovná manipalace uživatelem, který může zařízení vypínat vytáhnutím z elektřiny jak je zvyklý u routerů a podobných zařízení. Přidání baterie je ale stále polovičaté řešení, co pomůže jen částečně, a zdvojnásobí celkovou cenu. Baterie může navíc být další prvek s omezenou životností.

Omezit množství zápisů. Zde je sousta možností od těch jednodušších jako neukládat datum posledního čtení noatime, zakázání swapu, práce s ramdiskem - např. logovat jen do ramdisku a jen jednou za čas zkopírovat log na SD kartu a podobně. Extrémní případ může být mít celý systém namontovaný jako read only a jen jednou za čas, nebo při ukládání nového nastavení, na chvíli provést změnit způsob namountování a provést zápis. Bohužel to často vyžaduje větší zásahy do operačního systému, které ale nejsou triviální a totálně se tak ztrácí elegance, kdy ono zařízení funguje stejně jako běžný počítač. Rozdělit SD kartu na dvě části, přičemž jednu část nechat jen na čtení a předpokládat, že data v této části se nemohou poškodit, bohužel nelze. Bohužel SD karty jsou dělány tak, že se mohou poškodit i data na části, kam se vůbec nezapisuje. Obnova pomocí “resetu do továrního nastavení” tak nemusí být možná.

Z karty jen číst a zápisy provádět online, do lokální sítě, případně do USB klíčenky. Slyšel jsem ale i takové názory, že SD karty nemají rády ani příliš časté čtení. Nevím ale, jestli je na tom něco pravdy, nebo je to nějaká povídačka.

Jak se microSD kartě vyhnout u Raspberry Pi

Startovat systém z lokální počítačové sítě a microSD kartu tam vůbec nedávat. Je to dobré řešení, pokud je více RP v jedné lokalitě, např. v průmyslu. Ne vždy je to ale možné.

Používat běžný disk přes USB. Problém ale bývá v tom, že bootovat z tohoto disku vyžaduje speciální postup a je to považováno za jakýsi nadstandard, tedy nemusí to mít nová verze Raspberry Pi hned od začátku, pokud vůbec. Krom toho připojit USB disk vypadá fušersky a celková velikost i cena zařízení se dost možná zdvojnásobí. U předchozích verzí RPi bývalo USB 2.0 na toto použití dost pomalé, v případě Raspberry Pi 4 USB 3.0 se ztrácí v nejlepším případě cca 20% rychlosti disku oproti nativnímu SATA připojení. Na USB disk je dobré mít pro jistotu extra napájení.

Použít Raspberry compute module, který se prodává i s variantou eMMC. Compute moduly jsou určeny pro průmysl a ten eMMC vyžaduje. Copmute modul RPi nahradí a je třeba jej použít společně se základní deskou. Můžete vybrat takovou, co dovolí přepojení i m.2 disku. CM4-IO-BASE-B. Nabízí se pak možnost to eMMC používat jen jako záchranný systém, a hlavní systém instalovat na hlavní m.2 disk. Variant základních desek je více, snad bude časem dostupná i deska s nativní podporou SATA. Ve všech těchto případech přijdete však o možnost využít USB 3.0, což ale velká škoda není. Zůstane jen USB 2.0. Compute moduly a základní desky k nim se hůře shání a nevejdou se do standardní krabičky.

Použití jiného zařízení než Raspberry Pi

Po úspěšném uvedení na trh první verze Raspberry PI v roce 2012 se vyrojilo celé hejno napodobenin. Bohužel tyto kopie většinou napodobily i používání microSD karty. Nyní, po delší době, většina projektů napodobenin spíše skomírá, dost možná také kvůli nedostatku výrobních kapacit po koronavirové krizi. Existují ale projekty podobné RPi, které dělají některé podstatné detaily jinak a lépe.

PINE64

Stránky projektu pine64.org obhospodařuje hongkongská firma Pine Store Limited, která se do velké míry chová jako neziskovka. Všechny její jednodeskové počítače mají možnost připojení eMMC paměti, která se kupuje zvlášť a připojuje pomocí konektoru. PINE obsahují 128Mb SPI boot Flash, která otvírá další potencionální možnosti bootování a snadnějšího upgradu a správy systému. Mě osobně ale odradil od objednání fakt, že celá řada modelů v eshopu, především ty levnější varianty, je vyprodaná.

Odroid

Odroid jednodeskový minipočítač si lze pořídit na stránkách firmy HARDKERNEL https://www.hardkernel.com/. Poštovné činí 25 USD, ale pokud neobjednáváte na firmu plátce DPH (doporučuji), DHL si účtuje poplatek 800 Kč za odvedení DPH, clo je nulové. Odroid lze koupit i v ČR. Opět platí, že vyměnitelná eMMC paměť se prodává zvlášť. SPI boot flash má velikost jen 8MB, ale i tak se do ní vměstná Petitboot, který umožní bootovat z libovolného zařízení a nově též zahájit běžnou netinstalaci přímo z internetu. Tedy nejen že instalace funguje stejně, jak jsme zvyklí na PC, ale je ještě pohodlnější, protože systém, který chceme začít instalovat, jen vybereme v menu. Může se to zdát jako drobnost, ale možnost provisioningu a pohodlného upgradu je pro masové použití produktu naprosto klíčová a podstatným způsobem snižuje délku případného výpadku.

Za poznámku také stojí fakt, že Odroid N2+ má cca dvojnásobný procesorový výkon v porovnání s Raspberry Pi 4 a to při spotřebě o cca 1 W nižší. Novější linuxová jádra obsahují Wayland ovladač s hardwarovou akcelerací. Tedy v mém případě po instalaci Ubuntu 21.10 “Imprish Indri” nabízené Petitbootem funguje vše hned bez jakékoli extra konfigurace. Naproti tomu ovladač pro X prý vůbec neexistuje. Osobně jsem ale s nuceným přechodem na Wayland žádný problém nezaznamenal. Jsem zvyklý na okenní manager i3, jehož alternativa pro Wayland se jmenuje Sway, které funguje dobře a navíc podporuje možnost přetahovat okna i myší. Použití eMMC znamená kromě lepší spolehlivosti i několikanásobné zrychlení diskových operací oproti SD kartě, a tak je tento stroj opravdu použitelný jako běžný počítač pro občasné nebo méně náročné uživatele.

Odroid - instalace systému "revolučním způsobem"

Pokud bych Odroid projektu mohl něco vytknout, tak je to nepříliš podrobná a často zastaralá dokumentace na jeho wiki. Např. stránka Third party OS Images je zastaralá a neúplná, podobně informace o tom, jak nejpohodlněji aktualizovat Petitboot. Vše je možné dohledat na fóru, ale je to tam nepřehledné a nepohodlné, navíc si člověk nemůže být nikdy jist, že něco nepřehlédl. Popíši zde proto instalaci systému bez zbytečné manipulace s modulem eMMC, microSD kartou nebo USB flash pamětí.

Aktualizace Petitbootu

Aby byly korektně zobrazeny všechny dostupné instalace a též abyste se zbytečně netrápili již opravenými nedokonalostmi, lze doporučit jako první provést aktualizaci Petitbootu.

  1. Přepněte přepínač bootování do pozice SPI, aby byl zaveden Petitboot z této paměti.
  2. Nainstalovanou verzi naleznete nahoře za slovem Petitboot. Viz též obrázek. Jestli je k dispozici novější verze, můžete zkontrolovat zde https://wiki.odroid.com/odroid-n2/os_images/petitboot.
  3. Pokud je k dispozici novější verze, v hlavním menu Petitboot vyberte “Exit to shell”.
  4. Proveďte aktualizaci příkazem pb-update. To chvíli potrvá.
  5. Po dokončení aktualizace, restartujte minipočítač např. zmáčknutím ctrl+alt+del.

Instalace přímo z internetu

  1. Opět v hlavním menu Petitboot vyberte “Exit to shell”
  2. napište příkaz netboot_default a exit
  3. nyní v hlavním menu přibyly možnosti síťových instalací různých verzí Ubuntu a Debianu, jak je vidět na obrázku.
  4. Vyberte distribuci k instalaci. Dále síťová instalace probíhá přesně, jak jste zvyklí z PC v textovém režimu. Před instalací dostanete možnost přerozdělit a formátovat libovolný disk. Petitboot i instalátor vidí všechny disky eMMC, microSD, disky připojené přes USB, případně i nativní SATA disky. Možné je mít více různých diskových oddílů i více různých distribucí na jediné eMMC paměti, jak je to možné u běžných disků.

Petitboot dovede rozpoznat nabootovat i některé instalace Androidu, jako např. oficiální Android 9 pro Odroid. Bootovat je možné z eMMC nebo microSD karty. LineageOS 17.1 (android 10) a LineageOS 18.1 (Android 11), který sestavuje jeden uživatel odroid fóra, ale rozpoznat a nabootovat neumí. Zajímavé je, že LineageOS důrazně nedoporučuje používat microSD kartu pro Android, poslední verzi ani s microSD kartou netestuje.

Petitboot nabízí nejen možnost bootovat všechny nalezené operační systémy (na obrázku je to nejnovější Ubuntu “Imprish Indri” a Android) ze všech nalezených disků a úložišť, ale též zahájit síťovou instalaci, nebo start live distribuce přímo z internetu.


Síťová instalace pak pokračuje stejným způsobem jako na běžném počítači včetně možnosti výběru a změny velikosti stávajících oblastí na disku


Odroid s Linuxem použit pro videokoferenci na televizi s využitím programu Telegram. Před spuštěním jsem ale musel snížit rozlišení, protože rozlišení 4K procesor neutáhne a kamery mají stejně rozlišení podstatně nižší. Jako mikrofon je použit ten uvnitř USB web kamery.


Odroid HC4 umožňuje připojit i bootovat (díky Petitboot) přímo ze dvou SATA disků. Z toho důvodu neobsahuje slot na eMMC pamnět a přítomný microSD slot tak může zůstat prázdný,nebo jej lze využít jen pro instalaci či start live distribuce pro případné opravy hlavního systému na dálku.

Rock Pi

Např. Rock Pi 4 (a nejen ta) má jak možnost připojení eMMC pamět (kompatibilní s Odroid a PINE), tak možnost připojit M.2 SSD. Kvůli formátu a chlazení jej ale doporučují připojit přes přídavnou desku s prodlužkou a chladičem, ke kterému se ta přídavná deska připevní. Na to celé si můžete koupit elegantní kovovou krabičku s plexisklovým víkem.

A to není vše, pokud potřebujete připojit více disků je možné přikoupit sata řadič, který připojíte též pomocí m.2 prodlužky. Rázem máte k dispozici 4xSATA + 1x eSATA.

Že je vše dodáváno, tedy i testováno, přímo výrobcem minipočítače a není třeba vybírat nějaký výrobek třetí strany, považuji také za podstatnou výhodu.

Připojení pěti různých disků k Rock Pi 4.