OrangePiPc

Da wiki.piffa.net.
Orange Pi Pc

Orange Pi e' una famiglia di system on a board, simile a RaspberryPi. Sono disponibili vari modelli tra cui alcuni dotati di porte SATA, gigabit. Il Modello PC invece e' il piu' economico: per circa 14euro mette comunque a disposizione 1GB di RAM, CPU 4core, HDMI, 3 USB 2.0 + 1 OTG.

Su questa scheda girano versioni di Linux Debian, Ubuntu, RaspBian, Arch, Suse, Kali, Fedora, Android. I sistemi operativi e le rispettive immagini non sono binary compatible con RPI: non potete far girare la vostra SD di RPI su Orange pi e viceversa, ma sono disponibili le versioni per Orange.

Nota: la scheda di memoria e' una microSD e non una SD come RaspberryPi.

Specs[modifica]

  • SoC – Allwinner H3 quad core Cortex A7 @ 1.6 GHz (likely 1.2 GHz instead) with an ARM Mali-400MP2 GPU up to 600 MHz
  • System Memory – 1GB DDR3
  • Storage – micro SD card slot (up to 64GB)
  • Video Output – HDMI with CEC and HDCP support, AV port
  • Audio I/O – HDMI, AV port, on-board microphone
  • Connectivity – 10/100M Ethernet
  • USB – 3x USB 2.0 host ports, 1x micro USB OTG port
  • Camera – CSI Interface
  • Expansions – 40-pin Raspberry Pi compatible header with 28 GPIOs, UART, I2C, SPI, PWM, CAN, I2S, SPDIF, LRADC, ADC, LINE-IN, FM-IN, and HP-IN
  • Debugging – 3-pin UART header for serial console
  • Misc – IR receiver; Power button; Power and status LEDs
  • Power Supply – 5V/2A via barrel jack (micro USB OTG cannot be used to power the board).
  • Dimensions – 85 x 55 mm (vs 93 x 60 mm for Orange Pi 2)
  • Weight – 38 grams


Links[modifica]

Installazione[modifica]

La procedura di installazione e' abbastanza semplice e spiegata nei seguenti link (testata la release Debian Jessie):

Si dovra' scaricare l'immagine preconfigurata *.img per la scheda SD e l'archivio scriptbin_kernel.tar.gz contenente un kernel aggiornato e uno script aggiornato per gestire l'sucita video da copiare nella partizione di boot /dev/sd#1 della scheda SD. Se non si usa il kernel e lo script.bin aggiornati contenuti nell'archivio scriptbin_kernel.tar.gz potrebbero non funzionare tutte le porte USB, kernel panic o blocco del boot (morale: utilizzate quelli aggiornati!) Per la versione economica OrangePi PC si utilizzi la uImage_OPI-2 contenuta nell'archivio scriptbin_kernel.tar.gz , lo script di avvio sara' script.bin.OPI-PC_* in base al tipo di connessione video (per un monitor HDMI a 1080p ha funzionato script.bin.OPI-PC_1080p60).

Al boot il sistema operativo richiede un IP tramite DHCP, SSH server e' attivo. Le password di root e dell'utente di sistema orangepi e' orangepi.

Al boot si provveda ad aggiornare /etc/apt/sources.list con i mirror italiani e a RIGENERARE le chiavi per SSH:

  1.  
  2. rm -v /etc/ssh/ssh_host_*
  3. dpkg-reconfigure openssh-server
  4.  

Troubleshooting alimentazione[modifica]

Il vero problema di questa scheda e principale causa di problemi di istallazione e' l'alimentazione: nessuno degli alimentatori a 5v per 2A / 2.5A da me provati e' stato in grado di far avviare la scheda. Una soluzione potrebbe essere di acquistare la scheda in boundle con l'alimentatore che e' da 3A e non 2a come consigliato (non testato, ma si spera che con quello vada!), oppure provare con un alimentatore switching da LED (in arrivo..). Vari utenti hanno controllato i consumi (http://www.boincitaly.org/forum/hardware/114062-orange-pi-pc.html?limitstart=0) e fortunatamente sembra che questi siano comunque contenuti: 0,08A in idle a 0,15~0,20A sotto cario.

Troubleshotting:

  • Collegato al power non si accende niente: non avete abbastanza corrente
  • Collegato al power si accende il LED rosso di stato (dietro alla porta USB OTG) e i LED della scheda di rete ma non succede niente: non avete abbastanza corrente. Si puo' provare piu' volte anche con la stessa alimentazione e magari il sistema potrebbe partire (ma non completare il boot).
  • Collegato al power il sistema si avvia ma il boot si interrompe: non avete abbastanza corrente.

In tutti questi casi il problema e' stato l'alimentazione, non i file di configurazione. Il sistema infatti e' poi partito (con un alimentazione superiore ai 2.5a) sia con uImage e script.bin originali (quelli della ISO) che con quelli aggiornati dell'archivio scriptbin_kernel.tar.gz, lo schermo e' andato con un po' tutte le combinazioni per 1080p sia originali che dallo script scriptbin_kernel.tar.gz .

Altra soluzione economica: comprare il boundle scheda con solo cavo USB per avere lo spinotto della misura giusta (4mm spessore esterno con interno punta giallo, positivo interno - negativo fuori) per poi utilizzarlo con un alimentatore a 5v disponibile.

Impressioni d'uso[modifica]

Il sistema si dimostra molto piu' potente e responsivo di RPI modello 1, sia per velocita' pura nel singolo task che per il fatto di essere un quad core: mentre la scheda e' impegnata in qualche processo si riesce a lavorare agevolmente. La scheda di rete lavora a 11.2 MB/s contemporaneamente alla scrittura su SD mentre RPi condivide il BUS USB per entrambe (quindi anche la rete risulta piu' lenta).

Lo svantaggio e' dato dall'alimentazione: dovrete avere un alimentatore dedicato, non potete alimentarla da USB OTG. Per altro e' consigliabile un dissipatore per raffreddare la CPU. Non c'e' il WiFi onboard ma la 10/100 funziona alla massima banda. Per un uso workstation resta troppo lenta, per quanto sia riuscita a far girare KDE e Konqueror, Firefox / Iceweasel gira ma non a un livello usabile (ma potrebbe essere una questione di ottimizzazione e velocita' della SD, serviranno altre prove). Non dovrebbe aver problemi come thin client.

Benchmark[modifica]

  1. OrangePI:~:$ uname -a
  2. Linux OrangePI 3.4.39 #1 SMP PREEMPT Mon Oct 12 12:02:29 CEST 2015 armv7l GNU/Linux
  3. OrangePI:~:$ lsb_release -d
  4. Description: Debian GNU/Linux 8.2 (jessie)
  5.  
  6. OrangePI:~:$ lscpu
  7. Architecture: armv7l
  8. Byte Order: Little Endian
  9. CPU(s): 4
  10. On-line CPU(s) list: 0-3
  11. Thread(s) per core: 1
  12. Core(s) per socket: 4
  13. Socket(s): 1
  14. CPU max MHz: 1536.0000
  15. CPU min MHz: 480.0000
  16.  
  17. OrangePI:~:$ free
  18. total used free shared buffers cached
  19. Mem: 1026964 125408 901556 8672 11636 48116
  20. -/+ buffers/cache: 65656 961308
  21. Swap: 0 0 0
  22.  
  23. OrangePI:/tmp:$ wget http://chrome/file
  24. --2015-11-22 01:29:21-- http://chrome/file
  25. Resolving chrome (chrome)... 192.168.0.254
  26. Connecting to chrome (chrome)|192.168.0.254|:80... connected.
  27. HTTP request sent, awaiting response... 200 OK
  28. Length: 104857600 (100M) [application/octet-stream]
  29. Saving to: ‘file’
  30.  
  31. file 100%[=====================>] 100.00M 11.2MB/s in 8.9s
  32.  
  33. 2015-11-22 01:29:30 (11.2 MB/s) - ‘file’ saved [104857600/104857600]
  34.  
  35.  
  36. OrangePI:~/linpack:$ ./linpack
  37. Enter array size (q to quit) [200]:
  38. Memory required: 315K.
  39.  
  40.  
  41. LINPACK benchmark, Double precision.
  42. Machine precision: 15 digits.
  43. Array size 200 X 200.
  44. Average rolled and unrolled performance:
  45.  
  46. Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS
  47. ----------------------------------------------------
  48. 64 0.54 89.36% 3.32% 7.32% 174931.601
  49. 128 1.08 89.35% 3.32% 7.33% 174872.086
  50. 256 2.17 89.35% 3.32% 7.33% 174925.334
  51. 512 4.34 89.34% 3.33% 7.34% 174811.959
  52. 1024 8.68 89.35% 3.32% 7.33% 174750.267
  53. 2048 18.31 89.36% 3.31% 7.34% 165761.260
  54.  


Questo invece e' sulla mia RPI REV 1 Model B (modello vecchio con 256MB RAM):

  1. eaman@rpi:~/linpack$ uname -a
  2. Linux rpi 3.18.0-trunk-rpi #1 PREEMPT Debian 3.18.5-1~exp1+rpi19 (2015-08-08) armv6l GNU/Linux
  3.  
  4. LINPACK benchmark, Double precision.
  5. Machine precision: 15 digits.
  6. Array size 200 X 200.
  7. Average rolled and unrolled performance:
  8.  
  9. Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS
  10. ----------------------------------------------------
  11. 32 0.90 88.07% 3.37% 8.55% 53427.350
  12. 64 1.80 88.03% 3.36% 8.60% 53440.084
  13. 128 3.60 88.03% 3.38% 8.59% 53422.528
  14. 256 7.20 88.03% 3.39% 8.58% 53423.055
  15. 512 14.40 88.03% 3.38% 8.59% 53433.026
  16.  

RaspberryPi 2

  1. pi@raspberrypi ~/linpack $ uname -a
  2. Linux raspberrypi 4.1.12-v7+ #824 SMP PREEMPT Wed Oct 28 16:46:35 GMT 2015 armv7l GNU/Linux
  3. pi@raspberrypi ~/linpack $ ./linpack
  4. Enter array size (q to quit) [200]:
  5. Memory required: 315K.
  6.  
  7.  
  8. LINPACK benchmark, Double precision.
  9. Machine precision: 15 digits.
  10. Array size 200 X 200.
  11. Average rolled and unrolled performance:
  12.  
  13. Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS
  14. ----------------------------------------------------
  15. 64 0.83 89.85% 2.85% 7.30% 114387.400
  16. 128 1.66 89.83% 2.86% 7.31% 114389.856
  17. 256 3.32 89.83% 2.86% 7.31% 114387.660
  18. 512 6.63 89.83% 2.86% 7.31% 114392.759
  19. 1024 13.26 89.83% 2.86% 7.31% 114388.749
  20.  

Banana Pi:

  1.  
  2. root@bananapi:~/linpack# ./linpack
  3. Enter array size (q to quit) [200]:
  4. Memory required: 315K.
  5.  
  6.  
  7. LINPACK benchmark, Double precision.
  8. Machine precision: 15 digits.
  9. Array size 200 X 200.
  10. Average rolled and unrolled performance:
  11.  
  12. Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS
  13. ----------------------------------------------------
  14. 64 0.86 89.88% 2.83% 7.29% 110662.189
  15. 128 1.71 89.57% 2.84% 7.59% 110942.252
  16. 256 3.42 89.71% 2.83% 7.46% 111025.951
  17. 512 6.86 89.62% 2.93% 7.45% 110701.895
  18. 1024 13.70 89.78% 2.84% 7.38% 110789.002
  19.  


Riferimenti per riprodurre Linkpack benchmark:

  1. apt-get install gcc libc6-dev
  2. mkdir linpack
  3. cd linpack/
  4. wget http://www.netlib.org/benchmark/linpackc.new
  5. mv linpackc.new linpackc.c
  6. gcc -O3 -o linpack linpackc.c -lm

Ringraziamenti agli utenti di HWUpgrade su questo thread per aver aggiunto i loro bench: http://www.hwupgrade.it/forum/showthread.php?t=2743629

GPIO[modifica]

Libreria per GPIO: https://github.com/zhaolei/WiringOP

  1.  
  2. OrangePI:~:$ gpio readall
  3. +-----+-----+----------+------+---+--OrangePiPC--+---+------+---------+-----+--+
  4. | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
  5. +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
  6. | | | 3.3v | | | 1 || 2 | | | 5v | | |
  7. | 2 | -1 | SDA.0 | | | 3 || 4 | | | 5V | | |
  8. | 3 | -1 | SCL.0 | | | 5 || 6 | | | 0v | | |
  9. | 4 | 6 | IO6 PA06 | OUT | 0 | 7 || 8 | | | TxD3 | | |
  10. | | | 0v | | | 9 || 10 | | | RxD3 | | |
  11. | 17 | -1 | RxD2 | | | 11 || 12 | 0 | OUT | IO1 PD14 | 1 | 18 |
  12. | 27 | -1 | TxD2 | | | 13 || 14 | | | 0v | | |
  13. | 22 | -1 | CTS2 | | | 15 || 16 | 0 | OUT | IO4 PC04 | 4 | 23 |
  14. | | | 3.3v | | | 17 || 18 | 0 | OUT | IO5 PC07 | 5 | 24 |
  15. | 10 | -1 | MOSI | | | 19 || 20 | | | 0v | | |
  16. | 9 | -1 | MISO | | | 21 || 22 | | | RTS2 | | |
  17. | 11 | -1 | SCLK | | | 23 || 24 | | | SPI-CE0 | | |
  18. | | | 0v | | | 25 || 26 | | | CE1 | | |
  19. | 0 | -1 | SDA.1 | | | 27 || 28 | | | SCL.1 | | |
  20. | 5 | 7 | IO7 PA7 | OUT | 0 | 29 || 30 | | | 0v | | |
  21. | 6 | 8 | IO8 PA8 | OUT | 0 | 31 || 32 | 0 | OUT | IO9 PG08 | 9 | 12 |
  22. | 13 | 10 | IO10 PA9 | OUT | 0 | 33 || 34 | | | 0v | | |
  23. | 19 | 12 | IO12PA10 | OUT | 0 | 35 || 36 | 0 | OUT | IO13PG09 | 13 | 16 |
  24. | 26 | 14 | IO14PA20 | ALT3 | 0 | 37 || 38 | 0 | OUT | IO15PG06 | 15 | 20 |
  25. | | | 0v | | | 39 || 40 | 0 | OUT | IO16PG07 | 16 | 21 |
  26. +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
  27. | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
  28. +-----+-----+----------+------+---+--OrangePIPC--+------+----------+-----+-----+
  29.  
  30. OrangePI:~/gpio/WiringOP:# ls /sys/class/gpio_sw/
  31. normal_led PA13 PA15 PA3 PA7 PA9 PC4 PD14 PG7 PG9 standby_led
  32. PA10 PA14 PA21 PA6 PA8 PC3 PC7 PG6 PG8 PL10
  33.  

Orange Pi 2 GPIO Pinout.png