SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

Up Board bardzo dobrze poradził sobie zarówno pod Windowsem jak i Linuksem, zaskakując ciekawymi wynikami oraz możliwością wszechstronnego zastsowania. Dziś sprawdzimy go na zupełnie innym polu, a mianowicie w tematyce automatyki domowej w tworzeniu inteligentnego domu.

Dzięki uprzejmości firmy CSI otrzymałem również zestaw Smart Home Kit wyprodukowany przez firmę Eltako, wchodzącej w skład grupy EnOcean Alliance. Zestaw ten pozwala na rozpoczęcie przygody z projektowaniem i budowaniem własnej struktury inteligentnego domu.

Wszelkie urządzenia bazujące na technologii EnOcean charakteryzują się bardzo ciekawą cechą, która polega na tym, że moduły zasilają się same, wykorzystując dostępną energię ze swojego otoczenia (Energy Harvesting). W przypadku elementów mechanicznych jest to przyłożona do nich siła, natomiast czujniki pożytkują energię słoneczną lub cieplną.

Podłączenie FAM4PI z Up-Board

Reklama

W poprzednim wpisie sprawdzaliśmy jak Up Board działa pod kontrolą 64-bitowego systemu operacyjnego Windows 10. Dziś natomiast zobaczymy, czy Up Board wypadnie równie dobrze przy współpracy z systemami Linux.

Na chwilę obecną producent oferuje wsparcie dla systemu Ubuntu 14.04 (Trusty Tahr), Ubuntu 16.04 (Xenial Xerus) oraz udostępnia autorską dystrybucję ubilinux™, bazującą na Debian Jessie.

O ile ubilinux jest pełnym obrazem systemu operacyjnego gotowym do zainstalowania, to w przypadku rodziny Ubuntu przygotowano specjalne repozytorium z aktualizacją jądra Linux 4.4.0, pozwalającą na obsługę 40-pinowego portu rozszerzeń GPIO oraz dodatkowych podzespołów.

Warto wspomnieć, że wspierany jest również projekt Yocto w wersji 2.1, który pozwala na zbudowanie customowej dystrubucji za pomocą gotowego szablonu dla Up Board.

Dzięki uprzejmości sklepu ElTy.pl, dotarła do mnie najnowsza płytka Banana Pi M2, wyposażona w czterordzeniowy układ SOC A31S ARM Cortex-A7 taktowany zegarem 1GHz oraz układem graficznym PowerVR SGX544MP2. Do dyspozycji dostajemy 1GB pamięci DDR3, która jest współdzielona również z układem graficznym.

Takie parametry nie stawiają nowego Banana Pi M2 wśród topowych urządzeń tego typu, jednak w swoim segmencie będzie konkurował z płytkami takimi jak Raspberry Pi 2 oraz ODROID-C1.

System operacyjny uruchamiany jest z karty microSD o dopuszczalnej pojemności 64GB. Na uwagę zasługuje dostępność gigabitowego portu Ethernet oraz karty Wi-Fi. Wymiary płytki wynoszą 92mm x 60mm, a więc rozmiarowo jest takie samo jak poprzednia wersja. Banana Pi M2 została dodatkowo wyposażona w 4 porty USB 2.0, odbiornik podczerwieni IR, gniazdo słuchawkowe, wyjśceie HDMI oraz jeden port USB OTG.

Jeśli chodzi o złącza to dostajemy interfejs CSI do podłączenia kamery oraz interfejs LVDS/RGB. Płytka może być zasilana z gniazda DC lub gniazda microUSB. Zalecana wydajność zasilacza to 5V/2A. Oczywiście nie mogło zabraknąć 40-pinowego portu rozszerzeń GPIO, UART, I2C, SPI, CAN bus, ADC, PWM, zgodnego z wyprowadzeniami znanymi chociażby z Raspberry Pi B+.

Na chwilę obecną dostępne są obrazy systemów Android 4.2, Android 4.4, Raspbian, Fedora, Bananian oraz Google Rpitc. Jeśli chodzi o dystrybucje Linuksa, to spotkamy tutaj jądro w wersji 4.0.0-rc2.

Raspbian Wheezy

Fedora 22

Google Rpitc (Debian Jessie)

Niestety Bananian odmówił załadowania się na nowym Banana Pi M2. Również na forum dyskusyjnym przewijają się pojedyncze wątki o tym problemie. Trochę szkoda, ponieważ miałem głęboką nadzieję sprawdzić, jak sprawuje się poniekąd "dedykowana" dystrybucja. Na dzień dzisiejszy trzymam mocno kciuki, że problem zostanie niebawem rozwiązany, ponieważ Bananian w dzienniku zmian, jako jedyny wspomina o poprawnie działającym dźwięku, 1Gbit porcie Ethernet czy obsłudze Wi-Fi.

Pozostałe dystrybucje średnio lub wcale sobie z tym radzą. Praktycznie jedynym pocieszeniem jest działający Ethernet oraz przyzwoicie działający pulpit.

Soft, softem, miejmy nadzieję, że zostanie wkrótce dopracowany, więc przejdźmy do porównania wydajności nowego banana z Raspberry Pi oraz Odroid-C1:

Benchmark pod Linuksem

A co z Androidem?

Tutaj również bez rewelacji. Zarówno Android 4.2 jak Android 4.4 nie uruchomiły się na kilku testowanych kartach pamięci. Szczerze mówiąc nie wiem co o tym myśleć, z jednej strony można usprawiedliwić to wiekiem dziecięcym, z drugiej strony jest to jednak przykre, ponieważ producent nie przygotował w pełni działających obrazów.

Dla kogo Banana Pi M2?

Tylko i wyłącznie dla zapaleńców. Jeśli dopiero zacząłeś poruszać się w świecie płytek deweloperskich, radzę wstrzymać się z zakupem nowego Banana Pi M2 dopóki producent nie przygotuje w pełni działających obrazów systemów. Sprawę Linuksa można byłoby jakoś przełknąć na rzecz działającego Androida, jednak w tym wypadku Banana Pi M2 nie ma nic na swoją obronę.

Tym akcentem odkładam Banana Pi M2 do pudełka, aby powrócić do niego za jakiś czas.

W poprzednim wpisie pokazywałem Wam,  jak Cubieboard 4 sprawuje się pod Androidem. Tym razem sprawdzimy jego zachowanie pod systemem Linux. Na chwilę obecną dostępne są dwie dystrybucje: Linaro oraz Debian Server. 

Pierwsze co mnie pozytywnie zaskoczyło, to sposób instalacji systemu. W poprzednich płytkach Cubieboard proces nie należał do przyjemnych, ponieważ wymagał dodatkowego oprogramowania LiveSuit do flashowania i operowania przyciskiem FEL. Tym razem wystarczy wgrać obraz systemu na kartę microSD, włożyć do czytnika i podłączyć zasilanie, a cały proces możemy podglądać na monitorze. Kiedy instalacja dobiegnie końca, "Cubie" automatycznie się wyłączy i będziemy mogli wyciągnąć kartę oraz zresetować urządzenie.

Chcąć powrócić do systemy Android, musimy zaś posłużyć się programem LiveSuit (Linux) lub PhoenixSuit (Windows) trzymając przysick "boot" podczas podłączenia do USB.

Gdzie jest Wi-Fi?

O ile karta ethernet działa od razu, to niestety z włączeniem karty Wi-Fi będziemy musieli się po gimnastykować. Na szczęście nie czeka nas kompilacja jądra, ponieważ AP6330 jest dobrze obsługiwana przez moduł bcmdhd. Jak ją odpalić?

Do pliku /etc/rc.local dodajemy polecenie modprobe i nazwę wymaganego modułu:

  1. modprobe bcmdhd

Tworzymy plik /etc/wpa_supplicant.conf i wpisujemy dane do punktu dostępowego:

  1. ctrl_interface=/var/run/wpa_supplicant
  2. network={
  3.     ssid="NAZWA SIECI"
  4.     psk="HASLO"
  5. }

Na koniec, w pliku /etc/network/interfaces dodajemy wpis:

  1. auto wlan0
  2. iface wlan0 inet dhcp
  3. wpa-conf /etc/wpa_supplicant.conf

Restart i gotowe.

Testy pamięci eMMC

Prędkości zapisu i odczytu nie powalają z nóg, gdyż Cubieboard 4 wyposażony jest w starszy rodzaj pamięci eMMC.

Zobaczmy jeszcze bardziej naturalne wyniki, w których uwzględnimy synchronizację nośnika po zapisie. Dla objaśnienia podaję regułę, w jaki sposób została ona określona:

time sh -c "dd if=/dev/zero of=/home/file bs=4k count=200000 && sync"

200000+0 records in
200000+0 records out
819200000 bytes (819 MB) copied, 62.9674 s, 13.0 MB/s

real 1m9.723s
user 0m0.170s
sys 0m8.880s

sync ; sh -c 'echo 3 > /proc/sys/vm/drop_caches'
time sh -c "dd if=/home/file of=/dev/zero bs=4k count=200000"

200000+0 records in
200000+0 records out
819200000 bytes (819 MB) copied, 29.2347 s, 28.0 MB/s

real 0m29.334s
user 0m0.110s
sys 0m3.330s

Czas zapisu bez synchronizacji wyniósł 62,96 sekundy. Z synchronizacją dysku po zapisie, czas ten zwiększył się do 69,72 sekundy, a więc rzeczywista prędkość to (819200000/1024/1024) / 69.72 = 11,2 MB/s.

Testy CPU

Jeśli chodzi o jednostkę Allwinner A80 to wypada całkiem nieźle. Wyniki jakie uzyskuje w testach są nieco wolniejsze od Exynosa 5422 zastosowanego w ODROID-XU3. Wyjątek stanowi dekompresja pliku BZIP2, gdzie spore znaczenie ma prędkość pamięci eMMC.

Testy GPU

Tutaj wielkie zaskoczenie. W testach glmark2-es2 off-screen przewaga nad XU3 jest 2.5-krotna. Dla pewności wykonałem nawet testy dwukrotnie na obu platformach. Wnioski mogą być dwa. Albo obsługa układu Mali w ODROID-XU3 jest nie do końca przemyślana, albo PowerVR G6230 robi to wyjątkowo dobrze!

linaro@cubieboard4:~$ glmark2-es2 --off-screen
=======================================================
glmark2 2012.08
=======================================================
OpenGL Information
GL_VENDOR: Imagination Technologies
GL_RENDERER: PowerVR Rogue G6230
GL_VERSION: OpenGL ES 3.1 build 1.4@3064661
=======================================================
[build] use-vbo=false: FPS: 108 FrameTime: 9.259 ms
[build] use-vbo=true: FPS: 1461 FrameTime: 0.684 ms
[texture] texture-filter=nearest: FPS: 3614 FrameTime: 0.277 ms
[texture] texture-filter=linear: FPS: 3601 FrameTime: 0.278 ms
[texture] texture-filter=mipmap: FPS: 3629 FrameTime: 0.276 ms
[shading] shading=gouraud: FPS: 843 FrameTime: 1.186 ms
[shading] shading=blinn-phong-inf: FPS: 1331 FrameTime: 0.751 ms
[shading] shading=phong: FPS: 1200 FrameTime: 0.833 ms
[bump] bump-render=high-poly: FPS: 510 FrameTime: 1.961 ms
[bump] bump-render=normals: FPS: 3664 FrameTime: 0.273 ms
[bump] bump-render=height: FPS: 3963 FrameTime: 0.252 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 2310 FrameTime: 0.433 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 2217 FrameTime: 0.451 ms
[pulsar] light=false:quads=5:texture=false: FPS: 1434 FrameTime: 0.697 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 127 FrameTime: 7.874 ms
[desktop] effect=shadow:windows=4: FPS: 264 FrameTime: 3.788 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 148 FrameTime: 6.757 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 148 FrameTime: 6.757 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 100 FrameTime: 10.000 ms
[ideas] speed=duration: FPS: 487 FrameTime: 2.053 ms
[jellyfish] <default>: FPS: 461 FrameTime: 2.169 ms
[terrain] <default>: FPS: 22 FrameTime: 45.455 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 2322 FrameTime: 0.431 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 2346 FrameTime: 0.426 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 2320 FrameTime: 0.431 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 2327 FrameTime: 0.430 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 2355 FrameTime: 0.425 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 2349 FrameTime: 0.426 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 2353 FrameTime: 0.425 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 2377 FrameTime: 0.421 ms
=======================================================
glmark2 Score: 1679
=======================================================

Pobór mocy

Na Wasze specjalne życzenie przyjrzałem się również poborowi energii:

  Cubieboard 4 ODROID-XU3
Xorg 3,1 W 4,0 W
Xorg + Logitech Unifying 3,8 W 4,8 W
Xorg + Logitech Unifying + Wi-Fi 4,6 W 5,3 W

Kolejne testy polegały na obciążaniu kolejnych rdzeni na 100% przy konfiguracji Xorg + Logitech Unifying + Wi-Fi:

  Cubieboard 4 ODROID-XU3
1 rdzeń 7,4 W 9,6 W
2 rdzenie 9,6 W 13,1 W
4 rdzenie 17,8 W 16,4 W
8 rdzeni 22,0 W 17,0  W

Na zakończenie pobór mocy przy teście glmark2-es2 -s 1920x1080 oraz konfiguracji Xorg + Logitech Unifying + Wi-Fi:

  Cubieboard 4 ODROID-XU3
glmark2-es2 -s 1920x1080 6,9 W 8,8 W

Podsumowanie

Wyniki Cubieboard 4 wyglądają dobrze. Jedyne nie udało mi się sprawdzić działania XBMC, ponieważ w repo dostępny jest leciwy Frodo, który morduje procesor materiałem 1080p dekodując strumień programowo. Niebawem postaram się skompilować coś nowszego i sprawdzić jak spisze się nowsza wersja, wszak pod Androidem płynnie odtwarzany jest materiał 4K.

Zastrzeżenie budzi jedynie powolna pamięć eMMC 4.5. Jednak jeśli przez chwilę się zastanowię, to prędzej wykorzystałbym do tego celu dysk twardy, który bez problemu podepniemy pod USB 3.0

Hardkernel wydaje się mieć chrapkę na segment, który zdominował Raspberry Pi, uderzając w niego swoim budżetowym produktem ODROID-C1. Nowe dziecko koreańskiego producenta wyposażone zostało w czterordzeniowy układ SoC Amlogic Cortex-A5 (ARMv7) taktowany częstotliwością 1.5Ghz. Układ graficzny stanowi popularny Mali-450 MP2 z obsługą standardów OpenGL ES 2.0/1.1.

Jednostka ta została wyposażona w pamięć DDR3 SDRAM o rozmiarze 1GB, gigabitowy port Ethernet, 40-pinowe złącze GPIO, cztery porty USB 2.0 oraz odbiornik podczerwieni. System operacyjny (Linux lub Android) może być uruchomiony z karty pamięci MicroSD lub pamięci eMMC 4.5.

ODROID-C1 wyposażony jest również w odbiornik podczerwieni, który bez problemu powinien obsłużyć wszystkie nadajniki pracujące w standardzie 37.9kHz wykorzystując do tego celu specjalnie przygotowany program odroid_remote. Oprócz wspomnianych 4 portów USB 2.0, dostępny jest również pojedyncze gniazdo Micro USB pracujące w trubie OTG, które możemy w razie konieczności wykorzystać jako dodatkowy port. Należy jednak pamiętać, że nie możemy zasilać z niego ODROIDa.

Zastanawiacie się ile przyjdzie nam zapłacić za te cudeńko? ODROID-C1 został wyceniony na kwotę 35$, czyli w takiej samej cenie jak Raspberry Pi. W polskim sklepie dostaniemy go bez problemu za 209 zł

40-pinowe gniazdo GPIO

Do dyspozycji dostajemy także 40-pinowe gniazdo rozszerzeń, na którym znajdziemy wyprowadzania GPIO/I2C/SPI/UART/ADC. Do obsługi wystarczy nam jedynie znajomość języka C/C++ lub Pythona. Z pomocą przychodzi również przeportowana biblioteka WiringPi, która jest doskonale znana przez "malinowców". Projektując urządzenie pamiętajcie, że ten port rozszerzeń nie jest zgodny z portem rozszerzeń z Raspberry Pi B+ (piny #37, #38, #40 pracują tutaj jako wejścia analogowe o dopuszczalnym poziomie 1.8V).

WiringPi GPIO# Export GPIO# ODROID-C PIN Label HEADER Label ODROID-C PIN Export GPIO# WiringPi GPIO#
        3V3 1 2 5V0        
  74   I2CA_SDA SDA1 3 4 5V0        
  75   I2CA_SCL SCL1 5 6 GND        
7 83   GPIOY.BIT3 #83 7 8 TXD1 TXD_B   113  
        GND 9 10 RXD1 RXD_B   114  
0 88   GPIOY.BIT8 #88 11 12 #87 GPIOY.BIT7   87 1
2 116   GPIOX.BIT19 #116 13 14 GND        
3 115   GPIOX.BIT18 #115 15 16 #104 GPIOX.BIT7   104 4
        3V3 17 18 #102 GPIOX.BIT5   102 5
12 107 MOSI GPIOX.BIT10 MOSI 19 20 GND        
13 106 MISO GPIOX.BIT9 MISO 21 22 #103 GPIOX.BIT6   103 6
14 105 SCLK GPIOX.BIT8 SCLK 23 24 CE0 GPIOX.BIT20 CE0 117 10
        GND 25 26 #118 GPIOX.BIT21   118 11
  76   I2CB_SDA SDA2 27 28 SCL2 I2CB_SCL   77  
21 101   GPIOX.BIT4 #101 29 30 GND        
22 100   GPIOX.BIT3 #100 31 32 #99 GPIOX.BIT2   99 26
23 108   GPIOX.BIT11 #108 33 34 GND        
24 97   GPIOX.BIT0 #97 35 36 #98 GPIOX.BIT1   98 27
      ADC.AIN1 AIN1 37 38 1V8 1V8      
        GND 39 40 AIN0 ADC.AIN0      

Znacząca przewaga nad Raspberry Pi

ODROID-C1 znacznie przewyższa możliwościami "malinę", biorąc pod uwagę głównie czynnik finansowy. Różnice są ogromne - zarówno pod względem sprzętowym jak i wydajnościowym. Spójrzmy na małe porównanie, które mówi wręcz za siebie:

  ODROID-C1 RPi Model-B+
Procesor Amlogic S805 Broadcom BCM28351
Rodzina ARMv7 @28nm ARM11 @40nm
Liczba rdzeni 4 1
RAM 1GB 32bit DDR3 512MB 32bit LP-DDR2
Układ graficzny 2x ARM® Mali 450MP 1 x VideoCore IV
Taktowanie procesora 1.5GHz 700Mhz
Taktowanie rdzenia graficznego 600MHz 250MHz
Taktowanie pamięci 792MHz 400MHz
Pamięć FLASH Micro-SD UHS-1
100Mhz/SDR50
Micro-SD
50Mhz/SDR25
Pamięć eMMC Tak Nie
USB 2.0 4 4
USB 2.0 OTG 1 Nie
Ethernet 10/100/1000 Mbit/s 10/100 Mbit/s
Wyjście wideo HDMI HDMI / Composite RCA
Wyjście audio HDMI HDMI / 3.5mm Jack
Wejście kamery USB 720p MIPI CSI 1080p
Zegar RTC Tak Nie
Odbiornik podczerwieni Tak Nie
Port rozszerzeń 40pin
GPIO/UART/SPI/I2C/ADC
40pin
GPIO/UART/SPI/I2C/I2S
ADC 2 kanały po 10-bitów Nie
Rozmiar 85 x 56mm 85 x 56mm
Waga 40g 42g

A jak z wydajnością w starciu z "maliną"? Tutaj również walka wydaję się być zbędna. W zależności od przeprowadzonych testów, ODROID-C1 osiąga od 4x do 8x lepsze wyniki, niżeli konkurent.

Ubuntu i porównanie z innymi platformami

Na chwilę obecną dostępny jest standardowy Ubuntu 14.04 w wersji 1.2 z jądrem 3.10.64, którego znamy już z poprzednich ODROID-ów. Oczywiście nie zapomniano o narzędziu ODROID Utility i odtwarzaczu Kodi, który dobrze sobie radzi z materiałem wideo kodowanym z bitrate 120Mbps!

Prędkość pamięci eMMC również jest na zadowalającym poziomie. Zapis kształtuje się na poziomie 46MB/s, a odczyt na poziomie 81MB/s. Są to wyniki porównywalne jakie osiąga Jetson TK1.

time sh -c "dd if=/dev/zero of=/home/file bs=4k count=200000 && sync"

200000+0 records in
200000+0 records out
819200000 bytes (819 MB) copied, 17.788 s, 46.1 MB/s

real    0m18.741s
user    0m0.290s
sys    0m7.030s

sync ; sh -c 'echo 3 > /proc/sys/vm/drop_caches'
time sh -c "dd if=/home/file of=/dev/zero bs=4k count=200000"

200000+0 records in
200000+0 records out
819200000 bytes (819 MB) copied, 10.0623 s, 81.4 MB/s

real    0m10.103s
user    0m0.080s
sys    0m2.670s

Zobaczmy jak wygląda to dokładniej w pojedynku z innymi platformami:

 

Powyższe wyniki jasna pokazują, że pomimo tego, że ORDOID-C1 jest najsłabszy ze swojej rodziny, to jest zdecydowanie lepszym wyborem niż platformy wykorzystujące układy Allwinner A10/A20 czy RK3066. Pamiętajmy jednak o bardzo niskiej cenie C1 jako bezpośredniego konkurenta dla RaspberryPi.

Rzućmy jeszcze okiem na wyniki glmark2 dla OpenGL ES:

=======================================================
    glmark2 2012.08
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-450 MP
    GL_VERSION:    OpenGL ES 2.0
=======================================================
[build] use-vbo=false: FPS: 159 FrameTime: 6.289 ms
[build] use-vbo=true: FPS: 184 FrameTime: 5.435 ms
[texture] texture-filter=nearest: FPS: 184 FrameTime: 5.435 ms
[texture] texture-filter=linear: FPS: 190 FrameTime: 5.263 ms
[texture] texture-filter=mipmap: FPS: 189 FrameTime: 5.291 ms
[shading] shading=gouraud: FPS: 146 FrameTime: 6.849 ms
[shading] shading=blinn-phong-inf: FPS: 140 FrameTime: 7.143 ms
[shading] shading=phong: FPS: 117 FrameTime: 8.547 ms
[bump] bump-render=high-poly: FPS: 95 FrameTime: 10.526 ms
[bump] bump-render=normals: FPS: 186 FrameTime: 5.376 ms
[bump] bump-render=height: FPS: 173 FrameTime: 5.780 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 104 FrameTime: 9.615 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 56 FrameTime: 17.857 ms
[pulsar] light=false:quads=5:texture=false: FPS: 198 FrameTime: 5.051 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 52 FrameTime: 19.231 ms
[desktop] effect=shadow:windows=4: FPS: 146 FrameTime: 6.849 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 35 FrameTime: 28.571 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[ideas] speed=duration: FPS: 99 FrameTime: 10.101 ms
[jellyfish] <default>: FPS: 98 FrameTime: 10.204 ms
[terrain] <default>: Unsupported
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 197 FrameTime: 5.076 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 115 FrameTime: 8.696 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 195 FrameTime: 5.128 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 149 FrameTime: 6.711 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 99 FrameTime: 10.101 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 144 FrameTime: 6.944 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 142 FrameTime: 7.042 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 138 FrameTime: 7.246 ms
=======================================================
                                  glmark2 Score: 138
=======================================================

oraz w trybie offscreen:

=======================================================
    glmark2 2012.08
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-450 MP
    GL_VERSION:    OpenGL ES 2.0
=======================================================
[build] use-vbo=false: FPS: 205 FrameTime: 4.878 ms
[build] use-vbo=true: FPS: 280 FrameTime: 3.571 ms
[texture] texture-filter=nearest: FPS: 351 FrameTime: 2.849 ms
[texture] texture-filter=linear: FPS: 294 FrameTime: 3.401 ms
[texture] texture-filter=mipmap: FPS: 305 FrameTime: 3.279 ms
[shading] shading=gouraud: FPS: 193 FrameTime: 5.181 ms
[shading] shading=blinn-phong-inf: FPS: 192 FrameTime: 5.208 ms
[shading] shading=phong: FPS: 157 FrameTime: 6.369 ms
[bump] bump-render=high-poly: FPS: 106 FrameTime: 9.434 ms
[bump] bump-render=normals: FPS: 337 FrameTime: 2.967 ms
[bump] bump-render=height: FPS: 357 FrameTime: 2.801 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 136 FrameTime: 7.353 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 70 FrameTime: 14.286 ms
[pulsar] light=false:quads=5:texture=false: FPS: 406 FrameTime: 2.463 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 71 FrameTime: 14.085 ms
[desktop] effect=shadow:windows=4: FPS: 200 FrameTime: 5.000 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 40 FrameTime: 25.000 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[ideas] speed=duration: FPS: 122 FrameTime: 8.197 ms
[jellyfish] <default>: FPS: 128 FrameTime: 7.812 ms
[terrain] <default>: Unsupported
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 352 FrameTime: 2.841 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 171 FrameTime: 5.848 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 323 FrameTime: 3.096 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 220 FrameTime: 4.545 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 137 FrameTime: 7.299 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 206 FrameTime: 4.854 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 206 FrameTime: 4.854 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 217 FrameTime: 4.608 ms
=======================================================
                                  glmark2 Score: 214
=======================================================

Mówcie co chcecie, ale współczynnik wydajności całej platformy do ceny jest zdumiewający. W stresie bez radiatora, główna jednostka nie przekroczyła temperatury 50 stopni Celsjusza:

A co Androidem?

Oczywiście jest dostępny jest Adnroid 4.4.2, który działa bardzo przyzwoicie, osiągając wynik 14989 punktów w programie AnTuTu. Na tle top smartfonów wypada trochę blado, ale i tak jest bardzo dobrze i sprawdzi się również w roli domowego centrum rozrywki.

Dla osób ciekawych wrażeń, jest również osiągalny Android 5.0.2 Lollipop: