Aktualizováno 20.10.2018

      
 
   Webový server z jednodeskového (SBC) miniaturního počítače

Všeobecně

Server vznikl po základních experimentech s instalací a používáním Linuxů na miniaturních počítačích s procesory ARM. Mezi amatéry je oblíbený typ Raspberry PI. Já jsem použil konkurenční desku od firmy Asus. Popis desky lze stáhnout tady. Měl jsem následující důvody:

1. Potřeboval jsem zjistit, jaké funkcionality mají a co dovedou operační systémy pro desktopové aplikace s procesory ARM.
2. Uvažoval jsem o nějakém využití, když už mi deska leží na stole. Potřeboval jsem vidět rychlý výsledek, vybral jsem si pro realizaci prvního přístroje datové úložiště s http serverem webových stránek.

Desku (SBC) Asus Tinkerboard S jsem volil, protože:

a) velikost operační paměti RAM je 2GiB (Raspberry PI 3B+ bylo jen s 1 GiB operační paměti)
b) provedení TinkerBoard S má tzv. eMMC paměť o velikosti 16 GiB, do které lze nahrát operační systém a používat ho např. pro provoz http serveru a pro uložení html stránek. Provedení TinkerBoard bez S nemá eMMC a operační systém musí být na microSD kartě, což se mi nelíbilo. Raspberry nemá eMMC.
c) Asus však přišel s SBC na trh mnohem později, s odlišnou architekturou, jiným procesorem. V době nákupu desky chybělo mnoho programového vybavení. Někteří recenzenti právě z těchto důvodů nákup nedoporučovali, protože programy pro Raspberry nebyly kompatibilní. Vždy však záleží na tom, co chceme s SBC realizovat, zda máme na vývoj SW dostatek času a dalších prostředků. Nicméně, předpokládal jsem, že realizace serveru bude na systému Debian standardní a snadno realizovatelná.

Instalace a první spuštění

Instalace operačního systému TinkerOS je jednoduchá:
1. Stáhneme verzi pro desktop (to je důležité), z komprimovaného souboru rozbalíme image operačního systému.
2. Připojíme kabel s micro USB do PC a programem Etcher zavedeme operační systém do eMMC paměti. Propojka musí být nastavena do pozice eMMC Recovery:

3. Připojíme USB myš, USB klávesnici, HDMI monitor.
4. Přepojíme propojku do polohy Power on.
5. Připojíme do micro USB napájecí adaptér, který je schopen dodat alespoň 2 A (lépe 2.5 Amp)
6. Sledujeme HDMI monitor, protože proběhne první spuštění operačního systému (podle typu OS se toto bude průběhem a zobrazením lišit).

Já jsem pro webový server použil původní TinkerOS v poslední verzi. Nastavil jsem WiFi, provedl několik základních nastavení (vč. homepage prohlížeče Chromium) a nainstaloval jsem si oblíbený souborový manager Double Commander takto:

sudo apt-get install doublecmd-qt

Po instalaci se objevila v menu ikona. Ikonu jsem dal spolu s ikonou browseru Chromium na plochu.

Instalace a spuštění serverů

Server http nainslatujeme takto (řádky postupně, sledujeme v Terminálu instrukce):

sudo apt-get install apache2
sudo /etc/init.d/apache2 restart

Server ftp instalujeme takto:

sudo apt-get install pure-ftpd
a spustíme ho
sudo pure-ftpd &

Vyzkoušení serverů a kam se dává obsah webů, jsem popsal zde: instalace pure-ftpd a instalace a vyzkoušení serveru Apache2 pro http. Na OS Debian pro ARM jsem očekával stejné postupy. Bylo tak. Uvedeným postupem lze oba servery instalovat, spustit a začít využívat. Po nahrání webových stránek začnou být tyto zobrazovány a s pomocí ftp přístupu mohou být aktualizovány přes internet. Disky eMMC, microSD karta, pokud ji zapojíme a USB HDD nám začnou fungovat jako úložiště. V dalším kroku si pravděpodobně nastavíme konfigurační soubory serverů ftp a http.

Já jsem si nastavil ještě vlastní operační systém, aby vypadal tak, jak jsem zvyklý, prolezl jsem ho, abych viděl, co proti desktopům pro architekturu AMD64 (to jsou PC a notebooky) chybí, atd. atd. Také jsem nastavil nový login a heslo. A vyzkoušel jsem restart. Vše se rozběhlo tak, jak to má být. Zatím jsem byl připojen pouze k LAN domácí síti. Podíval jsem se na router, jaké IP adresy byly DHCP serverem přiděleny, jaké MAC adresy mají rozhraní pro GB Ethernet a WiFi. DHCP router přidělil rozhraní WiFi IP 192.168.1.185 (a rozhraní GBE 192.168.1.8). Zkontroloval jsem si, zda z PC na LAN síti vidím očekávané webové stránky:

Také jsem si na vzdáleném PC nastavil přístup FTP a podíval jsem se do adresáře webu na Asus Thinkerboard S. Tedynahrál jsem tam svůj web, úložiště starých časopisů, atd.:

První zkušenosti

1. Miniaturní (SBC) počítač má maličkou spotřebu (asi 10 Wattů) a k jeho napájení by stačil malý adaptér 5V/2A, s konektorem microUSB, nepoužíváme-li USB HDD disky.
 
2. Konektor microUSB je určen pro proudové zatížení do 1.8 Amp. Deska s externími USB disky žere víc (cca 2.5 až 3 A). Pro takový účel se lépe hodí větší adaptér. Já jsem použil 5V/4A (pořízen v GM Elektronic) a napájel jsem hračku na 40 pinovém konektoru skrz piny č. 2 a 4 (+5Vcc) a č. 6 (GND). Na fotografii jsou vidět oba adaptéry i konektor zapojený na pinech (měl jsem doma jenom s 5 špičkami, nezkracoval jsem ho):

3. Pokud server nastavíme a vypneme ho pomocí klávesnice, monitoru a myši, musíme ho opětovně zapojit vytažením napájecího adaptéru a opětovným zapojením po několika sekundách. Deska nemá žádné tlačítko Power, Power ON, Reset apod.
4. Pokud počítač slouží pouze jako ftp a http server, můžeme ve vypnutém stavu odpojit z konektoru HDMI monitor a z konektorů USB myš a klávesnici. Po zapnutí k síti se nám oba servery rozběhnou. HTTP server umožní brouzdat z PC na LAN v instalovaném webu, ftp server umožní z jiného PC instalovat obsah webu a dělat s obsahem úložiště. Server nepotřebuje pro start a provoz ani klávesnici, ani myš a ani monitor. Zapnutí děláme zasunutím adaptéru do zásuvky, vypnutí vytažením ze zdi. Elegantní a jednoduché.
5. Pokud je server vypnutý, připojujeme a odpojujeme USB disky. Externí USB disk jsem formátoval ve formátu ntfs.
6. Při vypnutém serveru také měníme SD kartu, pokud ji používáme jako úložiště. Uvažoval jsem o využití SD karty pro úložiště s tím, že by server byl napájen jen malým adaptérem. Bohužel, jednu značkovou SD kartu (a docela drahou) jsem zničil při kopírování dat tam a zpátky ještě na notebooku. Druhá karta mě rovněž nenadchla. Když jsem ji krmil daty přes ftp server, byla zpočátku vysoká přenosová rychlost dat. Ta však klesala s objemem přenesených dat. Zřejmě se začala vyskytovat chybovost při kopírování. Když jsem kartu ze slotu SBC vyndal a použil ji v notebooku, nebylo ji možné po několika takových pokusech připojit. Musel jsem kartu znovu formátovat. Jenže tohle já nemám rád. Pár věcí musí být na serveru spolehlivých. Mezi takové věci patří úložiště. Tady SD karta neobstála, doslova zklamala a naštvala mě. Zůstal jsem tedy u externích USB disků, přestože jsem jednu SD kartu naplnil gigabajty dat a nechal ji jako úložiště ve slotu.
7. USB disky se dařilo úspěšně používat ve všech 4 USB portech. To se mi docela hodí. Když jsem zrovna na cestách a právě připojený disk nemá potřebná data, jednoduše připojím správný disk nebo USB klíčenku.
8. Zobrazování statických stránek z PC na LAN síti bylo svižné. Nebylo možné poznat, že server byl realizován na tak maličkém počítači velikosti kreditní karty, se spotřebou 10 Wattů, choval se úplně stejně, jako server na běžném PC.

Detaily provedení desky
a použitá rozhraní:

Poznámka: Deska je dodávaná v papírové krabičce, která obsahuje vlastní desku v antistatickém obalu, chladič, který se lepí na procesor samolepkou (prý je tepelně vodivá) a nějaké papíry (popis desky - viz pdf, záruka, atd.)

Běžící server
poznáme také podle toho, že svítí signalizační LED - viz pravý horní roh s LED.

Při pokojových teplotách jsem kontroloval teplotu chladiče rukou. Byl spíš vlažný, než teplý. Protože ho nebudu dávat do žádné plastové krabičky, SBC půjde na DIN lištu do rozvaděče, neuvažuji o žádném ventilátoru chlazení.

Alternativní řešení serveru na jiné architektuře

Alternativy existují. Na server by se lépe hodil SBC typu Banana (s podobnou architekturou), s deskou, která má rozhraní SATA pro pevný disk. Jde však o dražší řešení (asi o 500 Kč).
Ještě lepší řešení vidím na architektuře AMD64 (pro PC desktopy). Nové přístroje od Asus nebo Acer se na Alza.cz daly sehnat za cenu od 2000,- Kč. Jde o počítač bez operačního systému, bez RAM, bez HDD, zpravidla pasivně chlazený, s napájecím adaptérem a v krabičce. Pokud nutně potřebujeme pevný disk (HDD, SSD), byla by to pro mě první volba. Vyhnul bych se přece jenom desce s ARM a jinou architekturou, sloty bych osadil rychlou pamětí RAM typu DDR3L (pro notebooky, napájení 1.35V), velikost 4 GiB (nová stojí 700 až 800 Kč) a takový server by vyšel na stejné peníze, jak zde popsaný SBC s adaptérem a externím diskem. Jenže bych si neošahal operační systémy pro ARM (TinkerOS, Armbian, Xubuntu ... je jich několik), neměl bych se na čem naučit programování I/O portů, sériových linek a dalších rozhraní, které se na deskách Raspberry PI, Banana, Tinkerboard a dalších staly standardem. A právě na to se mi tento SBC velice, velice hodil. A mile mě překvapil ...

Závěr

Během několika dnů jsem SBC intenzivně trénoval. Tedy hlavně vypínal a zapínal. Vždy se spolehlivě rozběhl a fungoval.

20.10.2018: Dodnes mi deska ležela na stole bez nějakého rozumného využití. Ani jednou jsem ji nerestartoval, jen jsem občas potrénaval server Apache, když jsem sednul ke klávesnici. Dcera potřeboval pro práci sdílené úložiště. Včera jsem jí nakonfiguroval náš NAS, který si odvezla a tak šel server s Tinkerboard do služby. Slouží jako server našeho extranetu. Router pracuje s tzv. veřejnou adresou a Tinkerboard je připojen přes WiFi (192.168.1.185).

Postup konfigurace:

1. Nejdřív jsem se podíval do routeru, jakou adresu má Tinkerboard:

2. Nastavení přístupu k Internetu. Toto vyžaduje, aby vám váš ISP (Internet Service Provider, Poskytovatel Internetových služeb) přidělil tzv. veřejnou IP adresu. Většina routerů umožňuje směrovat všechny pakety Internetu na jediný počítač za routerem. To se nastavuje takto - najdete nastavení WAN, najdete konfiguraci DMZ, povolíte DMZ a do jediného políčka, kam jde psát IP adresu, napíšete IP adresu (LAN sítě), na které běží TinkerBoard:

Od tohoto okamžiku kdekoliv z internetu uvidíte po napsání veřejné IP adresy svoje webové stránky (Apač přece běží). Ty moje vypadají takto:

3. Obsah stránek lze aktualizovat pomocí ftp. Stránky jsou umístěné v adresáři - viz obrázek:

4. Tinkerboard můžete použít rovněž jako úložiště vašich dat, ke kterým budete mít přístup kdykoliv z internetu. Já jsem pro tento účel nechal všechny 4 USB porty volné, až to bude třeba, ale udělal jsem si ještě jedno úložiště na SD kartě:

Server, přestože je maličký, pouze velikosti kreditní karty, chodí svižně a slušně.

 

TU 73, Mira, ok1ufc