Co je nového u Raspberry Pi? Všechno!

11. 2. 2015
Doba čtení: 6 minut

Sdílet

Jsou to už necelé tři roky, co byl vypuštěn do světa první jednodeskový mikropočítač z rodiny Raspberry Pi. Za tu dobu se jeho vývoj nezastavil, postupně byly představeny jak hardwarové, tak i softwarové inovace. Pojďme si dnes, u příležitosti vydání druhé generace, připomenout nejzajímavější novinky.

Přesně 29. února 2012 byl zahájen prodej první verze Raspberry Pi. Druhého února 2015, tedy zhruba po třech letech, byl zahájen prodej druhé generace s mnohem výkonnějším procesorem, avšak stále za stejnou cenu 35 USD. To ale rozhodně není jediná inovace.

Snadná instalace díky NOOBS

Ukázalo se, že cílovou skupinou Raspberry Pi je kromě počítačových nadšenců také spousta lidí, pro které jde o první kontakt s počítačem vůbec. Pro takové lidi může být nepřekonatelný problém už jen nahrání staženého obrazu na SD kartu. NOOBS je něco mezi boot-loaderem a živým prostředím, které stačí nainstalovat rozbalením ZIP archivu na obyčejnou FAT32 formátovanou SD kartu.

Využívá se zde toho, že vestavěný bootloader v Raspberry Pi dokáže načíst firmware pro GPU právě z FAT32 oddílu na SD kartě. Odtamtud se spustí minimalistický linuxový systém, který zmenší FAT32 oddíl na SD kartě a připraví tak místo pro instalaci vlastních distribucí. Následně je uživateli prezentován výběr distribucí k instalaci, které mohou být staženy z internetu a nainstalovány do volného místa.

Po volbě distribuce, která má být spuštěna, zapíše NOOBS do speciálního registru číslo FAT32 oddílu, ze kterého má být příště startováno, a provede restart voláním reboot(2). Zajímavostí je, že součástí NOOBS je také odlehčený webový prohlížeč arora, takže chcete-li jen něco zkontrolovat na internetu, vystačíte si se samotným bootloaderem.

Vylepšený model B+

První vydání spíše než počítač připomínalo více vývojovou desku, na které bylo kromě samotného SoC minimum externích součástek a komplikovaný členitý systém konektorů ze všech stran. Přidání dvou montážních děr u revize 2 prvního modelu situaci nijak zásadně nevylepšilo. Zásadní změna naopak nastala v červenci 2014 představením modelu B+ – finálního vývojového stupně první generace Raspberry Pi.

Raspberry Pi B+

Raspberry Pi B+

Na první pohled zaujme pravoúhlý tvar a čtyři montážní otvory v pravidelném uspořádání. Rozšířen byl GPIO konektor, přičemž jeho levá část je zpětně kompatibilní s předchozím modelem. Vylepšen byl také napájecí zdroj, který vstupní napětí 5 V snižuje na 1,8 V pro jádro SoC a 3,3 V pro ostatní zařízení. Ten byl původně realizován lineárními regulátory, nově jde o spínané měniče s vyšší účinností.

Také byl po zkušenostech s nekvalitními napájecími zdroji přidán brown-out detektor, který detekuje i jen krátkodobý pokles vstupního napětí pod 4,65 V. Ten je signalizován zhasnutím červené LEDky a také rozsvícením duhového čtverečku v pravém horním rohu obrazovky. Tahle funkce je přímo součástí firmwaru GPU a tedy zcela nezávislá na běžícím operačním systému. Další podobnou funkcí je červený čtvereček, který se rozsvítí při překročení teploty 85 °C.

Přechod na Device Tree a HATy

Původně se specifika každé desky, včetně Raspberry Pi, zapisovala do definičního souboru desky, který byl součástí zdrojových souborů jádra. Tak se chovala i první jádra pro Rapsberry Pi. Chtěli jste softwarově ovládané 1-Wire rozhraní? Musíte použít GPIO číslo 4. Pokud jste chtěli použít jiné, nezbývalo než upravit definiční soubor a překompilovat jádro. Zvláštní obraz jádra tak musel existovat i pro různé desky se stejným SoC. Spolu s rozmachem ARMovských platforem začal narůstat i počet konfliktů, kdy přidání podpory jedné desky znefunkčnilo podporu jiné. Až tomu jednoho dne učinil přítrž samotný Linus Torvalds, když prohlásil, že žádné další definiční soubory desek přidávat nebude.

Tímto krokem jsou postupně všechny platformy nuceny k přechodu na Device Tree. Jde o binární datovou strukturu, která popisuje hardware konkrétní desky. Tato struktura je nahrána zavaděčem do paměti při startu spolu s obrazem jádra a případně i initramfs  a Linux ji za běhu interpretuje. Velkou výhodou je zde oddělení definice hardwaru od zbytku jádra, takže stejné jádro je možné zavést na více různých deskách, které používají stejnou architekturu.

S Device Tree také souvisí podpora standardizovaných rozšiřujících desek nazvaných Hardware Attached on Top (HAT). Desky podle tohoto standardu musí obsahovat identifikační EEPROM paměť, jejíž obsah během startu vyčte bootloader. Tahle paměť může obsahovat i právě fragment Device Tree, který je tak automaticky sloučen s Device Tree základní desky. Tak je možné snadno a automaticky zpřístupnit hardware na přídavných deskách.

Vzorová deska podle specifikace HAT

Pod čarou: zprovoznění PoEpi na Device Tree

Změna na Device Tree mě zaskočila nepřipraveného. Po nedávné aktualizaci Raspbianu přestaly být na mé rozšiřující desce PoEpi dostupné hodiny reálného času a 1-Wire převodník DS2482. Při bližším zkoumání se ukázalo, že Linux nadále už nevidí ani I²C sběrnici. Pomohlo právě sestavení následujícího fragmentu Device Tree

/dts-v1/;
/ {
        compatible = "brcm,bcm2708";
        fragment@0 {
                target = <&i2c1>;
                __overlay__ {
                        status = "okay";
                        pcf8583@50 {
                                compatible = "nxp,pcf8583";
                                reg = <0x50>;
                                status = "okay";
                        };
                        ds2482@18 {
                                compatible = "maxim,ds2482"
                                reg = <0x18>;
                                status = "okay";
                        };
                };
        };
};

Tento fragment je po kompilaci nástrojem dtc uložen do /boot/overlay/poepi-overlay.dtb a zaveden při bootu příkazem dtoverlay=poepi v souboru /boot/config.txt. Po restartu tak jádro už přesně ví, že na dané I²C sběrnici jsou zapojeny dvě zařízení s danými adresami a zavede pro ně příslušné ovladače.

Nezávislý VGA výstup z modelu B+

Velmi zajímavá je nová možnost použít rozšiřující konektor modelu B+ jako samostatný VGA výstup. SoC takové použití podporuje, stačí připojit D/A převodník, což může být v nejjednodušším případě jen několik rezistorů. Výstup je řízen přímo grafickým procesorem, takže je výkonově zcela ekvivalentní displeji připojenému na HDMI nebo kompozitní video výstup. Kromě toho je zde možnost zobrazovat nezávislé výstupy na VGA a HDMI. K tomuto však zatím stále chybí softwarová podpora. Destička s adaptérem je k dispozici jako open hardware, obsahuje pouze dva konektory a 20 rezistorů, takže není problém vyrobit ji i v domácích podmínkách.

Druhá generace: rychlejší SoC, jinak vše při starém

Tím se dostáváme k události oznámené v pondělí 2. února, totiž představení druhé generace Raspberry Pi. Je velice překvapivé, že se celou událost podařilo držet do poslední chvíle pod pokličkou, takže v době, kdy k oznámení došlo, byly už desky k dispozici v logistických skladech a byly už připraveny první recenze. I zákazníci z ČR tak obdrželi první kousky hned následující den.

Nová deska konečně opustila zastaralý SoC BCM2835, který byl nahrazen za BCM2836. Jedná se o čtyřjádrový ARM Cortex-A7, taktovaný na 900 MHz. K němu je nově připojena LPDDR2 paměť o kapacitě 1 GiB. Kromě toho se od modelu B+ první generace vlastně nic moc nezměnilo, dokonce ani cena. Jediná na první pohled výrazná změna spočívá v tom, že výrobce opustil koncepci package on package pro připojení paměti, která je nově připájena ze spodní strany desky.

Asi by se slušelo na závěr napsat nějaké dojmy z nového SoCu. Nebudu místní čtenáře obtěžovat tím, že bych se snažil vymýšlet nějaké nové benchmarky, místo toho bych odkázal například na benchmark na stránkách Hack a Day, nebo hrubé porovnání spotřeby a výkonu. Osobně bych krátké zkušenosti s používáním druhé generace shrnul do věty: Je to stále pomalé, ale aspoň už to není nepoužitelně pomalé. Pro velmi nenáročné úlohy si RPi druhé generace dokážu představit i v roli stolního počítače.

Blbinka: nové Raspberry Pi se bojí bouřek

Z návštěvy zoologických zahrad si pamatuji cedulky s nápisem:

bitcoin_skoleni

Bojíme se bouřek, nefoťte nás s bleskem.

Podobný nápis můžete dát na své nové Raspberry Pi 2. Také se z nějakého důvodu blesků bojí a vypálení xenonového blesku v jeho blízkosti způsobí jeho okamžité vypnutí. Vyzkoušeno, funguje. ☺

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ě.