Moje odkazy
Obsah článku:
vydáno: 4. 8. 2018 23:23, aktualizováno: 2. 3. 2020 01:14
Zatímco v oblasti softwaru jsme se dostali do stavu, kdy všechny běžné potřeby uživatele lze uspokojit svobodným softwarem (operační systém, nástroje, aplikace…), a uživatel má tak plnou kontrolu nad svým systémem, v oblasti hardwaru jsou stále uživatelé většinou závislí na tom proprietárním-uzavřeném. Uzavřenost – jak softwaru, tak hardwaru – má řadu negativních dopadů. Jde buď o těžko odhalitelné a často neopravitelné chyby nebo o záměrně škodlivé vlastnosti. Poslední roky jsou v tomto ohledu zvlášť bohaté: Intel AMT/ME (trojský kůň přímo v procesoru, před kterým nás FSF varovala už někdy v roce 2014) nebo Spectre a Meltdown. Ať už jde o chybu, záměrně škodlivou vlastnost nebo kombinaci obojího, důsledky jsou stejné – počítač přestává poslouchat svého uživatele/vlastníka a řídí se pokyny někoho jiného, komu buď předává naše data (šifrovací klíče, citlivé soubory…) nebo nám zabrání v používání počítače (např. DRM), pozmění či smaže data. Tohle je jednoznačně nežádoucí stav – a to bez ohledu na to, zda jste běžný uživatel, banka, výrobní firma, vládní organizace nebo armáda. Současná situace v oboru je hodně špatná.
Nicméně i v případě hardwaru se situace zlepšuje. Cestou, jak z toho ven, je otevřenost a veřejná kontrola – nad zdrojovým kódem i nad hardwarovými návrhy. Máme poměrně silné hnutí tvůrců otevřeného hardwaru, vzniká spousta desek a zařízení, ke kterým jejich autoři zveřejňují schémata a seznamy součástek, zdrojové kódy firmwarů, návrhy pro FPGA a návody na výrobu. Ale i v těchto případech zůstává většinou zásadní část systému – procesor počítače nebo MCU (microcontroller) menšího zařízení – uzavřená. Není to vinou autorů těchto návrhů, ale tím, že otevřené součástky na trhu chybí – nebo alespoň donedávna chyběly. Ovšem i tady jsme na dobré cestě: máme architekturu OpenPOWER pro výkonné servery a pracovní stanice a máme RISC-V a lowRISC pro menší zařízení.
Pojďme se teď podívat na jednu vývojovou desku, která je plně otevřená – a to až na úroveň hardwaru a samotného čipu. Mám tady pár desek HiFive1 od SiFive s čipem RISC-V. Sice nám nenahradí počítač a nepustíme si na ní GNU/Linux, ale přesto je poměrně výkonná a dá se na ní postavit spousta užitečných zařízení.
Tato deska má shodný tvar a rozměry jako Arduino Uno. Není ovšem vybavena klasickým jednočipem ATmega od Atmelu, ale o dost výkonnějším čipem SiFive Freedom E310 (FE310) s instrukční sadou RISC-V běžícím na frekvenci 320 MHz. Mimochodem: kolik MHz měl váš první počítač a co všechno dokázal? Specifikaci nalezneme na stránkách výrobce HiFive1:
Na Crowd Supply se pak můžeme podívat na srovnání s Arduinem:
Celá deska v současnosti (srpen 2018) stojí 59 USD, což je poměrně dost, ale samotný čip vyjde v přepočtu na koruny kolem stovky – což už je přijatelné a když navrhujete zařízení v ceně několika stovek nebo pár tisícikorun, tak vás ta stovka za hlavní čip nemusí moc trápit.
A to se bavíme o cenách při nákupu jednotek kusů – ve větším množství a v budoucnu budou ceny výrazně nižší. Mimochodem: ten zázrak, kvůli kterému si to kupujete, není největší čip na desce, ale ten vpravo uprostřed:
Sadu nástrojů potřebných pro vývoj nalezneme na stránkách výrobce: RISC-V Tools – mají tam jak IDE, tak samotné SDK a GCC pro RISC-V.
Kromě toho můžeme použít i PlatformIO, které RISC-V rovněž podporuje. Pro prvotní vyzkoušení je to asi nejpohodlnější cesta – o tomto nástroji jsem psal už v předchozím článku o IoT a TTN. Při instalaci přes PlatformIO se nám stáhne GCC a další nástroje pro RISC-V:
$ du -s .platformio/packages/toolchain-riscv/ 1,1G .platformio/packages/toolchain-riscv/
Začneme nejjednodušším programem (nalezneme mezi příklady v PlatfomIO):
#include <stdio.h>
int main()
{
puts("hello world!\n");
return 0;
}
Kompilace a spuštění:
# zkompilujeme:
platformio run -e freedom-e300-hifive1
# nastavíme si práva na USB zařízení
# (konkrétní čísla zjistíme příkazem lsusb):
sudo chown root:hacker /dev/bus/usb/003/014
# nahrajeme do zařízení:
platformio run -e freedom-e300-hifive1 --target upload
# sledujeme výpis sériového portu:
platformio device monitor --baud 115200
A po sériové lince nám po resetu zařízení přijde text „hello world!“. To sice není nic světoborného, ale víme, že deska funguje, komunikuje s naším počítačem a jsme schopni do ní nahrát vlastní program – což je celkem zásadní předpoklad pro jakýkoli další vývoj :-)
RISC-V, lowRISC(?) a OpenPOWER jsou budoucnost svobodného/otevřeného hardwaru. LowRISC vypadá sice slibně, ale zatím toho moc hmatatelného nepředvedli. OpenPOWER zase vyžaduje dost velkou investici. Ale RISC-V a konkrétně deska HiFive1 od SiFive je něco, co si můžete koupit teď hned a nezruinuje to váš rodinný rozpočet. Kromě toho SiFive dělá i HiFive Unleashed což je větší a výkonnější vývojová deska, na které si už plnohodnotný GNU/Linux pustíte, ale u ní mi poměr cena/výkon nepřijde moc příznivý (pro praktické použití je potřeba dokoupit ještě rozšiřující kartu, která přidá PCI Express, M.2 a SATA). To už bych si spíš připlatil za ten OpenPOWER.
Témata: [C++] [C] [svobodný hardware] [hardware] [IoT]
Tento článek zatím nikdo nekomentoval