Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
Die Raspberry Pi wurde mittlerweile mehr als 500000 Mal verkauft und viele befinden sich zu Hause und werden für diverse Dinge eingesetzt. Verstärkt wollen die Käufer auch ihre kleine Pi aus dem Internet zugreifbar machen, da sich auf ihr hilfreiche Anwendungen befinden auf die man von überall über das Internet zugreifen möchte. Die vermehrt auftretenden Fragen in deutschen und englischen Raspberri Foren dazu bestätigen dass. 
Technisch ist das nicht schwer zu realisieren. Allerdings sollte jeder sich vorher genau überlegen was er freigeben will (Welche Anwendungen bzw welche Internetports) und wie er sie vor unberechtigtem Zugriff schützen will. Ansonsten kann es schnell passieren, dass sich unerwünschte Besucher aus dem Internet im heimischen lokalen Netz herumtreiben und dort ihr Unwesen treiben oder von dort ihr Unwesen auf anderen Rechnern im Internet treiben.
Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
Seit ein paar Wochen nenne ich ein Raspberry Pi mein eigen. Nettes Spielzeug. Jetzt läuft auf einer SD Karte XBMC und auf einer anderen Raspbian. Nachdem ich es nach längeren Versuchen geschafft habe, den Realtek 8192 USB WLAN Stick zu aktivieren funktioniert er hervorragend.
 
Leider bekam ich vorhin einen kernel Panic beim Neustart. Lag offensichtlich daran, dass ich vorher einfach den Netzstecker gezogen habe um einen Reboot zu erzwingen. Bislang ging das immer anstandlos.Man sollte also doch auch die kleine Himbeere sauber runterfahren. Trotzdem war das kein grosses Problem: Einfach die SD Karte in einen Kartenleser reinstecken, an einen Linuxrechner anschliessen und fsck über beide Partitionen laufen lassen und schon ist der Fehler wieder behoben und einem erfolgreichen Neustart steht nichts entgegen.
Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
Die aktuelle finale raspxbmc Version vom 2. Feburar 2013 funktioniert sehr gut verglichen mit den vorherigen Versionen. Meine Hama MCE Remotesteuerung funktioniert jetzt auf Anhieb - sogar das Mauspad ... ausser dem Contextmenu - jedenfalls dachte ich das nach den Informationen, die ich im Netz dazu fand. Dann habe ich Stunden verbracht um rauszufinden wie ich das in den Griff bekommen kann ... und dann finde ich die Datei /opt/xbmc-bcm/xbmc-bin/share/xbmc/system/keymaps/hama_mce.xml auf meiner Pi und muss feststellen, dass das Kontexmenu doch verfügbar ist. Allerdings auf einer Taste auf der Hama MCE wo ich es nicht vermutet hätte.

 

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
Die Konfiguration meines xbmc auf meiner raspberry pi wird mit Linux und rsync gesichert.
 
Unter Windows ist das eigentlich auch recht einfach. Deshalb habe ich mal zusammengeschrieben wie man das Backup erstellen und zurückspielen kann sowie dafür Windows CMD Dateien erstellt um das automatisiert regelmässig durchführen lassen zu können. Drei Tools werden dazu noch für Windows benötigt: putty, pscp und plink.  Alles Tools, die von der putty Seite angeboten werden. Wenn man die unter Windows mit dem Befehl at regelmässig aufrufen lässt hat man immer einen aktuellen Backup. 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
Die Raspberry Pi ist ein nettes kleines Ding mit dem man eine Menge anstellen kann. Sowohl in deutschen als auch englischen Raspberry Foren häufen sich die Fragen, wie man die Pi vom Internet erreichen kann. Technisch ist das kein Problem: Man leitet die benötigten Ports vom Heimrouter zur Pi weiter und schaltet bei raspbmc noch die Firewall aus. Das kann aber sehr schnell dazu führen, dass gewisse Leute aus dem Internet unberechtigterweise auf die Pi und auch auf lokale Rechner im LAN Zugriff haben. Wenn man gewisse Regeln berücksichtigt kann das nicht passieren.

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
Ein fast jeder, der mit der Pi beginnt, benutzt SD Karten zur Speicherung des Betriebssystems und der Daten. Nach einer gewissen Zeit möchte man dann ein schnelleres und/oder größeres Speichermedium benutzen. Leider kann man die Pi nicht ohne SD Karte betreiben wenn man eine ältere Raspberry benutzt. Erst die Raspebrry 3 unterstützt den USB Boot mode direkt von dem USB Gerät. Auch die Raspberry 4 unterstütze bislang keinen USB Boot Mode. Allerdings ist sie nur zum Bootzeitpunkt notwendig und es wird nur die Bootpartition der SD Karte benötigt. Sämtliche Betriebssystemdaten wie Benutzerdaten, die root Partition, können auf einer beliebigen Partition liegen. Der folgende Artikel beschreibt was man dazu machen muss.
Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
Bei mir liegen 6 SD Karten rum die jeweils ein unterschiedliches OS für die PI haben bzw einen unterschiedlichen Konfigurationsstand. 
 
Jetzt habe ich berryboot entdeckt. Das ist ein Muss für jeden, der mit verschiedenen OS Images rumspielt (xbmc, raspian, puppy, ...). berryboot ist gub für die Pi. Und noch viel mehr !!! Es können Images direkt runtergeladen und installiert werden. Diese können dann auf einem beliebigen Medium liegen: Z.B. einem USB Stick oder einer USB Festplatte. Der Vorteil: Schnellere Zugriffzeiten. Dann kann man beim Boot das zu bootenden OS der Pi wie bei grub auswählen. Kein Wechsel der SD Karte ist notwendig. Bestehende OS können gecloned werden. D.h. man kann immer, bevor man eine größere Änderung beim OS vornimmt den aktuellen Stand sichern und aus dem aktuellen Stand einen Clone erstellen mit dem man dann weiterarbeitet. Das geht alles ohne weitere SD Karten da alles auf der USB Karte oder dem USB Laufwerk gespeichert wird. Eigene OS Images können selbstverständlich auch  in den Pi Bootmanager aufgenommen werden.
 
Eines ist bei berryboot zu berücksichtigen: Es wird das gesamte gemountete Gerät neu formatiert und exclusiv von berryroot benutzt . Bei einem 32 GB USB Stick ist das OK. Bei einer 1TB Platte ist das ziemliche Verschwendung.
Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
Eigentlich läuft unter Linux standardmäßig immer cron. Leider startete kein Script welches ich in der crontab unter raspxbmc eingestellt habe.  Bei raspxbmc ist cron aber standardmäßig nicht gestartet. Den Hinweis wie man es aktivieren kann habe ich hier gefunden. Danach lief alles wie erwartet.
 
Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
Die Raspberry Pi findet immer mehr Freunde und Anhänger und häufig wollen Interessierte einfach mal sehen wie das Betriebssystem Raspbian aussieht und wie es zu bedienen ist. Ich für meine Person suchte nach einem einfachen Weg ein von mir erstelltes backup Programm mit dem Namen raspiBackup einfacher zu testen. Dafür bietet es sich an, die Raspberry in QEMU emulieren zu lassen. Spezielle Hardware wie GPIOs usw werden nicht emuliert. Es ist alleinig der Prozessor der emuliert wird. Voraussetzung ist ein Raspbian Image sowie einen Rechner mit Linux oder Windows.  Da ich das heute auch mal ausprobiert habe habe ich im folgenden Howto Beitrag Schritt für Schritt für Linux beschrieben wie ich unter einem Debian Linux ein QEMU installiert und konfiguriert habe und dann das Raspbian gestartet und erfolgreich betreibe. Das Image  besitzt nach dem Start gleich eine Netzwerkverbindung und benutzt die existierende Netzwerkverbindung des Hostsystems per NAT mit. We häufiger ein Image erstellen muss findet ein Script welches die Imageerstellung beschleunigt.

 

1. Schnellstart

 

1.1 Installation von QEMU

Voraussetzung:  Die CPU unterstützt Hardwarevirtualisierung. Test mit
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
Sollte da kein Ergebnis kommen ist vermutlich keine ARM Emulation möglich.
 

sudo apt-get install kvm qemu
 

1.2 Download eines Raspbianimages und des Linux kernels für qemu (wheezy or stretch)

a) wget 2012-12-16-wheezy-raspbian/2012-12-16-wheezy-raspbian.zip
b) unzip 2012-12-16-wheezy-raspbian.zip

 

Entsprechendes qemu kernel downloaden von https://github.com/dhruvvyas90/qemu-rpi-kernel. Für Wheezy ist es

curl -L wget https://github.com/dhruvvyas90/qemu-rpi-kernel/blob/master/kernel-qemu-3.10.25-wheezy > kernel-qemu

 

1.3 Anpassen des Images so dass es mit qemu startet

a) file 2012-12-16-wheezy-raspbian.zip
Von der Ausgabe des Befehls muss der Startsektorwert der zweiten Partition mit 512 multipliziert werden und das ist dann der Offset im folgenden Befehl
b) sudo mount 2012-12-16-wheezy-raspbian.zip -o offset=62914560 /mnt
c) sudo nano /mnt/etc/ld.so.preload
Die eine Zeile in der Datei muss auskommentiert werden mit einem # als erstes Zeichen in der Zeile
d) sudo umount /mnt
 

1.4 Starten des Images

sudo qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -append "root=/dev/sda2 panic=1" -hda 2012-12-16-wheezy-raspbian.img -net nic -net tap,ifname=tap0,vlan=0 
 

1.5 Anmelden und Konfigurieren

a) Logon mit Benutzer pi und Kennwort raspberry ABER: Da eine englische Tastatur konfiguriert ist im Image muss vor der Tastaturumstellung auf Deutsch dass Kennwort raspberrz benutzt werden
b) raspiconfigwird automatisch gestartet
Danach das Tastaturlayout auf Deutsch und die Zeitzone auf Deutschland umstellen. Das Vergrössern der Platte geht nicht. Anleitung dazu im nächsten Kapitel.
d) startx

 

Jetzt kann das auf der simulierten Pi laufende Raspian ausgiebig werden. Zu beachten ist, dass nicht mehr viel Platz auf der Platte ist.
Wer seinen ganzen Bildschirm für die Pi benutzen möchte muss <STRG><ALT>f eingeben. Dieselbe Tastenkonfiguration nimmt den Befehl wieder zurück. <STRG> <ALT>2 öffnet den QEMU Monitor. Interessant für Leute die sich mit QEMU näher befassen wollen. <STRG><ALT>1 öffnet wieder das normale Konsolenfenster.
 
 

2. Erweiterung der virtuellen Platte

 

Die benutze virtuelle Platte ist nur 2GB gross und es ist nicht mehr viel Platz auf ihr. Die Platte kann aber wie folgt erweitert werden:
 

2.1  Erstellung einer virtuellen Platte im Format qcow

Das qcow Format hat den Vorteil, dass es nur soviel Plattenplatz belegt, wie von der virtuellen Platte benötigt wird. Der alternative Ansatz die img Platte zu erweitern belegt immer den ganzen Plattenplatz obwohl er nicht benötigt wird.
 
a) sudo shutdown -h now (im Raspberry Gastsystem)
b) qemu-img convert -f raw -O qcow2 2012-12-16-wheezy-raspbian.img raspbian.qcow (auf dem Host)
 

2.2 Vergrößerung der virtuellen Platte

a) qemu-img resize raspbian.qcow +6G (auf dem Host)
b) sudo qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -append "root=/dev/sda2 panic=1" -hda raspian.qcow -net nic -net tap,ifname=tap0,vlan=0  (auf dem Host)
c) Nun entweder die virtualle SD Karte mit raspi-config vergrößern oder durch Ausführung der Schritte d-f
d) PART_START=$(parted /dev/sda -ms unit s p |grep “^2″ | cut -f 2 -d:); echo -e " p\nd\n2\nn\np\n2\n$PART_START\np\n\nw\n" | sudo fdisk /dev/sda (im Raspberry Gastsystem)
e) sudo shutdown -r now (im Raspberry Gastsystem)
f) sudo resize2fs /dev/sda2 (im Raspberry Gastsystem)
 

2.3 Erstellen von /dev/mmcblk0px

Wenn man die beiden Devices /dev/mmcblk0p1 und /dev/mmcblk0p2 benötigt muss man noch folgende Definitionen in /etc/udev/rules.d/90-qemu.rules erstellen:
 
KERNEL=="sda", SYMLINK+="mmcblk0"
KERNEL=="sda?", SYMLINK+="mmcblk0p%n"
KERNEL=="sda2", SYMLINK+="root"
 

3. Script um ein Image für qemu vorzubereiten

Wer häufiger Images konvertieren muss kann auch das folgende von mir geschriebene Script benutzen. Es konvertiert ein img in qcow2, vergrößert das image und nimmt die oben beschriebenen notwendigen Änderungen vor um das Image dann in qemu starten zu können.

 

4. Netzwerkanbindung des KVM Images

Damit qemu über das Hostsystem ins externe Netzwerk zugreifen kann muss auf dem Hostsystem eine Brücke existieren und ein existierendes Netzwerkinterface eth0 muss an einer Brücke hängen. Dazu habe ich folgende Definitionen in /etc/network/interfaces vorgenommen

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

 

5. Start eine KVM images

Ich möchte, dass mein KVM Image immer dieselbe MAC Adresse erhält, so dass der Homerouter ihm immer dieselbe IP Adresse per DHCP vergibt. Dazu benutze ich folgendes Script mit dem Namen start.sh

#!/bin/bash 
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
F=$DIR/macdict.txt
found=0
if [ -e $F ]; then
    if grep -q "^$1 " $F; then
        mac=$(grep "^$1 " $F | cut -d ' ' -f 2)
        found=1
        echo "Reusing mac $mac for $1"
    fi
fi
if (( ! found )); then
    # generate a random mac address for the qemu nic
    mac=$(printf 'DE:AD:BE:EF:%02X:%02X\n' $((RANDOM%256)) $((RANDOM%256)))
    echo "$1 $mac" >> $F
    echo "Generated mac $mac for $1"
fi
sudo qemu-system-arm -kernel $DIR/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -append "root=/dev/sda2 panic=1" -hda $DIR/$1 -net nic,macaddr=$mac  -net tap

 

Quellen für diesen Artikel

QEMU RPI kernels

HOWTO: Virtual Raspbian on Qemu in Ubuntu Linux 12.10

Emulate a Raspberry Pi with Qemu+ KVM

Howto setup Raspberry Pi emulation with QEMU on LInux or Windows

KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor

qemu-rpi-kernel: git repository mit rpi kernels

Raspbian on QEMU with network access

 

Erfahrungen mit der QEMU Emulation und Raspberry

Die Emulation wird primär dazu eingesetzt das Tool raspiBackup.sh zu testen. Beim Test des Restores des erstellten Backups ist es notwendig direkt auf das neue leere Image vom Host zuzugreifen. Das funktioniert auch gut mit den folgenden Befehlen

sudo losetup -d /dev/loop0
sudo losetup /dev/loop0 raspiBackupRestore.img
kpartx -av /dev/loop0

Danach kann man auf /dev/loop0 vom Host zugreifen und das Backup restoren. Allerdings gabe es beim restore des tar und rsync Backups beim Booten der restoreten VM immer Filesystemfehler. Das dd Backup konnte aber dagegen ohne Probleme gestartet werden. Nach längerem Debuggen fand ich raus warum es das Problem gab: Da ich immer ein ziemlich altes Standard raspbian Image benutze um es zu backuppen dachte das Image beim booten immer es würde momentan Anno 2014 gestartet werden (Jetzt ist es 2015). Da tar bzw rsync restore das Filesystem im Image mit dem aktuellsten Datum versah stellte das Image immer beim Booten fest, das das Filesystem in der Zukunft geändert wurde und verlangte ein fsck. Da beim dd restore das Filesystem nicht geändert wurde trat der Fehler dort nicht auf. Die Lösung des Problems war am Ende des restores noch folgende Aktionen auszuführen

mount /dev/loop0p2 /mnt
echo $(date +"%Y-%m-%d %T") > /mnt/etc/fake-hwclock.data
umount /mnt

Damit wird die fake-hwclock des alten raspbian Images auf die aktuelle Zeit gesetzt und es startet nicht mehr Anno 2014 sondern in der aktuellen Zeit wo das Backup restored wurde.

 

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

raspiBackup wird nur mit dem RaspbianOS und Raspberry Hardware unterstützt. Es läuft aber auch auf anderer Hardware und Linux Distributions erfolgreich. D.h. man kann raspiBackup auf dem jeweiligen Environment ausprobieren und wenn es erfolgreich läuft kann man sich freuen und es nutzen. Wenn es aber nicht läuft bzw Fehlermeldungen bringt wird kein Support gegeben. Es ist einfach zu teuer für eine Person sich alle mögliche Hardware für die Tests anzuschaffen und zu aufwändig alle mögliche Hardware- und Softwaretestkombinationen aufzubauen und jeweils bei einer neuen Release zu testen.

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

raspiBackupInstallUI and raspiBackup right now writes messages in German and English only. But both are able to write messages in any language from a coding point of view (I18N). Unfortunately I'm a German native speaker and can speak English and a little bit French and thus I'm unable to add any other language (L10N) and need help on this. Anybody who is willing to help to add support for a new language other than German and English is welcome. Just add your interest in a comment on this page and we will find a way to add your translated messages to raspiBackupInstallUI and raspiBackup.

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Sometimes you don't want to restore a whole system but restore only some files or directories. That's not directly supported by raspiBackup. But given the fact raspiBackup was designed to restore a system from it's backups with plain Linux tools it's possible for all three backup types. But all activities have to be done on a Linux system because the tools used to retrieve the data are Linux tools. The most convenient way to retrieve backup data is offered by rsync. dd and tar require to execute some commands in the command line first.

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Von Zeit zu Zeit gibt es eine neue Version von raspiBackup die neue Funktionen, Erweiterungen und auch Fehlerkorrekturen enthält. Diese Version durchläuft einen automatisierten Regressiontest, der die eigentliche Backup- und Restorefunktionialität testet. Danach werden die neuen Funktionen, Erweiterungen und Bug Fixes, die während der Entwicklung schon getestet wurden, noch einmal manuell verifiziert. Danach wird die neue Version als Beta allgemein zur Verfügung gestellt. Dieses ist erkennbar daran, dass dem eMail Subject das Smiley :-D vorangestellt wird. Dann hat jeder Benutzer von raspiBackup die Möglichkeit die zukünftige neue Version vorneweg mit den neuen Funktionen, Erweiterungen und Fehlerkorrekturen zu testen und im Fehlerfalle ein Problemrecord zu erstellen so dass das Problem gefixed werden kann. Es ist einfach nicht möglich alle möglichen Systemumgebungsbedingungen zu testen. Deshalb hilft das Testen der Betaversion auch für die Community sicherzustellen, dass sich möglichst keine Fehler in der neuen Version eingeschlichen haben.

Auf der folgenden Seite wird beschrieben wie man eine Beta installieren kann, sie wieder deinstallieren und Problemberichte erstellen kann.

 

Unterkategorien