Hlavní navigace

Odroid: spouštíme Linux

14. 2. 2013
Doba čtení: 4 minuty

Sdílet

V posledních měsících se jako houby po dešti objevují na trhu malé jednočipové platformy, snažící se konkurovat velkým desktopovým počítačům. Jedním takovým je i korejský Odroid, poháněný stejným procesorem jako nejmodernější chytré telefony. Je možné na něm provozovat Android, ale jak si poradí s GNU/Linuxem?

Kromě operačního systému Android, který jsme podrobně testovali v předchozím článku, dává výrobce k dispozici i obrazy s GNU/Linuxem, konkrétně Linaro Ubuntu 12.11. Obraz paměťové karty se velmi podobá tomu pro Raspberry Pi − malý zaváděcí oddíl s FAT32 pro zavaděč a obraz jádra a velký ext4 kořenový oddíl. Ve FAT32 oddílu je opět možné změnou souboru boot.scr nastavit správné rozlišení GPU, stejně jako v případě operačního systému Android.

Největší problém Linuxu na ARM: ovladač GPU

Stejně jako Raspberry Pi, i Odroid používá GPU, pro které nejsou k dispozici svobodné ovladače. Situace je zde horší o to, že pro GPU v Odroidu nejsou k dispozici žádné ovladače pro GNU/Linux, pouze pro Android.

Začíná to už při bootování. Z neznámých důvodů jsem nebyl schopen zprovoznit textovou konzoli. Nejprve jsem si myslel, že stačí překompilovat kernel s podporou modulu fbcon, ale i poté byl namísto textového výstupu monitor tmavý. Až do startu X serveru jsem byl tedy odkázán pouze na sériovou linku.

Ani po spuštění X serveru to nebylo nikterak slavné. Je totiž používán ovladač fbdev bez jakékoli akcelerace. Takže i takové banality jako přehrání SD videa na celé obrazovce bohužel není možné realizovat. Stejně tak nebyla v době testování hotova podpora pro OpenGL ES, takže ačkoli nástroj glxinfo ukazoval podporu přímého vykreslování, testovací program glxgears dosahoval pouze stovky FPS a i nejbanálnější hry jako SuperTux se vykreslovaly rychlostí jednoho snímku za sekundu.

Glxgears ukazuje 120 snímků za sekundu.

Výkonné CPU s funkční správou napájení

Odhlédneme-li však od grafického subsystému, který se snad ještě časem zlepší, máme před sebou velmi výkonný a přitom úsporný počítač. Perfektně funguje například správa napájení. Standardními nástroji je možné měnit frekvenci procesorů od 200 MHz do 2 GHz po 100 MHz. Je-li nastaven regulátor ondemand, který přizpůsobuje frekvenci CPU aktuální potřebě, jsou v době klidu nadbytečná jádra úplně vypnuta a zapnou se až po nárůstu zátěže. Drobnou nevýhodou je, že některé programy kvůli tomu mohou špatně přizpůsobit počet vláken, neboť na začátku uvidí pouze jednoprocesorový systém.

Supertux renderovaný pomocí OpenGL dosahuje pouze 5 fps. Při softwarovém vykreslování je desetkrát rychlejší.

Samotný výkon CPU jsem testoval pomocí kompilace. Přeložení linuxového jádra (příkaz make -j5) ve standardním nastavení Linaro Ubuntu trvalo 16 minut, přeložení OpenSSH 6.1p1 čtyřicet sekund. Hrubě tedy můžeme odhadnout výkon jako srovnatelný s 4–5 let starým PC, byť samozřejmě budou existovat rozdíly v instrukčních sadách a vhodnosti pro konkrétní úlohy.

Bez problému je též ethernetový adaptér. Nástrojem iperf v základní konfiguraci se mi podařilo naměřit rychlost TCP spojení kolem 92 Mbps po IPv4 i IPv6. Zajímavé je, že síťové rozhraní má ve výchozím nastavení MTU 1488 bajtů, což může způsobit problémy. Hodnotu je ale možné změnit standardními nástroji.

Podpora IPv6 nepředstavuje problém.

Použití jako NAS

Nabízí se tedy otázka, zda by desku nebylo možné využít jako jednoduchý NAS po připojení USB disku. Hned na úvod drobné zklamání − výrobce osadil každý USB konektor vratnou pojistkou na proud 500 mA. Kvůli té se můj externí 2.5" disk se 7200 RPM nebyl ochoten roztočit, i když roztočený vydržel. K roztočení mu pomohlo připojit napájení i z druhého portu. Rozhodně bych za toto chování nevinil výrobce, vada je jednoznačně na straně externího disku, který požaduje víc proudu, než USB specifikace povoluje.

Připojený disk měl na sobě oddíl typu NTFS, jehož podpora v Linuxu trpí vysokými výpočetními nároky. To ale vzhledem k výkonu CPU nepředstavovalo žádný problém a bylo možné z disku číst rychlostí kolem 20 MB/s při zatížení jednoho jádra CPU na maximálně 60 %.

Protože jsou USB porty zapojené na samostatné USB lince, odlišné od USB linky, na které je připojen ethernetový adaptér, nebyl přenos omezován rychlostí USB rozhraní. Při použití pythonovského HTTP serveru tedy dosahovala rychlost stahování až 10,7 MB/s, což je zároveň maximální rychlost síťového adaptéru. Stejné rychlosti dosahoval i protokol FTP pomocí serveru vsftpd. Poněkud horší to bylo s šifrovaným přenosem. Při zapnutí šifrování datového spojení v FTP rychlost klesla na 4,9 MB/s při zatížení CPU na 69 %, při použití SFTP byla rychlost jen 1,8 MB/s. Vysvětluji si to tak, že kód šifrovacích knihoven není přizpůsoben ARMovské architektuře a pracuje tak velmi neoptimálně.

CS24_early

HTML5 SD video v okně ještě funguje, zvětšení na celou obrazovku už ale CPU bez akcelerace nezvládá.

Zajímavá platforma, jen dotáhnout

Odroid si rozhodně zaslouží pozornost. Buď jako doplněk k televizoru se systémem Android, nebo jako malý linuxový počítač. Výkon CPU i množství paměti ho mnohem lépe předurčuje k použití jako „levný počítač na výuku programování“, než Raspberry Pi, které je pomalé a při spuštění náročnější úlohy mu navíc velice rychle dojde paměť. Na druhou stanu, cena je téměř trojnásobná a grafický subsystém je v současném stavu prakticky nepoužitelný. Pokud ale hledáte třeba malý domácí servřík na výuku programování webových aplikací, který nezatíží rodinný rozpočet účtem za elektřinu, můžete o Odroidu uvažovat.

Vývojové desky laskavě zapůjčila společnost Steadynet, s. r. o.

Byl pro vás článek přínosný?

Autor článku

Ondřej Caletka vystudoval obor Telekomunikační technika na ČVUT a dnes pracuje ve vzdělávacím oddělení RIPE NCC, mezinárodní asociaci koordinující internetové sítě.