SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

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.

Created with Highcharts 4.0.4MB/s / więcej - lepiejZobacz wyniki wszystkich platformhdparm - Timing cached readshdparm -tT820816786755698Odroid C2 / eMMCOdroid C2 / SDCubieboard 4 / eMMCOdroid C1 / eMMCOdroid C0 / eMMCOdroid C2 / eMMCOdroid C2 / SDCubieboard 4 / eMMCOdroid C1 / eMMCOdroid C0 / eMMC050100150200250300350400450500550600650700750800850900
Created with Highcharts 4.0.4MB/s / więcej - lepiejZobacz wyniki wszystkich platformhdparm - Timing buffered disk readshdparm -tT3732282720Cubieboard 5 / eMMCOdroid C2 / SDCubieboard 4 / eMMCOrange Pi Plus / SATABanana Pi M2 / SDCubieboard 5 / eMMCOdroid C2 / SDCubieboard 4 / eMMCOrange Pi Plus / SATABanana Pi M2 / SD0102030402.557.512.51517.522.52527.532.53537.5

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.

Created with Highcharts 4.0.4MB/s / więcej - lepiejZobacz wyniki wszystkich platformPrędkość zapisudd if=/dev/zero of=/home/file bs=4k count=20000014.11411.211.210.6Raspberry Pi 2 1000MHz / SDOrange Pi Plus / SATACubieboard 4 / eMMCNanoPi Neo 912MHz / SDOdroid C0 / SDRaspberry Pi 2 1000MHz / SDOrange Pi Plus / SATACubieboard 4 / eMMCNanoPi Neo 912MHz / SDOdroid C0 / SD0123456789101112131415
Created with Highcharts 4.0.4MB/s / więcej - lepiejZobacz wyniki wszystkich platformPrędkość odczytudd if=/home/file of=/dev/zero bs=4k count=20000035.82726.623.719.5Cubieboard 5 / eMMCOrange Pi Plus / SATACubieboard 4 / eMMCOdroid C2 / SDNanoPi Neo 912MHz / SDCubieboard 5 / eMMCOrange Pi Plus / SATACubieboard 4 / eMMCOdroid C2 / SDNanoPi Neo 912MHz / SD01020302.557.512.51517.522.52527.532.53537.540

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.

Created with Highcharts 4.0.4sekundy / mniej - lepiejZobacz wyniki wszystkich platformKompresja pliku WAV do MP3 (4min)time lame sound.wav sound.mp31818202228Odroid XU3 / SDOdroid XU3 Lite / eMMCCubieboard 4 / eMMCUp Board 4GB / eMMCOdroid C2 / eMMCOdroid XU3 / SDOdroid XU3 Lite / eMMCCubieboard 4 / eMMCUp Board 4GB / eMMCOdroid C2 / eMMC01020302.557.512.51517.522.52527.5
Created with Highcharts 4.0.4sekundy / mniej - lepiejZobacz wyniki wszystkich platformKompresja pliku TAR jądra 3.15.5bzip2 -z -1 linux-3.15.5.tar132134146182208Odroid XU3 Lite / eMMCUp Board 4GB / eMMCCubieboard 4 / eMMCOdroid U3 / eMMCNanoPi M3 / SDOdroid XU3 Lite / eMMCUp Board 4GB / eMMCCubieboard 4 / eMMCOdroid U3 / eMMCNanoPi M3 / SD020406080100120140160180200220
Created with Highcharts 4.0.4sekundy / mniej - lepiejZobacz wyniki wszystkich platformDekompresja pliku BZIP2 jądra 3.15.5bzip2 -d linux-3.15.5.tar.bz25355575867Odroid C2 / eMMCOdroid C2 / SDCubieboard 4 / eMMCOdroid XU3 / SDCubieboard 5 / eMMCOdroid C2 / eMMCOdroid C2 / SDCubieboard 4 / eMMCOdroid XU3 / SDCubieboard 5 / eMMC051015202530354045505560657075
Created with Highcharts 4.0.4MB/s / więcej - lepiejZobacz wyniki wszystkich platformWydajność pamięci - 1 rdzeńsysbench --test=memory --memory-block-size=1M --memory-total-size=3G run5,2874,7864,2604,0823,607Odroid XU3 / 32-bitOdroid XU3 Lite / 32-bitCubieboard 4 / 32-bitOdroid U3 / 32-bitJetson TX1 / 32-bitOdroid XU3 / 32-bitOdroid XU3 Lite / 32-bitCubieboard 4 / 32-bitOdroid U3 / 32-bitJetson TX1 / 32-bit050010001500200025003000350040004500500055006000
Created with Highcharts 4.0.4sekundy / mniej - lepiejZobacz wyniki wszystkich platformWydajność CPU - 1 rdzeń (max prime 5k)sysbench --test=cpu --cpu-max-prime=5000 --time=0 --events=10000 run3135395061Odroid XU4 / 32-bitOdroid XU3 Lite / 32-bitCubieboard 4 / 32-bitOdroid U3 / 32-bitCubieboard 5 / 32-bitOdroid XU4 / 32-bitOdroid XU3 Lite / 32-bitCubieboard 4 / 32-bitOdroid U3 / 32-bitCubieboard 5 / 32-bit05101520253035404550556065
Created with Highcharts 4.0.4sekundy / mniej - lepiejZobacz wyniki wszystkich platformWydajność CPU - wsztystkie rdzenie (max prime 5k)sysbench --test=cpu --cpu-max-prime=5000 --num-threads=N --time=0 --events=10000 run66.977.58.3Odroid XU4 / 32-bitJetson TK1 / 32-bitCubieboard 4 / 32-bitJetson TX1 / 32-bitNanoPi M3 / 32-bitOdroid XU4 / 32-bitJetson TK1 / 32-bitCubieboard 4 / 32-bitJetson TX1 / 32-bitNanoPi M3 / 32-bit00.511.522.533.544.555.566.577.588.59
Created with Highcharts 4.0.4liczba iteracji w tysiącach / więcej - lepiejZobacz wyniki wszystkich platformOpenSSL Speed AES - 1 rdzeńopenssl speed -multi 1 aes-256-cbc70,99064,90758,32145,79643,105Odroid XU4 / 32-bitOdroid XU3 Lite / 32-bitCubieboard 4 / 32-bitOdroid U3 / 32-bitNanoPi M3 / 32-bitOdroid XU4 / 32-bitOdroid XU3 Lite / 32-bitCubieboard 4 / 32-bitOdroid U3 / 32-bitNanoPi M3 / 32-bit0k5k10k15k20k25k30k35k40k45k50k55k60k65k70k75k
Created with Highcharts 4.0.4liczba iteracji w tysiącach / więcej - lepiejZobacz wyniki wszystkich platformOpenSSL Speed AES - wszystkie rdzenieopenssl speed -multi N aes-256-cbc307,800306,525298,456241,030207,554Odroid XU4 / 32-bitOdroid XU3 / 32-bitCubieboard 4 / 32-bitCubieboard 5 / 32-bitBanana Pi M3 / 32-bitOdroid XU4 / 32-bitOdroid XU3 / 32-bitCubieboard 4 / 32-bitCubieboard 5 / 32-bitBanana Pi M3 / 32-bit0k100k200k300k25k50k75k125k150k175k225k250k275k325k

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!

Created with Highcharts 4.0.4punkty / więcej - lepiejZobacz wyniki wszystkich platformglmark2-es2 (OpenGL ES)glmark2-es2 --off-screen3,3341,6791,265662612Jetson TX1 / 32-bitCubieboard 4 / 32-bitUp Board 4GB / 64-bitOdroid XU3 / 32-bitOdroid XU3 Lite / 32-bitJetson TX1 / 32-bitCubieboard 4 / 32-bitUp Board 4GB / 64-bitOdroid XU3 / 32-bitOdroid XU3 Lite / 32-bit0100020003000250500750125015001750225025002750325035003750

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

Komentarze Komentarze
Avatar 1
Piotrek Linux Ubuntu / Mozilla Firefox 34.0
27 January 2015 - 08:41 Warszawa

Super, dzięki za szybki test i pod linuxem, na to czekałem :)
Świetna ma szyna w dobrej cenie, chociaż wydajność dysku zawodzi.

Avatar 1
DizL Windows 7 / Mozilla Firefox 35.0
27 January 2015 - 22:59 Warszawa

wow, dzieki za szybki test,
jestem właśnie na etapie wybierania boardu - daje to świetny pogląd na sytuację.

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 34.0
29 January 2015 - 22:55 Bytom

Nie ma za co!

Avatar 1
dawid Linux x86_64 / Safari 537.36
29 January 2015 - 21:46 Poznań

Chyba rozjechały Ci się kolory na wykresach. Kolor nie odpowiada odpowiedniej płytce. Jest problem z większością.

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 34.0
29 January 2015 - 22:55 Bytom

Dzięki - poprawione

Avatar 1
Marcin Windows 7 / Mozilla Firefox 31.0
23 February 2015 - 19:38 Brak informacji

Witam
Dzięki za test. Pytanie tylko, jaka to była wersja cubieboard v1.1 czy v 1.2?
Z tego co słyszałem to nowa wersja xmbc to kodi, również dostępna pod androida. Widziałem gdzieś na yt prezentację jej działania choć testów syntetycznych nie było. Aplikacja bardzo ładnie działała i filmy w 4k hulały aż miło.
Może jakis test kodi lub np popcorn time pod androidem.
Pozdrawiam.

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 34.0
25 February 2015 - 20:56 Bytom

Z tego co pamiętam, to właśnie testowałem na Kodi:

Avatar 1
Marcin Windows 7 / Mozilla Firefox 36.0
15 March 2015 - 11:37 Poznań

Moje wrażenia po odpaleniu cubieboard 4.
Praktycznie wszystko działa bardzo ładnie do póki nie odpaliłem video z pliku udostępnionego na moim komputerze. Plik o wadze 16GB video jakości 1080p, to wszystko przez Wi-Fi - komputer w siecie Wi-Fi oraz cubieboard 4 w tej samej sieci. Wersja systemu na cubie v3.0. Odtwarzany film za pomocą kodi i tutaj pojawia się problem i moje rozczarowanie. Po kilku minutach odtwarzania zaczynają się zwisy i buforowanie i tak co kilka minut. Sieć mam postawioną na TP-Link W8960N, prędkość łącza komp-router 144Mb/s, nie sprawdzałem jeszcze jak jest w przypadku cubie-router. W każdym razie na materiałach 1080p jest zawsze to samo, co kilka minut freez i buforowanie... Czy ktoś z forumowiczów spotkał się z takim problemem i mógłby coś doradzić?
Zastanawiam się gdzie leży problem, czy z w małej przepustowości pamięci w cubie i jej zapychanie czy może to czysto sieciowy problem?
Pozdraiam
Marcin

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 34.0
15 March 2015 - 18:03 Bytom

Raczej sieciowy, oglądałem kilka filmów przez wifi i problemu nie miałem

Avatar 1
Tomek Windows / Mozilla Firefox 36.0
17 March 2015 - 22:27 Brak informacji

Podłącz po kablu, najlepiej przez switch z interfejsem gigabitowym, bo ten TP-link to tylko 100Mb/s i wtedy sprawdź co jest winne.

Avatar 1
Krynio Windows 7 / Safari 537.36
23 March 2015 - 21:29 Ostrów Wielkopolski

Dzięki za dobry opis i test.

Brakuje mi informacji na temat płynności działania przeglądarki internetowej. Tej na androidzie oraz zwłaszcza na Linuksie - desktop. Chciałbym to urządzenie wykorzystać głównie / m.in. jako stanowisko do przeglądania internetu. W tle pewnie będzie coś działać np. stacja meteo, samba, www, etc.

Miałem wersję Cubieboard 3 i działaniem przeglądarki internetowej zwłaszcza pod Linuksem - desktop byłem mocno zawiedziony. Powolne włączanie i wyłączanie przeglądarki, w zasadzie brak płynności przeglądania itp. Oczywiście sprawdzałem na wszystkich dostępnych dystrybucjach i nie znalazłem takiej płynności jak na PC.

Pozdrawiam