Turris Lite bude spíše „Heavy“ (InstallFest 2015)

9. 3. 2015
Doba čtení: 6 minut

Sdílet

Včera skončil šestý obnovený ročník konference InstallFest. Probírala se na něm mnohá zajímavá témata, ovšem znát byl tentokrát hodně velký posun k hardware. Probíral se Turris Lite, Raspberry Pi nebo procesory ARM. To vše doplňovala bastlírna s roboty, kvadrikoptéra a internetová lednička. Hardware vládne.

Ondřej Filip: Turris Lite and heavy

Projekt Turris začal v roce 2013 jako projekt sdílené kybernetické obrany. Jeho cílem je bezpečnostní výzkum prováděný pomocí sond umístěných v různých sítích. Ty fungují jako routery, které sbírají statistická data pro projekt Turris. Z nich jsou zase zpětně vytvářena pravidla pro adaptivní firewall. U levných čínských routerů výrobce příliš neřeší aktualizace, takže když se k vám zařízení dostane, už je obvykle hodně staré a plné bezpečnostních děr, řekl na začátku přednášky Ondřej Filip z CZ.NIC. Právě tento problém chceme řešit.

Výsledkem je router Turris, který obsahuje dvoujádrový procesor PPC a operační systém založený na OpenWRT. Důležité jsou automatické aktualizace, které probíhají na pozadí a pokud je potřeba rebootovat, můžete si nastavit čas, kdy se to má stát, vysvětlil Filip.

Protože jde o zajímavé zařízení, na různých konferencích se objevil zájem o komerční prodej routeru Turris. Pro náš výzkum stačí současné dva tisíce kusů, už nemáme motivaci ani finance na rozšiřování naší sítě. Proto přišla otázka, co dál, řekl Filip. Variantou bylo projekt utlumit a dál nerozvíjet. Máme ale dva roky zkušeností a otevřeného síťového hardware je málo, proto by byla škoda skončit.

Proto vznikl koncept Turris Lite, který nabídne podobný hardware, stejný software a už nebude nutné se účastnit bezpečnostního projektu. Hlavním cílem je vytvořit zařízení pro výuku síťování. Raspberry Pi přitáhlo hodně lidí k různým hrátkám, my chceme totéž udělat pro sítě.

Čtěte: Router Turris Lite si koupíte za sto dolarů, slibují vývojáři

Původní Turris je postaven na procesoru PowerPC, přestože by dnes bylo logické použít procesory ARM. Dnes je obrovský výběr ARMů, ale jsou obvykle orientované na grafiku. Jejich síťování bývá velmi slabé. Proto se vývojáři nakonec rozhodli použít další generaci PowerPC se 64bitovou architekturou, konkrétně čip T1040, který obsahuje čtyři jádra na 1,2 GHz. Ve většině testů je výkonnější než Raspberry Pi 2, i když se pohybujeme v jiném segmentu. Nám jde především o síťový výkon.

Současná pracovní verze počítá s 1 GB paměti, alespoň pěti gigabitovými ethernet porty, USB 3.0, SATA a miniPCIe. Specifikace se může ještě hodně změnit, realita je výrazně složitější než teorie, některé součástky musíte objednávat hodně dopředu a je to docela magie, vysvětlil Filip.

Cílem je velmi univerzální zařízení, se kterým je možné dělat mnoho různých věcí. Je to jedno z mála zařízení, které vám běží 24 hodin denně, takže je rozumné ho využít naplno. Díky velkému výkonu můžete mít v jedné krabičce NAS, DLNA, router, web server a mnoho dalšího. Zajímavou vlastností bude bezdrátový čip, který bude moci komunikovat s různými zařízeními v domácnosti jako jsou PIR čidla, bezdrátové zásuvky, dveřní kontakty, alarm a podobně.

V současné době už jsou k dispozici prototypové desky, probíhá portace Turris OS a vývojáři komunikují s výrobci a dalšími partnery. Start výroby je naplánován na přelom roku 2015 a 2016. Záleží ale na tom, jak hladce poběží vývoj. S výrobou hardware je to složité, přijde vám prototypová deska, vy na ní objevíte zásadní chybu a můžete začít znovu. V první sérii je plánována výroba 10 000 kusů, peníze se budou zřejmě vybírat pomocí crowdfundingu.

Pavel Tišnovský: Procesory s architekturou ARM

V úvodu Pavel Tišnovský vysvětlil, že původně v roce 1983 zkratka ARM znamenala Acorn RISC Machine. Od roku 1990 zkratka znamená Advancet RISC Machines. Dnes se pod zkratkou ukrývá celá škála různých procesorů od jednoduchých mikrořadičů až po výkonné 64bitové procesory. Používají se v herních konzolích, tabletech, netboocích a mobilních telefonech. Postupně se dostávají i na servery, což je z hlediska budoucnosti nejperspektivnější oblast.

Klasické procesory ARM používaly klasickou 32bitovou riscovou architekturu. Byl to základní typ RISC čipů, ale postupně se zjišťovalo, že s rostoucím výkonem čipů začíná být velikost instrukcí limitující. Proto vznikla 16bitová sada Thumb a nově také 64bitová instrukční sada, která se začíná na trhu prosazovat.

Součástí procesorového jádra není jen riscová část, ale také třeba jednotka pro práci s reálnými čísly a třeba také vektorový FPU. Vše je integrováno v jednom obvodu a umístěno na jediném čipu, proto se tomuto uspořádání také říká system on chip.

Obchodní model společnosti ARM je odlišný od toho, jak fungují mainstreamoví výrobci Intel nebo AMD. Tyto společnosti prodávají relativně malé množství současně nabízených modelů procesorů. Řídí se heslem, že jedna velikost padne všem. Proto nebyly schopné dostatečně rychle reagovat na poptávku po malých procesorech pro mobilní zařízení.

Proti tomu ARM procesory nevyrábí, ale pouze dodává know-how. Prodávají za velké peníze jádro procesoru napsané v jazyce Verilog. Koncový výrobce si pak k jádru přidá vlastní součástky a čip si vyrobí. ARM se tedy vůbec nezabývá výrobou, tu nechává na jiných.

Hlavními výhodami ARM procesorů je relativně malý počet tranzistorů, malá spotřeba a možnost zařadit jádro do vlastního čipu. Typickým zástupcem je například procesor Nvidia Tegra, který doplňuje ARM jádro o výkonné grafické jádro. Důležitá je také dobrá podpora v překladačích včetně JIT.

Z pohledu programátora jde v případě 32bitových ARM procesorů o poměrně jednoduchou architekturu typu Load-Store. Veškeré operace s pamětí se provádí pomocí registrů. Typicky měli programátoři 30 pracovních a 15 viditelných registrů. Všechny tyto registry mají šířku 32 bitů a všechny fungují stejně, na rozdíl od registrů v architektuře Intel. Instrukční sada měla původně 32bitové instrukce a 32bitové operandy.

Nejnověji se začíná prosazovat architektura AArch64, která nabízí větší virtuální paměťový prostor, nativní práce s 64bitovými hodnotami a zjednodušení pro vývojáře i autory překladačů. O architektuře se začalo hovořit už v roce 2011, ale ještě se nedodávaly čipy, jen emulátory. Firma si totiž uvědomila, že špatné načasování může znamenat neúspěch, který zaznamenala třeba architektura Itanium. Procesor nesmí přijít na nepřipravený trh, proto bylo potřeba postupně pomocí emulátorů umožnit vývojářům připravit software i překladače.

Štěpán Bechynský: Raspberry Pi GPIO

GPIO znamená General Purpose Input Output, tedy obecné vstupně/výstupní zařízení. Jednotlivé digitální výstupy na pinech je možné ručně ovládat, nebo na některých z nich zapnout speciální funkce: několik I2C sběrnic, SPI (se dvěma vestavěnými CE), PWM (jeden hardwarový) a UART. Dejte si pozor na to, že Raspberry Pi pracuje s 3,3V logikou. Pokud k němu připojíte třeba nějakou periferii pro Arduino, pravděpodobně ho zničíte, zdůraznil několikrát na začátku Štěpán Bechynský.

Užitečná je textová konzole, která je ve výchozím stavu na pinech 8 a 10. Pokud chcete s RPi komunikovat, nepotřebujete klávesnici a monitor, stačí připojit sériovou linkou a můžete ovládat. Pozor ovšem opět na napětí, řekl Bechynský a přidal vlastní historku: Kdybych to věděl dřív, ušetřilo by mi to hodně práce. Měřili jsme vibrace v autě na D1 a protože jsme se potřebovali k Raspberry připojit, museli jsme zasíťovat celé auto. Naštěstí jsem v něm měl router.

bitcoin školení listopad 24

Přednáška se dále věnovala jednotlivým sběrnicím: vestavěné I2C a softwarově emulovanou 1-Wire sběrnici. Ta není příliš přesná, pokud nemáte real time operační systém. V Raspbianu to musíme řešit tak, že ovladač čte data tak dlouho, dokud nevyjde CRC. Není to optimální, ale pro jednoduché nasazení to funguje, popsal Bechynský situaci na příkladu měření teploty pro školní projekt vlastní dcery.

Mezi hardwarová omezení Raspberry Pi patří: omezený proud dodávaný z pinů, nedostupnost ADC převodníků a neexistence hodin reálného času. Ty je možné koupit nebo postavit. Já k tomu používám PICAXE, konkrétně z řady X2, která podporuje I2C Slave. Programuje se to v jazyce BASIC a má vysokou míru abstrakce. Programuje se v programu AXEpad, který je dostupný pro všechny platformy. Na otázku proč pro jednoduché projekty nepoužít rovnou jen procesor PIC nebo třeba Arduino, odpověděl Bechynský: Mně to tak vyhovuje, ale vám může vyhovovat něco jiného.

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.