Kerbal Space Program

Ab und an findet man im Netz Spiele bei denen man sich fragt, warum man sie erst jetzt entdeckt hat. Eines dieser Spiele ist „Kerbal Space Program“. In dem Spiel geht es darum ein eigenes Raumfahrtprogramm aufzubauen. Das fängt damit an das die Rakete zusammen gebaut werden muss, samt allem was man für das entsprechende Reiseziel benötigt.

Eine Rakete beim Start

Eine Rakete beim Start

Technisch basiert das ganze auf der Unity Engine. Bedingt dadurch läuft es auf Linux, Mac OS X und Windows. Die aktuelle Version trägt die Nummer 0.20.2 und das Spiel befindet sich immer noch im Alpha Stadium ist aber trotzdem spielbar, so das man viele Stunden damit verbringen kann. Dabei wird man immer wieder feststellen das es nicht einfach ist eine Rakete zu bauen die ihr Ziel auch erreicht. Ja es ist „Rocket Science“ ;)

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://www.youtube.com/watch?v=j3RjAvloASI

Neben den bereits vorhandenen Features, sind viele weitere geplant. So soll es neue Planeten geben und die Physikengine soll eklatante Verbesserungen erfahren. Auch an einem Ausbildungscenter für die Kerbonauten und einer Forschungsabteilung wird gearbeitet. Rund um das Spiel hat sich mittlerweile eine aktive Moddingszene gebildet, dessen Werke im SpacePort zu sehen sind. Bezogen werden kann das Spiel unter https://kerbalspaceprogram.com/ – das Spiel schlägt dabei mit $ 23 zu Buche.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Kerbal_Space_Program

Image von einer SD-Karte unter Mac OS X erstellen

Manchmal benötigt man ein Image von einer SD-Karte, z.B. dann wenn man eine Installation einer Raspberry Pi Distribution von einer solchen Karte sichern möchte. Im ersten Schritt muss man ermitteln welche Kennung die SD-Karte trägt. Dies geschieht im Terminal mittels:

diskutil list

Die Ausgabe könnte dann in etwa so aussehen:

/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:          Apple_CoreStorage                         250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           *249.8 GB   disk1
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *16.1 GB    disk2
   1:             Windows_FAT_32 NO NAME                 16.1 GB    disk2s1

In diesem Fall ist das Gerät „/dev/disk2“ die SD-Karte ist. Mittels des Befehls „dd“ wird dann das entsprechende Image erzeugt:

sudo dd if=/dev/disk2 of=sdcard.img

Der Vorgang nimmt dabei durchaus einige Zeit in Anspruch, in welcher man keine Ausgaben auf der Konsole sieht. Nach der Erzeugung des Images, gibt „dd“ noch eine Auswertung des Kopiervorganges zum Besten und die Kopie ist komplett.

Unity und Android und das aktuelle SDK

Seit ein paar Tagen ist es möglich mit den frei verfügbaren Unity Versionen auch Android und iOS Builds zu bauen. Wenn man nun also anfängt und das aktuelle Android SDK herunterlädt und anschließend versucht in Unity einen Android Build zu erzeugen wird man feststellen, das dass ganze nicht funktioniert. Stattdessen bekommt man für einen kurzen Moment die Meldung:

Error building Player: Exception: android (invokation failed)

zu sehen. Der Grund für diesen Fehler ist dabei recht simpel. Unity arbeitet im Moment noch nicht mit der aktuellen SDK Version (r22) von Android zusammen. Hier muss auf die ältere r21 Version umgestiegen werden, damit Unity funktioniert. Diese gibt es für Linux, Mac OS X und Windows.

Scrivener und Probleme beim eBook Export

Wenn man unter Scrivener in ein eBook Format wie Mobi oder EPUB exportieren will, so bekommt man das Problem das bestimmte Formatierungen, wie z.B. die Einrückungen beim „Blockquote“ nicht berücksichtigt werden.

Die "Compile" Optionen

Die „Compile“ Optionen

Für das Problem gibt es eine Lösung, allerdings ist diese relativ gut versteckt. Im „Compile“ Fenster wählt man dabei den Tab „Formating“ und betätigt dort den Button „Options…“ in der oberen rechten Ecke. Dort aktiviert man dann den Punkt „Preserve tabs and indents“ und schon werden die Einrückungen richtig exportiert.

Den Raspberry Pi in einen Airplay Server verwandeln

Selten gab es einen Embedded Computer so günstig wie den Raspberry Pi, also was liegt da näher sich einen solchen für den Heimeinsatz zu besorgen. Wenn man sich anschaut bei welchen Preisen Airplay Boxen anfangen, wird man merken das ein Raspberry Pi mit einem entsprechenden WLAN-Stick und einem Boxensystem immer noch günstiger ist. Airplay-Boxen, welche im Handel erhältlich sind beginnen ab 200 € mit einer nach oben offenen Grenze.

Für einen Raspberry Pi, Airplay Server benötigt man:

  • einen Rapsberry Pi
  • ein Gehäuse für den Pi
  • einen WLAN Stick
  • ein paar Boxen

Im ersten Schritt sollte man sich eine Raspberry Pi Distribution herunterladen, in diesem Fall wird Raspian benutzt. Dazu wird das Image heruntergeladen und entpackt. Anschließend hat man auf dem Rechner eine .img Datei. Diese muss nun auf die SD-Karte geflasht werden. Um herauszufinden, welches Volume geflasht werden muss, kann man sich auf dem Terminal unter Mac OS X mittels „df -h“ anschauen welches Gerät dazukommt. Eine andere Möglichkeit ist es die Karte über den Namen zu identifizieren, welcher bei neuen Karten meist „NO NAME“ oder „Untitled“ sein sollte.

Wenn das passende Gerät identifiziert wurde, sollte die gemountete Partition mittels:

diskutil unmount /dev/disk2s1

wieder freigegeben werden. Nun wechselt man im Terminal in den Ordner, in welchem die Imagedatei liegt und gibt dabei folgendes ein:

sudo dd bs=1m if=raspbian.img of=/dev/rdisk2

Zu beachten ist dabei das aus „disk2s1“ -> „rdisk2“ wird, womit das Gerät direkt angesprochen wird. Theoretisch würde auch „disk2“ funktionieren, allerdings geht die Übertragungsgeschwindigkeit hierbei drastisch in den Keller. Nach dem Flashen der Karte wird das Gerät mittels:

diskutil eject /dev/rdisk2

ausgeworfen. Die Karte kann nun in den ausgeschalteten Pi gelegt werden und dieser mit Strom versorgt werden. Beim ersten Start wird man vom Konfigurationsmenü „raspi-config“ begrüßt. Hier kann man das Tastaturlayout, den SSH Server und andere Dinge einstellen. Wir stellen ein deutsches Tastaturlayout ein und aktivieren den SSH Server. Des Weiteren sollte man das Passwort für den Nutzer Pi ändern und die root Partion auf den gesamten Bereich der SD-Karte ausdehnen. Anschließend kann man den Pi neu starten.

Für das drahtlose Netz wird der WLAN-Stick an den Raspberry Pi angeschlossen. Wenn man dies im laufenden Betrieb macht, kann es passieren, dass der Pi anschließend neu startet. Das ganze sieht etwas nach einer Brownout Detection aus, sprich der Raspberry hat für einen Moment zu wenig Strom und startet neu.

In der Konsole kann man jetzt mittels „ifconfig“ feststellen, ob ein weiteres Netzwerkgerät hinzugekommen ist. Dort sollten die Geräte „eth0“, „lo“ und „wlan0“ auftauchen. Nun geht es an die Konfiguration des WLANs. Dazu wird die „/etc/network/interfaces“ mittels „nano“ aufgerufen:

sudo nano /etc/network/interfaces

Dabei werden einige Änderungen in der Datei vorgenommen. Anschließend sollte die „interfaces“ Datei wie folgt aussehen:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -B w -D wext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Nun geht es an die Konfiguration der „/etc/wpa_supplicant/wpa_supplicant.conf“ Datei. Diese sollte nach der Konfiguration in etwa so aussehen:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
  ssid="WLAN"
  scan_ssid=1
  proto=RSN
  key_mgmt=WPA-PSK
  pairwise=CCMP
  group=CCMP
  psk="geheim"
}

Im vorliegenden Beispiel wurde ein WPA 2 verschlüsseltes WLAN eingerichtet. Bei einem Neustart sollte das WLAN anschließend verfügbar sein. Ist dies nicht der Fall, so kann der Prozess mittels:

sudo wpa_supplicant -i wlan0 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf -d

manuell aktiviert werden. Dabei sieht man dann auch entsprechende Fehlermeldungen, welche auf Probleme hinweisen können. Wenn die WLAN-Schnittstelle aktiv ist, kann man auf einem anderen Terminal mittels „iwconfig“ sehen, ob die Schnittstelle funktioniert. Dies ist dann gegeben, wenn die Schnittstelle nicht mehr als „unassociated“ markiert ist.

Der letzte Punkt, der jetzt noch fehlt, ist die Unterstützung für Airplay. Hierfür wird Shairport installiert. Dazu werden im ersten Schritt die notwendigen Bibliotheken installiert, sowie der Quellcode von Shairport und dem SDP Modul auf den Pi geholt:

sudo apt-get install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils libmodule-build-perl
git clone git clone https://github.com/njh/perl-net-sdp.git
git clone git://github.com/abrasive/shairport.git

Bevor Shairport kompiliert wird, muss das SDP Modul installiert werden. Dazu wechseln wie in den Ordner und geben dort folgendes ein:

perl Build.PL
sudo ./Build
sudo ./Build test
sudo ./Build install

Danach wechseln wir in den Shairport Ordner und geben dort „make“ ein. Anschließend können wir ganze mittels „perl shairport.pl“ starten und einen ersten Test vornehmen. Nun müssen wir noch dafür sorgen das Shairport beim Start des Pi auch gestartet wird. Außerdem soll der Empfänger noch einen ordentlichen Namen bekommen. Dazu geben wir im Shairport Ordner folgendes ein:

sudo make install
sudo cp shairport.init.sample /etc/init.d/shairport
cd /etc/init.d
sudo chmod a+x shairport
sudo update-rc.d shairport defaults
sudo nano shairport

Nachdem wir die Datei „shairport“ in „nano“ geöffnet haben, ändert wir dort den Namen z.B. in Schlafzimmer oder Wohnzimmer. Damit bekommt der Empfänger einen eindeutigen Namen. Nach einem Neustart oder einem manuellen:

./shairport start

ist der eigene AirPlay Empfänger fertig.

Weitere Informationen gibt es unter:
http://wiki.ubuntuusers.de/WLAN
http://wiki.ubuntuusers.de/WLAN/wpa_supplicant
http://netz10.de/2010/02/13/wlan-wpa2-mit-psk-manuell-konfigurieren/