Fischertechnik
AVR
Raspberry Pi
Elektronik
Netzwerk
Sonstiges


















Impressum

CubieTruck

Ewell Case


Das Gehäuse ist hochwertiger als alle Gehäuse, die ich bisher für den RaspberryPi gefunden habe. Es ist sehr sauber verarbeitet, fasst sich sehr gut an, ist gut und eindeutig beschriftet und bietet Platz für das Board, eine Festplatte (Notebook-Platte) und eine Batterie. Die Anschlusskabel für Festplatte und Akku passen gut durch die Aussparung im Board; entsprechend stören sie nicht beim Zusammenbau.

Batteriefach

Die unterste "Etage" (rot skizziert) des Gehäuses bietet Platz für einen LiPo-Akku. Wenn die mittlere "Etage" wie vorgesehen mit einer Festplatte (weiß skizziert) belegt ist, darf der Akku maximal 10 Millimeter dick sein. Breite und Länge (incl. der Akkukabel) maximal 54mm x 110 mm. Inzwischen (Stand November 2014) gibt es auch bei Pollin einen gut passenden Akku mit passendem Kabel und Stecker. Akku 5300mAh
Gehäuseunterteil
Der Einsatz eines Akkus bietet auch den Vorteil, dass die integrierte RTC des A20 dauerhaft mit Strom versorgt wird und somit Zeit und Datum sicher erhalten bleiben.

Dies und Das ...

Batteriebetrieb

Bei einem ersten Test mit einem alten 1,2 Ah-LiPo konnte ich unter Linux gut sehen, welcher Lade- bzw. Entladestrom fliesst. Bei Verwendung eines externen Netzteils kann auch Strom und Spannung an diesem Eingang abgefragt werden. Ob das tatsächlich der Gesamtstrom am Netzteil ist, konnte ich aus dem Schaltplan noch nicht nachvollziehen.
Mit voll geladenem Akku läuft der Rechner bei mir knapp eine Stunde, der Entladestrom steigt in dieser Zeit von 800 auf 950 mA. (Konfiguration: kein Bildschirm angeschlossen, keine grafische Oberfläche konfiguriert, zusätzlicher USB-LAN-Adapter und eingebaute SSD Crucial M500).
Der Ladestrom beträgt ca. 350 mA. Der Strom am externen Eingang beträgt dabei zwischen 500 und 700 mA. Nach ca. 2:20 Stunden ist der Akku aufgeladen.
Bild eines Entlade- und Ladezyklus
Aus den Schwankungen des Eingangsstrom (blaue Kurve) schließe ich, dass dieses annähernd der Gesamtstrom ist, das Board in meiner Konfiguration also im Ruhebetrieb noch mit einem Standard-USB-Anschluss (500 mA) auskommen könnte. Ein Versuch zeigt dann aber schnell, dass die Lastspitzen aus dem Akku entnommen werden und entsprechend der Akku immer wieder nachgeladen wird. Dass das für die Lebensdauer gut ist, wage ich zu bezweifeln.
Mit dem folgenden Skript lasse ich mir Status, Ladestrom in Mikroampere, Batteriespannung in Mikrovolt, das Vorhandensein eines externen Netzteils (1=vorhanden), den Strom vom Netzteil und die Spannung des Netzteils alle vier Sekunden anzeigen:
#!/bin/bash
cd /sys/class/power_supply/
while true;
do
  echo $(cat battery/status      \
             battery/current_now \
             battery/voltage_now \
             ac/present          \
             ac/current_now      \
             ac/voltage_now |
         tr "\n" " ")
  sleep 4;
done

Herunterfahren

In alter Gewohnheit habe ich das System mit shutdown -h +0 heruntergefahren. Etwas später vom Netz getrennt und mich dann am nächsten Morgen über das Blinken gewundert. Nach etwas Suchen habe ich einen Beitrag gefunden, der darauf hinwies, dass shutdown -P +0 nicht nur das System herunterfährt, sondern auch das Powermanagement zum Abschalten auffordert. Beim Testen habe ich dann aber gemerkt, dass das System nach wenigen Sekunden wieder neu startet.
Jetzt trenne ich das System erst vom Netz (läuft ja mit Akku) und fahre dann mit shutdown -P -h +0 herunter.

Abfrage der aktuellen CPU-Temperatur

$ cat /sys/class/hwmon/hwmon0/device/temp1_input
41000
oder
$ cat /sys/devices/platform/sunxi-i2c.0/i2c-0/0-0034/temp1_input
41000
Der ausgegebene Wert ist in Millicelsius, muss also durch 1000 geteilt werden, um die Temperatur in den üblichen Grad Celsius zu erhalten.

Installation cubian

Download http://download.cubian.org/release/Cubian-desktop-r1-a20-ct.img.7z
Entpacken 7zip
Auf SD-Karte schreiben

Ausgabe auf VGA umstellen

SD-Karte auf einem Linux-System mounten.
Die Konfiguration des Board-spezifischen Daten erfolgt im Verzeichnis /boot
über script.bin. Diese Datei liegt auch in einer Text-basierten Form
vor und das Werkzeug zum Umwandeln ist leicht verfügbar.

screen0_output_type = 4
fb0_scaler_mode_enable = 1

Booten
IP-Ermitteln (Da die MAC bei jedem Neustart wechselt, ist diese nicht konstant!)
deshalb USB-NIC mit fester MAC als eth1 in /etc/network/interfaces eingetragen

sudo cat <<EOF >> /etc/network/interfaces
auto eth1
iface eth1 inet dhcp
EOF

ssh cubie@ip-address -p 36000 (password=cubie)

Festplatte einhängen:


mkdir /data/;
chmod 777 /data;
echo "/dev/sda1	/data	ext4	defaults	0	1">>/etc/fstab

WLAN wiederherstellen


sudo cat <<EOF >> /etc/modules

# WLAN
bcmdhd
EOF


Nach Reboot interfaces-Backup-Datei zurückladen.

Detail:
allow-hotplug eth2 iface eth2 inet static address 192.168.96.1 netmask 255.255.255.0 up ifconfig $IFACE 192.168.96.1 up ; \ service rlinetd restart ; \ service isc-dhcp-server restart ; \ echo "1" >/data/blink.status ; down echo "0" >/data/blink.status ; \ service isc-dhcp-server stop ; \ service rlinetd stop ;

System aktualisieren


#sudo apt-get update
#sudo apt-get upgrade
sudo apt-get install cubian-update
sudo cubian-update

Interfaces umbenennen


sudo vi /etc/udev/rules.d/70-persistent-net.rules

dhcp Server einrichten


sudo apt-get install isc-dhcp-server
sudo cat <<EOF >> /etc/dhcp/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;

subnet 192.168.96.0 netmask 255.255.255.0 {
  range 192.168.96.10 192.168.96.20;
  next-server 192.168.96.1;
  filename "/pxelinux.0";
}
EOF
sudo vi /etc/dhcp/dhcpd.conf
sudo service isc-dhcp-server restart

tftp Server einrichten


sudo apt-get install atftpd
sudo cat <<EOF >> /etc/rlinetd.d/tftp_udp
service "tftp_udp" {
        enabled yes;
        protocol udp;
        family ipv4;
        port "tftp";
        user "nobody";
        exec "/usr/sbin/in.tftpd --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /data/tftpboot/";
        server "/usr/sbin/tcpd";
        wait yes;
}
EOF

Apache installieren


sudo apt-get install apache2

document root ist /var/www/

tcpdump und gnuplot installieren


sudo apt-get install tcpdump gnuplot
sudo apt-get install libpcap0.8-dev

Systembenutzer anlegen


sudo adduser --system --home /home/chris --shell /bin/bash chris

C-Entwicklungsumgebung installieren


sudo apt-get install build-essential

Zeitzone anpassen

In .profile aller Benutzer TZ='Europe/Berlin';export TZ



ssh-Port anpassen


sudo vi /etc/ssh/sshd_config

Administartion mit Ajenti

port=8000
protocol=https
user=root
password=admin

Passwörter ändern nicht vergessen...

LED blinken


#!/bin/bash
LED1PIN=1
LED2PIN=67
LED1=gpio1_ph20
LED2=gpio67_ph7
while true; do
  if [ 1 -eq $(cat /data/blink.status) ]; 
  then
    echo ${LED1PIN} > /sys/class/gpio/export
    echo ${LED2PIN} > /sys/class/gpio/export
    cd /sys/class/gpio/
    echo out > ${LED1}/direction
    echo out > ${LED2}/direction
    while [ 1 -eq $(cat /data/blink.status) ]; do
      echo 1 > ${LED1}/value
      echo 0 > ${LED2}/value
      sleep 0.5
      echo 0 > ${LED1}/value
      echo 1 > ${LED2}/value
      sleep 0.5
    done
    echo 0 > ${LED1}/value
    echo 0 > ${LED2}/value
    echo ${LED1PIN} > /sys/class/gpio/unexport
    echo ${LED2PIN} > /sys/class/gpio/unexport
  fi;
done