IT en computers

In deze sectie vindt u van alles over IT en computers, zoals

  • Programmeren
  • Interessante computerhardware
  • Linux
  • Huisautomatisering
  • Websiteontwikkeling

Mijn Banana Pi

 

De Banana Pi is een goedkope single-boardcomputer die geïnspireerd is op de Raspberry Pi.

Net als de Raspberry Pi is het een goedkoop (ca. 45 euro) computerboardje dat Linux kan draaien, met bescheiden rekenkracht maar met een laag stroomverbruik en geen slijtagegevoelige bewegende onderdelen.

De voordelen van de Banana Pi ten opzichte van de Raspberry Pi model B+ waren onder andere

  • ca. 3x zo veel rekenkracht (dual core 1GHz ARM Cortex-A7)
  • twee keer zoveel RAM (1GB DDR3)
  • SATA-aansluiting
  • Gigabit ethernet (haalbare throughput ca. 300Mbit/s)
  • USB-poorten delen niet de bandbreedte met Ethernet van 1 USB2-kanaal
  • mogelijkheid oplaadbare batterij aan te sluiten

Ondanks deze betere technische specificaties zat het er niet echt in dat de Banana Pi zo populair zou worden als de Raspberry Pi, vanwege onder meer

  • het niet hebben van een gebruikersgemeenschap die zo enorm groot en actief is als die van Raspberry Pi
  • een minder krachtige GPU waar bovendien geen goede driver voor is in Linux

De later uitgekomen Raspberry Pi 2 en 3 overtreffen de rekenkracht van de Banana Pi weer ruim, hebben eveneens 1GB RAM, en kosten toch ongeveer hetzelfde als de oorspronkelijke Raspberry Pi.

Hiermee verliest de Banana Pi veel van zijn aantrekkingskracht, hoewel nog steeds een deel van de technische specificaties beter is. Een groot pluspunt vind ik voor gebruik als "appliance" nog steeds dat voor een UPS-functie aan hardware alleen een lithium-ionbatterij hoeft te worden aangesloten. Om een Raspberry Pi ertegen te beschermen dat de SD-kaart corrupt kan raken bij stroomuitval moet je het filesysteem read-only maken, wat een flinke inperking van de toepassingsmogelijkheden inhoudt. Het is ook wel mogelijk om een van de speciale UPS-oplossingen voor de Raspberry Pi te gebruiken, maar die zijn niet echt goedkoop.

Hoe dan ook is de Banana Pi een fijn computertje voor een bescheiden appliance met internetaansluiting, zoals een eenvoudige webserver en/of besturing voor thuisautomatisering.

Software

Ik had de Banana Pi een tijd lang draaien op Bananian Linux, een Debian Linux speciaal aangepast voor de Banana Pi. Die distributie wordt echter niet meer onderhouden. Het alternatief is Armbian. Dit project levert Debian- en Ubuntu-images voor een groot aantal kleine singleboardcomputers.

UPS-functie

Een berucht verschijnsel bij de Raspberry Pi, en bij de Banana Pi zal dat niet anders zijn, is dat de SD-kaart zodanig corrupt kan raken dat een journaling filesysteem een en ander niet meer kan herstellen en de kaart volkomen onbruikbaar raakt. Dit kan gebeuren wanneer de voedingsspanning wegvalt op een moment dat naar de SD-kaart geschreven wordt. Bij een harde schijf zouden alleen die gegevens die op dat moment worden gewijzigd beschadigd raken, bij een SD-kaart of SSD ligt dat kennelijk wat complexer.

Voor een homeserver/appliance is het van belang dat deze altijd weer netjes kan opstarten na een onderbreking van de netspanning, zonder dat je er fysiek bij hoeft; corruptie van de SD-kaart is dan uiteraard funest. Het ongecontroleerd onderbreken van mogelijke schrijfoperaties moet dus ten allen tijde worden voorkomen.

In de Banana Pi wordt de voeding geregeld door een volwaardig Power Management IC (PMIC) zoals je die ook in een tabletcomputer vindt. Je kunt er eenvoudig een lithium-ionbatterij op aansluiten. Wanneer de AC-adapter is aangesloten en spanning levert, loopt de Banana Pi daarop en laadt ook de batterij. Wanneer deze spanning wegvalt, loopt de Banana Pi door op de batterij.

Een script kan herkennen dat de externe voedingsspanning is weggevalllen en in dat geval een gecontroleerde shutdown uitvoeren. Het maakt ervan gebruik dat in /sys/ files zijn te vinden met informatie over de status van het systeem, zoals de aanwezigheid van de "AC power". Wanneer de externe voedingsspanning weer terugkomt start de Banana Pi weer op. Jammer genoeg blijkt dat echter niet vanzelf te gebeuren bij een zeer korte stroomonderbreking, dus als de voedingsspanning weer terugkomt voordat het afsluiten compleet is. Om er toch zeker van te zijn dat na een stroomonderbreking de Banana Pi weer opnieuw opstart, kan een simpele microprocessor van dienst zijn. Die is geprogrammeerd om het te herkennen als de AC power aanwezig is, maar de Banana Pi uit staat, en drukt in dat geval als het ware op de "power"-knop om de Banana Pi weer aan te zetten. Zoals je aan de foto kan zien is het niet echt een elegante aanpassing aan de Banana Pi, maar het werkt wel.

Het script bevat deze code:

#!/bin/sh
while :
do
    if grep -q 0 /sys/power/axp_pmu/ac/connected
    then
        echo "ac is not present, shutting down..."
        shutdown -h now
        sleep 100
    fi
    sleep 1
done
exit 0