go seven !

XBMC 13.0 „Gotham“ wurde veröffentlicht

Seit gestern Abend steht die dreizehnte Version des beliebten XBMC (XBoxMediaCenter) zum Download bereit.

xbmc-gotham-13_0-splash-600x336

Die Neuerungen der Version sind besonders interessant für Android, Linux und RaspberryPi-Nutzer. Letzere profitieren von der verbesserten Performance auf Low-End-Systemen. Linux-Nutzer dürften sich über die vollständige Integration des Pulseaudio-Servers freuen, die Android-Nutzer über die Hardware-Beschleunigung beim Videodekodieren.

RaspberryPi-Nutzern empfehle ich auf die Version 4.0 von openelec.tv zu warten (sollte in den nächsten Tagen erscheinen), bisher gibt es nur die Version 3.9.7, welche auf dem Release-Candidate von Gotham basiert. Hier nochmal die Features von XBMC 13 zusammengefasst:

  • Android Hardware Decoding: XBMC 13.0 unterstützt nun Hardware Decoding auf Android-Geräten. Hierzu gibt es nun zwei verschiedene Versionen von XBMC für Android, eine ARM und eine x86 Version.
  • Raspberry Pi und Android Geschwindigkeitsverbesserungen: Die Unterstützung für schwächere Geräte wurde stark verbessert, sodass XBMC nun auch auf einem Raspberry Pi flüssig läuft und die Ladezeiten für Bilder oder Videos wurden stark verbessert.
  • Stereoskopisches 3D Rendering: XBMC kann nun auch mit 3D-Filmen umgehen, die in den folgenden Formaten vorliegen: SBS, TAB, Anaglyph und Interlaced. XBMC unterstützt weiterhin keine 3D-BluRays.
  • Verbesserte Unterstützung von Touchscreens: Die Bedienung von XBMC auf Touchscreens wurde um Gesten während des Video-Playbacks erweitert, Wischgesten können im Menü verwendet werden.
  • Verbessertes UPnP: XBMC-Installationen können nun untereinander kommunizieren. So kann man zum Beispiel ein Video auf einem Gerät auswählen, auf einem anderen abspielen.
  • Verbesserungen der Audio Engine: Bessere Audioqualität und neue Einstellungen. Hat zur Folge, dass manche Nutzer eventuell neu einstellen müssen, was aber durch die vereinfachten Optionen nicht das Problem sein sollte.
  • Verbesserte Einstellungen: Die Einstellungen für XBMC wurden vereinfacht. Diese sind in verschiedene Kategorien eingeteilt, sodass Anfänger ebenso in den Einstellungen herumwerkeln können wie XBMC-Vollprofis.
  • Verbesserte Untertitel-Suche: Die Suche nach Untertiteln soll sich für den Nutzer einfacher gestalten, dieser muss sich entscheiden, mit welchem Untertitel-Plugin man arbeiten möchte.

Download XBMC

Download openelec

Quelle: Die Features-Liste wurde eiskalt gemopst bei Cashy’s Blog.

Freier Grafiktreiber für den RaspberryPi

Endlich ist es soweit! Ein freier Grafiktreiber für den Raspberry ist verfügbar. Momentan muss man dazu aber noch den Kernel selber compilieren:

SETTING UP THE DEVICE

You will need:

  • a Raspberry Pi, preferably a 512MB version, with the latest Raspbian
  • a network connection
  • a monitor capable of displaying 1080p
  • an SD card, at least 8GB (10GB is recommended)

We need plenty of space to build the kernel. Compiling will take around 12 hours, so it is helpful to overclock the Pi for this task. We also require the latest firmware, and the necessary packages we’re going to use to build the code.

Note: We’re going to use gcc 4.7, as the code generated is 10% faster than with 4.6. 4.8 is 10% faster still, but this is not available on Raspbian. If you cross-compile you can get better frame times.

Enter the raspi-config utility with:

sudo raspi-config

Expand the filesystem, set the overclock to at least medium (900 MHz), and reboot. Now perform an update with:

sudo rpi-update

and reboot again. We need to install several packages. Enter the following command to do this:

sudo apt-get -y install gcc make bc screen ncurses-dev g++-4.7 libsdl1.2-dev

FETCHING THE SOFTWARE

Enter the following commands to retrieve the necessary software from GitHub:

git clone --depth=1 https://github.com/raspberrypi/linux.git
git clone https://github.com/simonjhall/challenge
git clone https://github.com/simonjhall/dma
git clone https://github.com/raspberrypi/quake3.git

BUILDING THE KERNEL

This will take around 10 hours with all kernel modules. Pruning the modules to the bare minimum can improve compile times if you wish. Enter the following commands:

cd linux
git apply ~/challenge/kernel/patch.diff
zcat /proc/config.gz > .config
make oldconfig
make menuconfig

Enter “general setup”, select “local version”, enter the string “simon” and then exit to the main menu and save. Now build the kernel with:

make ARCH=arm

INSTALLING THE KERNEL

Enter the following commands to install the new kernel:

sudo make ARCH=arm modules_install
sudo cp arch/arm/boot/Image /boot/kernel_simon.img
sudo su
echo kernel=kernel_simon.img >> /boot/config.txt
echo gpu_mem=128 >> /boot/config.txt
reboot

When the devices comes back up, verify that the new kernel is loaded with the following command:

uname -a

You should see something similar to this:

Linux raspberrypi 3.10.33simon+ #1 PREEMPT Sat Mar 22 09:49:59 UTC 2014 armv6l x

BUILDING THE REST

Enter the following commands to build the rest of the software:

cd ~/quake3
git apply ~/challenge/quake/patch.diff
./build.sh
cd ~/dma
cp ~/challenge/kernel/module/dmaer.c .
make
./install.sh

Next, verify that the module has installed with this command:

tail /var/log/kern.log

You should see something similar to this:

Mar 23 15:22:45 raspberrypi kernel: [ 20.814750] smsc95xx 1-1.1:1.0 eth0:lin1
Mar 23 15:22:45 raspberrypi kernel: [ 21.376702] bcm2835-cpufreq: switching td
Mar 23 15:22:45 raspberrypi kernel: [ 21.376710] bcm2835-cpufreq: switching td
Mar 23 15:22:46 raspberrypi kernel: [ 24.472575] Adding 102396k swap on /var/S
Mar 23 15:25:02 raspberrypi kernel: [ 143.984835] 20c00000 f2c00000 deadbeef
Mar 23 15:25:02 raspberrypi kernel: [ 143.984866] major device number 248
Mar 23 15:25:02 raspberrypi kernel: [ 143.984890] vma list size 12, page list 6
Mar 23 15:25:02 raspberrypi kernel: [ 143.984909] allocated dma channel 4(f208
Mar 23 15:25:02 raspberrypi kernel: [ 143.985242] qpu ENABLED
Mar 23 15:25:02 raspberrypi kernel: [ 143.985264] V3D identify test: V3D versi2

Now enter the following commands:

cd ~/challenge/source
make
sudo make install

SETTING UP THE GAME

First of all you must ensure that you have the Quake 3 Arena data files on your Pi. You require the ‘point release’ pak files installed. There are various ways to do this but you could either transfer them from another machine with SCP, or copy them across on a USB stick. Copy the files into a folder called ‘baseq3′. This should now contain pak files numbered from 0 to 8 (eg pak1.pk3).

Next, enter the following commands:

sudo mkdir /root/.q3a
sudo mv baseq3/ /root/.q3a/
cd ~/quake3/build/release-linux-arm/
sudo mknod char_dev c 100 0
sudo cp ~/challenge/quake/demo.cfg /root/.q3a/baseq3/

RUNNING THE GAME

Enter the game folder with the following command:

cd ~/quake3/build/release-linux-arm/

Run the game using this command:

sudo ./ioquake3.arm +exec demo

If you wish to play the game after a reboot, you must run the following commands to re-load the necessary files:

cd ~/dma
./install.sh

Ich werde das Ganze demnächst auf deutsch anbieten – momentan probiere ich es aber noch selbst aus – was ja bekanntlich etwas dauern kann, auf dem Pi. Cross-compiling werde ich dann auch noch anschneiden… Viel Spaß euch mit Quake 3 und dem Pi!

7462_full

RaspberryPi, Relaisboard, WebGPIO und was ich damit anstelle

Kurzes Vorwort: Ich habe einen RaspberryPi, ein Relaisboard (als 4er oder 2er) und dafür eine Websteuerung geschrieben. Nun was damit anfangen? In meiner Studentenbude habe ich (auch mit einem Pi) ein Heimkinosystem mit Beamer, Soundsystem & co. Da man als Automatisierungstechniker grundsätzlich faul ist, möchte ich den Beamer nicht per Fernbedienung einschalten (und auch Kanalwechsel und co per Handy steuern) sowie das Soundsystem & Beamer komplett vom Netz trennen können (da ich ja in dem Zimmer schlafe).

Dazu soll der Beamer (Benq MP610) per Seriell-Verbindung gesteuert werden und alle Komponenten per Relaisboard spannungsfrei geschaltet werden. Letzteres habe ich nun (Prototypenmäßig) realisiert. Für Bastelwillige, die dies nachbauen wollen, hier eine Materialliste:

  • RaspberryPi
  • WLAN-Modul (wenn man kein LAN-Kabel verlegen will)
  • Aufputz-Verteilerdose (oder ähnliches, großes Gehäuse)
  • Relaisboard
  • Diverse NYM-Kabel (gibt es bei Obi, alternativ kann man auch flexibles Kabel nehmen)
  • Diverse Steckkabel (Jumperkabel, female-female und male-female)
  • Steckdosen (an die die Relaisausgänge im Endeffekt angeschlossen werden)
  • 5V Netzteil

Der Pi, wird mit Spannungsversorgung (5V) sowie den Railaisboard(s) in der Verteilerdose untergebracht:

pi-box

Ich möchte an dieser Stelle darauf hinweisen, dass die Verkabelung nicht Final ist. Es handelt sich hierbei um einen PROTOTYPEN. Man möge mir deshalb die Unprofessionalität verzeihen. Kurz zusammengefasst kann ich die Verdrahtung so zusammenfassen:

Das schwarze Kabel sorgt für die Spannungsversorgung (230V). Derzeit nur per Schuko-Steckdose – also Maximal 16A. Später soll der Pi im Unterverteiler meines Zimmers sitzen und dann werden die 3 Phasen auf die diversen Relais aufgeteilt (jedes Maximal 10A), um eine Lastverteilung zu garantieren und mehr als nur 16A Gesamtstrom haben zu können. Diese Spannungsversorgung speist das 5V Netzteil (ganz links) sowie die Eingänge der Relais 1 bis 6.

Die 5V Spannungsversorgung speist den Pi (über PIN 2 und 6) sowie VCC der Relaisboards (VCC und GND, der Jumper zwischen JD-VCC und VCC muss gesetzt sein). Die Steuereingänge der Relaisboards gehen direkt auf die GPIO-Pins des Pi.

Zusätzlich habe ich eine LED angebracht (Rot, hinter einem 100Ohm Widerstand), welche den Betriebszustand signalisiert. Diese ist direkt zwischen GND und PIN11 angeschlossen (MIT Widerstand 😛 ).

Die Softwareseite ist regelmäßigen Lesern schon bekannt. Ich setze Raspbian ein, zusätzlich meine Websteuerung. Damit kann ich über ein Webinterface die GPIO’s lesen und schreiben.

Todo:

  • Serielle Verbindung zum Beamer herstellen
  • Oberfläche bereinigen, anpassen
  • Als Android-App umsetzen
  • Umsetzung auf Hutschiene (bei Pollin gibt es da ein tolles Set)

UPDATE:

Auf Wunsch eines Lesers habe ich hier mal die grundsätzliche Verschaltung dargelegt:

connection

Man entschuldige bitte die Unprofessionalität der Zeichnung – sie entstand in kürzester Zeit im Zug 🙂 Wichtig: Die hier dargestellte Weise funktioniert zwar, ist aber bezüglich der Spannungsversorgung des Boards nicht zu empfehlen, wenn der Pi nur über MicroUSB befeuert wird. Am besten werden das Board UND der Pi an den GPIO’s versorgt. PS: Die GPIO’s sind frei wählbar. Der Jumper muss gesetzt sein.

WLAN Probleme mit dem Raspberry Pi beseitigen

Seit kurzem hängt einer meiner Pi’s am WLAN. Die Treiberunterstützung ist gut, der Stick wird sofort erkannt. Auch das Aufbauen der Verbindung klappt. Allerdings begegnete ich dem Problem, dass die Verbindung oft „einfror“ und teilweise gar Pakete verloren gingen. Beim Pi tippt man da als erfahrener User schnell auf eine mangelhafte Spannungs- / Stromversorgung. Also schnell das Messgerät ran und: 5,15V bei 0,81A. Kein Ding also, bei entsprechendem Netzteil. Aber woher dann die Aussetzer und Hänger?

Linux hat eine eingebaute Energiesparfunktion für WLAN. Ursprünglich gedacht war diese für Notebooks, um die Akkulaufzeit zu verlängern. In meinem Fall versetzt sie aber die WLAN Karte in eine Sparmodus, der eine Korrekte Datenübertragung verhindert. Was kompliziert kling kann simpel umgangen werden. Dazu muss die Datei /etc/network/interfaces geöffnet werden:

sudo nano /etc/network/interfaces

Jetzt wird folgende Zeile eingefügt:

wireless-power off

Mit Strg + X schließen, mit J oder Y bestätigen, neustarten und schon schnurrt die WLAN Verbindung wieder!

pi-wlan-powersave

Advaboard – TFT-Display, Touchscreen, RTC, 5V-I/Os, I2C, SPI, RS-485, Power-Management und viel mehr für den Raspberry Pi

Ja, die Überschrift ist etwas lang. Aber das hat seinen Grund. Denn das Advaboard vereint alle meine Wünsche, die ich bezüglich eines Breakoutboards habe. Ich habe es Anfang der Woche bestellt und werde es Ende dieser Woche erhalten. Dann gibt es natürlich weiteres Review, hier soll aber schon etwas vorgegriffen werden. Deshalb erstmal ein paar technische Details:

  • TFT-Display-Schnittstelle für TFT-Display inkl. Touchscreen
  • Echtzeituhr (optional batteriegepuffert)
  • erweiterte Schnittstellen
    • I2C, erweiterter SPI
    • Digital- und Analog-I/Os
    • RS-232, RS-485
  • 5V-tolerante Ein-/Ausgänge (außer I2C)
  • Power-Management / Batteriebetrieb
  • Softwarebibliothek + Beispielprogramme (super Dokumentation!!!)
  • Framebuffer- und Touchscreen-Treiber für Linux
  • JTAG-/C2-Programmer
  • optionale Peripherie: Sensoren, Erweiterungsplatinen, Displays, Automatisierungskomponenten (z.B. Motoren), Messtechnik

advaboard-rpi1_TFT32_desktop.1024Im Bild seht ihr, wie ein (optional günstig erhältlicher) Touchscreen direkt per X11 angesteuert wird. Es gibt also einen Treiber dafür – es werden sogar bis zu 30fps erreicht, für Videos und Games ist dies natürlich nicht gedacht, eher um als eine Art HMI verwendet zu werden. Auch dafür gibt es Softwarebesipiele die den einstieg erleichtern.

Was plane ich?

Ich möchte dies mit meiner GPIO-Control kombinieren, um den PI besser zur Hausautomatisierung zu verweden. Man soll (simpel gesagt) die Relais per Touchscreen schalten können, gleichzeitig auch Zustand von digitalen und analogen Inputs auslesen können (um beispielsweise die Feuchtigkeit in der Erde meiner geliebten Pflanze zu messen). Das wird natürlich nicht in 10 Minuten gehen und ein wenig Entwicklungszeit erfordern. Dank der guten Dokumentation und des schnellen technisch versierten Support sollte es aber keine großen Probleme geben (wie ich sie beispielsweise zu Anfang beim CubieBoard hatte).