Jun 172013
 

Intro

wifi_logo (1)In diesem Artikel stelle ich eine Lösung vor, um  das Netzwerk an dem der Raspberry verbunden ist über einen USB WLAN Adapter für andere Computer zur Verfügung zu stellen. Der Raspberry arbeitet dabei als Brücke (bridge), und leitet einfach alle Daten die am WiFi  Adapter ankommen in das LAN weiter.

Das kann bspw. sinnvoll sein, wenn man zwei Netzwerke zu Hause betreiben möchte – ein schnelles für n-fähige Geräte, und ein langsames für b / g Geräte; Eine Isolation der Netzwerke gegeneinander findet aufgrund des bridged Modes in unserer Anleitung nicht statt – die IP Adressen der über WLAN angeschlossenen Computer z..B. werden vom  DHCP-Router vergeben, nicht vom Raspberry.

Ein weiterer Einsatzzweck ist das Einrichten von WLANs in anderen Stockwerken / entfernten Orten (z.B. im Keller?), vor allem wenn man  dem  Raspberry noch weitere Aufgaben angedeihen lassen möchte.

Der Vorteil an der bridged Lösung ist geringerer Prozessor-Overhead für den Raspberry, und geringerer Verwaltungsaufwand (IP Adressen).

Hardware-Anforderungen

Nicht alle USB WLAN Sticks unterstützen den dazu notwendigen AP Modus, bzw. die “nl80211 API”. Wir beschreiben weiter unten, wie Sie Ihren Stick überprüfen können.

cartIn unserem Shop bieten wir den Logilink WL0084B v2.0 an, der als Access Point geeignet ist.

Er basiert auf dem Ralink RT5370 Chipsatz.

 

Root-Rechte nötig

Die folgenden Kommandos sind alle als root Nutzer auszuführen (sudo su).

Installation der nötigen Pakete
aptitude install hostapd hostap-utils iw bridge-utils
  • hostapd, hostap-utils: WLAN Stick als Access Point nutzen
  • iw: Konfigurations-Programm für Funknetzwerk-Devices
  • bridge-utils: ermöglichen zwei Netzwerke miteinander zu verbinden

iw hilft festzustellen ob Ihr USB-WiFi Stick Access-Point fähig ist. Nicht alle sind es!

iw list

iw list zeigt die vorhandenen Funknetzwerk-Geräte an.

nl80211 not found

Falls hier der Fehler “nl80211 not found” auftaucht, wird eine ältere Version von hostapd benötigt. Weitere Details dazu – bspw. für den TP-Link TL-WN725N WiFi – gibt es auf dieser Seite. Der besagte TP-Link wäre bei lsusb beispielsweise folgendermaßen aufgeführt (v1):

Bus 001 Device 011: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

Sticks die die nl80211 API unterstützen

Wir benutzen im folgenden einen USB-WLAN Stick, der die nl80211 api unterstützt, d.h. dieser Fehler taucht NICHT auf, sondern man erhält mit iw list etwa folgende Ausgabe:

root@andromeda:~# iw list
Wiphy phy9
        Band 1:
( ... )
        Available Antennas: TX 0 RX 0
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * WDS
                 * monitor
                 * mesh point
        software interface modes (can always be added):
                 * AP/VLAN
                 * monitor
        interface combinations are not supported
( ... )        
Device supports HT-IBSS.

Wir nutzen einen Logilink Adapter (Modell WL0084B v2.0), per lsusb wird dessen Chipsatz identifiziert als:

Bus 001 Device 021: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter

 

Konfiguration

Zunächst muss man in der /etc/init.d/hostapd den Pfad zur (noch zu erstellenden) hostapd Konfigurationsdatei einstellen. ( nano /etc/init.d/hostapd ) Finden Sie die Zeile mit DAEMON_CONF, und ergänzen Sie sie wie folgt:

DAEMON_CONF=/etc/hostapd/hostapd.conf

erstellen Sie jetzt die hostapd.conf ( nano /etc/hostapd/hostapd.conf ) und befüllen Sie sie mit dem folgenden Inhalt:

ctrl_interface=/var/run/hostapd
###############################
# Basic Config
###############################
macaddr_acl=0
auth_algs=1
# Most modern wireless drivers in the kernel need driver=nl80211
driver=nl80211
##########################
# Local configuration...
##########################
interface=wlan0
bridge=br0
hw_mode=g
channel=1
ssid=www.pi3g.com
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=BITTE___AENDERN
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Kurze Diskussion der Datei /etc/hostapd/hostapd.conf

hostapd.conf ist empfindlich was Leerzeichen hinter den jeweiligen Konfigurationseinstellungen angeht – bitte vermeiden Sie diese daher.

  • driver: nl80211 bei Geräten die die nl80211 API unterstützen. Es sind auch andere (legacy-) APIs verfügbar, siehe hier
  • interface: man kann auch mehrere WiFi Adapter am Raspberry anschließen – der erste heißt wlan0
  • bridge: diese Brücke werden wir gleich noch einrichten
  • hw_mode: Verbindungsmodus. g bedeutet: g + b
    • b bedeutet: nur b
  • SSID: die SSID des Hotspots
  • wpa=3: WPA1 und WPA2 werden enabled – diese sind dem unsicheren WEP vorzuziehen
  • wpa_passphrase: das ist Ihr Netzwerkschlüssel. BITTE ÄNDERN SIE DIESEN!!

Um 802.11 n einzuschalten, muss man einen zusätzlichen Parameter “ieee80211n” auf 1 setzen. z.B. für g & n:

hw_mode=g
ieee80211n=1
 
Konfiguration der bridge

Die Bridge sorgt dafür, dass die Netzwerkpakete die die Access Point Clients über diesen senden direkt über den Ethernet Port des Raspberrys weitergeleitet werden. Wir haben die bridge-utils bereits installiert, und müssen nur noch die Einstellungen anpassen.

Editieren Sie die /etc/network/interfaces (nano etc/network/interfaces )

auto lo

iface lo inet loopback
auto br0
iface br0 inet static
        address 192.168.1.11
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        bridge-ports eth0 wlan0

Kurze Diskussion:

  • Die bridge br0  ersetzt Ihr bisheriges eth0 Interface, sie wird daher wie eth0 konfiguriert
    • hier in einer statischen Konfiguration – unser Netzwerk ist 192.168.1.*, der Router 192.168.1.1
  • bridge-ports eth0 wlan0 ist das “magische Kommando”, was wlan0 mit eth0 verknüpft
  • Das ist alles – keine weiteren Einträge (insbesondere nicht für wlan0)

Neustart

Nach einem Neustart sollte das System voll funktionsfähig sein. Sie können jetzt Clients mit Hilfe der Zugangsdaten über den Access Point verbinden.

Alternativ können Sie es auch mit folgenden Kommandos ohne Neustart versuchen:

ifdown eth0; ifup br0
service hostapd restart
DNSMASQ

In unserem Setup ist kein dnsmasq nötig – das wäre erforderlich, falls Sie keine bridge machen wollen, sondern den Clients eigene IP Adressen aus einem anderen Bereich geben wollen, z.B. aus Sicherheitsüberlegungen.

Windows – debugging, etc.

  • um die IP Adresse herauszufinden: unter Powershell: ipconfig /all
  • Es empfiehlt sich, die Funknetzwerkbelegung zu analysieren, um den Durchsatz zu optimieren. Unter Windows gibt es dazu bspw. das Tool InSSIDer. (Scheint kostenlos zu sein).

image

Dokumentation & weiterführende Links

Tools
  • InSSIDer – WiFi Analyse-Tool für Windows (auch mit Windows 8 kompatibel)
Waren
Jun 082013
 

Chrono hat einen Schaltplan entworfen und aufgebaut, um einen günstiges Geigerzählermodul (~ 15 € Kosten für die Teile) für das Raspberry Pi zu entwickeln. Die meisten Informationen sind bereits online, samt Bild des Prototypen. Die dazugehörige Software / Webbrowser-Interface möchte Chrono in den kommenden Wochen fertigstellen. Es können auch zwei der Module im Verbundbetrieb miteinander arbeiten, um die Zählrate zu erhöhen.

Geigerzähler-Einsatzzweck

Neben dem offensichtlichen Zweck, die Strahlenbelastung verschiedener Materialien / Gegenden direkt prüfen zu können (ohne extrem teueres Equipment anzuschaffen), kann ein Netzwerk dieser Geiger-Zähler uns über die gesamte Strahlensituation in Deutschland, Europa, und womöglich weltweit geben – von Volunteers betrieben, natürlich.

Eine andere Möglichkeit ist als echter Random Number Generator zu arbeiten.  Eventuell könnte man da eine Webseite drauf laufen lassen, als public random number server.

OpenSource / Open Hardware

Wie alles, was aus dem Apollo NG Projekt hervorgeht, ist auch das Geigerzählermodul OpenSource. Chrono hat kein kommerzielles Interesse, sondern möchte die Welt voranbringen.

Er freut sich aber bestimmt über Hardware-Spenden, mit denen er Apollo aufrüsten kann. Wer Interesse hat, Apollo und Chrono zu unterstützen, sollte ihn am besten kontaktieren.

May 292013
 

Summary

I managed to get Weston running without compiling it from code first. Unfortunately, only the terminal was usable, X applications (midori, chromium, scratch) did not work. I spend the rest of the evening investigating, and would like to share some hints with you – information about Weston & Wayland is not easy to find.

If you want a working solution, come back in a couple of weeks – we will most probably have one for you. If you love to tinker, read on. This article will be a great starting base for exploration.

weston-on-raspberry-screenshot

Installing Weston and Wayland

The following instructions are to be executed as root:

# echo deb http://raspberrypi.collabora.com wheezy rpi >> /etc/apt/sources.list
# apt-get update
# apt-get install weston

Accept the installation without known key. (You have to expressly enter “Y” for this).

Edit your /boot/config.txt and add the following lines at the end of the file: (hint: “sudo nano /boot/config.txt “)

#Settings for Weston to work
gpu_mem=128
dispmanx_offline=1

Reboot.

Edit your /etc/weston/weston.ini

[shell]
focus-animation=dim-layer
animation=zoom

[launcher]
icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png
path=/usr/bin/weston-terminal

[launcher]
icon=/usr/share/icons/gnome/32x32/actions/insert-image.png
path=/usr/bin/simple-shm

[launcher]
icon=/usr/share/icons/gnome/32x32/apps/zen-icon.png
path=/usr/bin/midori

[core]
modules=xwayland.so,desktop-shell.so

The important lines are the two last ones – the launchers will unfortunately not work in my setup, as X does not work … The modules have to be loaded in EXACTLY this order – first xwayland, then desktop-shell. You also cannot omit desktop-shell – else weston will show a black screen only.

I am not sure, whether I am overriding (sensible?) defaults, as there is very little documentation on the topic as of yet.

Create a weston-starter script which will set up some variables: “ sudo nano /pi/home/weston-starter “ with the following contents:

#! /bin/bash

#export WLD="$HOME/local"
export WLD=""

export PATH="$WLD/bin:$PATH"
export LD_LIBRARY_PATH="$WLD/lib:/opt/vc/lib"
export PKG_CONFIG_PATH="$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/"
export ACLOCAL="aclocal -I $WLD/share/aclocal"
export XDG_RUNTIME_DIR="/tmp/wayland"
export XDG_CONFIG_HOME="$WLD/etc"
export XORGCONFIG="$WLD/etc/xorg-conf"

mkdir -p "$WLD/share/aclocal"
mkdir -p "$WLD/share/pkgconfig"
mkdir -p "$XDG_RUNTIME_DIR"
chmod 0700 "$XDG_RUNTIME_DIR"

#cp bcm_host.pc egl.pc glesv2.pc $WLD/share/pkgconfig/

#git clone git://anongit.freedesktop.org/wayland/wayland

weston --log=/tmp/weston.log

Again – these should very probably be adjusted, and MAY be the cause of the problem with the X-Server. I have adjusted them from a script a user used to compile weston.

The last line actually starts weston, and logs it’s output to /tmp/weston.log (normally this gets sent to the terminal, which is hidden by weston itself). Very handy to monitor from an SSH shell on a second computer.

Make it executable (chmod +x weston-starter).

 

OK. If everything goes well, you can start weston now.

pi@raspberrypi ~ $ ./weston-starter

(Be sure to start it as user pi – if you start it as root first, the temporary directory created in /tmp will not be accessible by pi. You can of course also chmod this directory to be world readable and writable /tmp/wayland )

Playing around with weston

You will be able to start multiple terminal instances, resize them and drag them around, and interact with the system via the terminals.

The second icon does not work for me. The third icon which I added to the configuration (to start Midori) neither.

Here are some nifty facts:

  • hit the Windows key to get into “expose mode”
  • hit Windows key + Tab to switch between open Windows
  • hold down Windows key and scroll the mouse to zoom into any area (this is pretty cool and pretty smooth)
  • Ctrl + Alt + Backspace terminates weston
  • Wayland has it’s own screenshot utility – it can’t be invoked from the command line, instead you have to press a shortcut (unfortunately I do not know which one). It may also be, that I disabled this screenshot utility by explicitly listing the modules to be loaded in the weston.ini

weston-zoom

Showing off the zooming feature of Weston / Wayland. This is a pretty cool, dynamic feature, to which the still picture can do no justice.

The little there is to see REALLY impressed me. It is so fluid, so fast – I was not used to this from the Raspberry Pi and GUI applications before.

X-Applications

You will NOT be able to start any X application with my instructions. I suspect, that the X-Server which is installed from the default repositories does not support wayland!

Fatal server error:
X Unrecognized option: -wayland

If you have a look at file /usr/lib/weston/xwayland.so with the text editor somewhere in the file you will see the x server being called with this –wayland option. Trying to invoke it from the command line with it will yield the error message above, but I also managed to get it out of a starting wayland server somehow.

This can be also seen in the following logexcerpt ( /tmp/weston.log which we set up in our start script )

[23:38:20.556] xserver listening on display :0
[23:38:20.557] Loading module ‘/usr/lib/weston/desktop-shell.so’
[23:38:20.560] Compositor capabilities:
               arbitrary surface rotation: no
               screen capture uses y-flip: no
[23:38:20.560] libwayland: using socket /tmp/wayland/wayland-0
[23:38:20.562] launching ‘/usr/lib/weston/weston-desktop-shell’
[23:38:24.558] forked X server, pid 4635
[23:38:24.596] libwayland: disconnect from client 0x19ad188
[23:38:24.597] xserver crashing too fast: 256

All the fun stuff (Midori, LibreOffice, Chromium, …) is unfortunately not testable …

If you try to start Midori, it will yield the following error message:

Midori - Cannot open display:

MFAQ

Mock-FAQ, as no one asked (yet).

weston-launch

There seems to be no such program on the Raspberry Pi, yet. weston-launch passes parameters to weston with the following syntax: weston-launch — –modules=xwayland.so,desktop-shell.so

Note the double double dashes. weston itself takes only single double dashes in front of modules.

man weston

A good idea if you’re stuck with any Linux command is to look at it’s manpage. Weston is no exception, it ships with one which is quite handy.

 

To be done

We need to have LibreOffice running on Raspbian hardfloat under Weston & Wayland. This probably means compiling weston & wayland, and getting a special x server compatible with them. And this in turn means setting up a crosscompiling rig.

A quote from the manpage:

XWayland requires a special X.org server to be installed. This X server will connect to a Wayland server as a Wayland client, and X clients will connect to the X server. XWayland provides backwards compatibility to X applications in a Wayland stack.

References

May 072013
 

Ein Kunde schrieb uns, dass er Probleme hat den von uns eigentlich als “Plug & Play” getesteten TL-WN725N Wireless N Nano USB Adapter mit dem Raspberry Pi zum Laufen zu kriegen. Wir analysieren in diesem Blogpost das Problem und bieten am Ende des Artikels eine Lösung zum Selberinstallieren sowie ein bereits fertiges Image. Unsere Lösung wird nur für Version 2.0 des Nano WiFi Adapters benötigt, die Version 1.0 arbeitet sofort mit dem normalen Raspbian Image von der Foundation.

image

Es stellt sich heraus, dass es zwei Versionen gibt. Die zwei Versionen sind äußerlich kaum zu unterscheiden, die Verpackung absolut identisch. Anhand der folgenden Merkmale kann man sie erkennen:

 

Version 1

image

Das ist das Produktetikett auf der Unterseite der Verpackung, unter der Shrink-Wrap Plastikfolie angebracht. Darauf steht Ver: 1.0, die P/N ist 0152502085 auf allen Ver 1.0 Verpackungen die wir hier angeschaut haben.

image

Auf der Version 1 des TP-Link nano WiFi Adapters befindet sich auf der Rückseite der Verpackung rechts neben dem Barcode die PN 7022501718 – auf allen Verpackungen die wir bisher untersucht hatten. Sie ist nicht mit der P/N auf dem Produktetikett identisch.

pi@raspberrypi ~ $ lsusb
(...)
Bus 001 Device 008: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
(...)

Der Chip des v1 TL-WIN725N WLAN Adapters wird am Raspberry Pi erkannt als 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter.

v1 des WLAN Adapters, mit dem RTL8188CUS Chip wird “out-of-the-box” vom Raspberry Pi unter dem aktuellen Raspbian (02-09-13) erkannt, ohne weitere Einstellungen treffen zu müssen (d.h. auch ohne die Datei /etc/network/interfaces zu bearbeiten). Das lässt sich einfach so testen:

root@raspberrypi:/home/pi# ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:48:92:0e
          inet addr:192.168.1.190  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:209 errors:0 dropped:0 overruns:0 frame:0
          TX packets:139 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:14792 (14.4 KiB)  TX bytes:19146 (18.6 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 64:70:02:24:5d:1d
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Das der Eintrag wlan0 auftaucht bedeutet, dass der WLAN Adapter erkannt wurde, und jetzt nur noch konfiguriert werden muss. wlan0 sollte sogar bei auskommentiertem wlan0 Eintrag in der Datei /etc/network/interfaces mit ifconfig gelistet werden.

 

Version 2

image

Das ist das Produktetikett auf der Unterseite der Verpackung, unter der Shrink-Wrap Plastikfolie angebracht. Darauf steht Ver: 2.0, die P/N ist 0152502097 auf allen Ver 2.0 Verpackungen die wir hier angeschaut haben.

image

Auf der Version 2 des TP-Link nano WiFi Adapters befindet sich auf der Rückseite der Verpackung rechts neben dem Barcode die PN 7022501164 – auf allen Verpackungen die wir bisher untersucht hatten. Sie ist nicht mit der P/N auf dem Produktetikett identisch.

root@andromeda:/home/pi# lsusb
(...)
Bus 001 Device 010: ID 0bda:8179 Realtek Semiconductor Corp.
(...)

lsusb identifiziert den TP-Link V2 Chip unter Raspbian als “0bda:8179 Realtek Semiconductor Corp.” – keine weitere Produktbezeichnung.

ifconfig zeigt wlan0 NICHT – d.h. das WLAN kann (noch) nicht genutzt werden:

root@raspberrypi:/home/pi# ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:48:92:0e
          inet addr:192.168.1.190  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:147 errors:0 dropped:0 overruns:0 frame:0
          TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:11519 (11.2 KiB)  TX bytes:15266 (14.9 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

Version 2 zum Funken bringen

Selber installieren

Es muss ein neuer Treiber installiert werden. MrEngman aus dem Raspberry Pi Forum hat einen Treiber kompiliert, und hier auf Dropbox zur Verfügung gestellt. Die tar.gz Datei enthält genau eine Datei, 8188eu.ko

Ich zitiere seine Installationsanweisungen aus diesem Forumsbeitrag im RaspberryPi.org Forum:

wget https://dl.dropboxusercontent.com/u/80256631/8188eu-20130209.tar.gz
tar -zxvf 8188eu-20130209.tar.gz
sudo install -p -m 644 8188eu.ko /lib/modules/3.6.11+/kernel/drivers/net/wireless

Danach sollte man den Treiber aktivieren:

sudo depmod -a
sudo modprobe 8188eu

Das erste Kommando untersucht die Modul-Ordner auf neue Treiber hin, die zu dem Kernel hinzugefügt werden. Sie sind beim nächsten Booten aktiv.

Das Kommando modprobe 8188eu erlaubt bereits ohne Start den neuen Treiber zu laden.

 

Unser Image herunterladen

Unser Image basiert auf dem neuesten Raspbian (09.02.2013, Hardfloat) Image. Zusätzlich haben wir die aktuellen Updates für das System eingespielt, und natürlich den Treiber für den TP-Link 150 Mbps Wireless N Nano USB Adapter TL-WN725N v2.0, 8188eu von MrEngman installiert und aktiviert.

Das Image ist ansonsten noch im ursprünglichen Zustand, d.h. sudo raspi-config sollte ausgeführt, und die entsprechenden Einstellungen (Tastaturbelegung, Expansion auf die volle Größe der SD, … ) gemacht werden.

download-tp-link-wlan-fix-imageDownload raspbian-wifi-fix130523.7z (532 MB)

Hinweise:

  • Zum Entpacken bitte 7-Zip verwenden
  • Das Image dann einfach auf die normale Art und Weise auf die SD Karte schreiben
  • mindestens 4 GB SD erforderlich
  • Es handelt sich zwar um ein 4 GB Image, allerdings ist die Partition nicht jenseits von 2 GB expandiert worden (leider haben wir keine 2 GB Karten da).
  • die Original tar.gz Datei mit dem Treiber-Kompilat von MrEngman liegt im Ordner /home/pi/wlan-fix

Referenz & weiterführende Information

Apr 282013
 

Wir haben seit heute ein neues Produkt (erstmal nur über Amazon) im Angebot:

Das CooCox “Embedded Pi” wird mit dem GPIO Port des Raspberrys verbunden. Ein Arduino Shield kann auf das Embedded Pi Board gesteckt werden, und vom Raspberry Pi aus mit Hilfe von C++ Bibliotheken angesprochen werden.

embedded-pi redfly

Das CooCox Board ermöglicht einerseits einen Proxybetrieb, in dem der Raspberry direkt mit dem Arduino Shield kommuniziert, einen Controller-Betrieb, bei dem der Raspberry als Webfrontend bzw. High-Level Controller dient, als auch einen Standalone Betrieb als eigenständige ARM 32 bit Mikrocontroller Plattform.

Arduino Shields einfach mit dem Raspberry Pi ansteuern

Dieses Embedded Pi ist eine sehr spannende Erweiterung, da sie dem Raspberry viele für die Arduino Plattform bereits entwickelte Shields auf einfache Art und Weise zugänglich macht.

Weitere Details in Kürze in unserem Blog.

embedded-pi-rotated

embedded-pi-contents

embedded-pi-back

embedded-pi-raspberry

Apr 272013
 

If you have a powerful primary machine (for instance a Dell notebook with an Intel Core i7 processor), it can easily run several Operating Systems and user sessions in / on them side by side – virtualisation is the magic of today’s computing.

The Raspberry Pi, whilst not having enough general purpose power to do really pleasant desktop computing, can very well serve as a “window” to Windows, Linux, MacOS and other more exotic systems running elsewhere. You could run several users off a powerful server machine – all you need is some networking gear, monitors, mice, keyboards, and of course Raspberry Pis.

Your users will enjoy an absolutely silent and energy-efficient client, while the noisy server is hidden away in the basement somewhere (or is in the admin’s room).

Access Windows from the Raspberry Pi

Today we will show you how to access a virtualised Windows desktop from the Raspberry Pi.

VirtualBox

On the host computer which will run the Operating Systems and user sessions for the Raspberry Pi terminals, you should install Oracle’s VirtualBox. (If you are not a fan of Oracle, remember that this was not developed by them but by SUN, and rebranded later on).

The host computer ideally should have hardware virtualisation extensions in the processor, which will allow the guest systems to run much more fluently.

We assume that you run Windows 7+ on the host. VirtualBox also works on Linux, though.

Run VirtualBox, and set up a Windows virtual machine (how to do this is outside the scope of this document).

Networking setup

Here’s the important part to know: initially the virtual network adapters for your virtual machine are set up as “NAT” devices. To be able to access RDP and all other parts freely on your network, the network adapter should be set up as “Bridged Adapter”.

image

This will connect it directly to your network – the machine will be seen outside of the host computer. If you have a DHCP server running, Windows by default will fetch it’s IP address from the DHCP server (e.g. your router).

To be able to access the virtual machine without looking up it’s address first, we recommend to assign a static IP for it ( outside of the area your DHCP server uses to assign IPs).

This is done by right-clicking on the network adapter in Windows, bringing up it’s properties, and editing the IPv4 properties. Whilst being mostly outside of the scope of this short how-to, I’ll share a screenshot with you, which should help you:

image

adjust your settings accordingly.

Note:

The current IP address of your windows computer can be determined by hitting the Windows key, writing “cmd”, pressing Enter (to bring up the command line), and the following command:

ipconfig

image

 

RDP Setup

This part can also be applied to physical machines running Windows.

To allow remote connections to your Windows machine, you have to enable RDP connections first. This is done by hitting the Windows menu, right-clicking on “Computer”, selecting the entry “Properties”.

In Windows 7, you have to click on “Remote settings” in the sidebar of the window which you will see. The dialogue which comes up, will allow you to configure RDP settings.

image

Select “allow connections from computers running any version of Remote Desktop (less secure)”. Click “OK”.

Creating new user

If you do not have a password protected user in your virtual Windows installation yet, you should set one up. You can either create an admin user or a regular Windows user. Using these credentials you will be able to connect to the machine later on. Of course you can also create a new password for the user you already have, if you have decided not to use a password initially.

Raspberry Pi

Start an X session:

startx

Launch the root shell (start menu > Other > X-Terminal as root (GKsu).

Update apt package cache (if you don’t have aptitude, use apt-get):

aptitude update

Install rdesktop package

aptitude install rdesktop

After rdesktop is installed, it is literally just one short command to connect to your virtual Windows desktop:

rdesktop 192.168.1.3

Just replace the IP address with the IP address of your Windows virtual box.

Rdesktop will start a window and allow you to log in to your Windows virtual box. You can click on “Other user” and insert your login credentials here. If another user is logged in at the main machine / via another terminal, Windows might request you to wait for 30 seconds so the other user might allow or disallow your connection.

If you want to launch a full-screen session, you can use the –f switch

rdesktop -f  192.168.1.3

Forwarding sound of the Windows machine to the Raspberry is also possible. Unfortunately it will sound horrible (choppy / barely understandable) – I am not sure what the reason is, as the Raspberry Pi processor is not maxed out (e.g. when streaming Web radio). The sound will sound the same over HDMI and analog output (tested today).

rdesktop -r sound=local 192.168.1.3

Some further options will improve your experience:

rdesktop -z -x lan -P 192.168.1.3

These switches have the following meaning:

-z: enable compression

-x lan: set experience to “LAN” (will show desktop wallpaper, windows while moving them etc.)

-P: enable caching to disk (i.e. the Raspberry Pi’s disk)

Some screenshots

rdesktop-on-raspberry-pi

 

libreoffice-rdesktop-raspberry

Experience

YouTube

YouTube will run, but very choppy – it will max out the Raspberry Pi’s processor. (This is a software problem – rdesktop is probably not using the efficient GPU of the Pi for processing). Sound quality is horrible, actually you can’t really understand it – it’s all chopped up. Sound quality will improve if you minimize YouTube (thereby limiting screen updates which are required, and lowering the load on the Raspberry processor). Sound will still sound choppy, though. All in all not good enough right now.

Sound

As mentioned above, sound quality (if forwarding sound) will be nearly unbearable. Maybe there are some better solutions (i.e. combining a sound streaming server which captures the sound and plays it back on the Pi).

The sound unfortunately will not improve if setting the Group Policy, and forcing sound quality to “high” on Windows. (use gpedit.msc)

Update

The sound problems seem to occur from buffer underruns on the Raspberry Pi side. (see below, xfreerdp).

Desktop experience

Especially with the optimised parameters (-z –x lan –P) the experience is really smooth. For word processing, spreadsheets and web browsing, you will be pleasantly surprised by the reaction speed.

Drawing & photo manipulation will be doable, but in a test with Paint, there was some slugginess.

Actually I see a huge potential in classical desktop / web application workspaces – where you don’t need multimedia, i.e. in a call center where people use web forms and interfaces to access your account with the company.

xfreerdp

xfreerdp is an alternative RDP client. You can install it using

aptitude install freerdp

And use it

xfreerdp -u Wanda -x l -z --plugin rdpsnd --data alsa -- 192.168.1.3

Please note the “x” in front of freerdp here.

This will connect with the user “Wanda”, enable LAN experience, enable compression (-z), and activate sound forwarding through the rdpsnd plugin. The two double dashes after “alsa” and before the IP of the host virtual machine ARE necessary.

Sound will still sound horrible – it will spew out a lot of “underrun occurred” messages on the console. We have tested different options to decrease load, increase latency, use the tsmf option, etc – nothing changed the horrible quality. Right now, the verdict stays the same: great for desktop computing, but not at all for multimedia applications.

There may be some improvement with the current GIT version of freerdp. We have not tested it yet.

Apr 182013
 

Kein Scherz – die Jungs von pcextreme bieten kostenlose Raspberry Pi Colocation Services an. D.h. man schickt an sie sein Raspberry Pi samt Zubehör (SD Karte z.B.), und sie schließen es ans Internet an. Man erhält sogar eine IPv6 Adresse zusätzlich!

500 GB fair use traffic sind in dem fabelhaften Preis von 0,00 € enthalten.

Wenn man das Raspberry Pi zurückhaben möchte, muss man ca. 7 € für den Versand zurück zahlen. Raspberry Colocation bietet an, ein Raspberry bei ihnen direkt zu kaufen (für die Colocation). Natürlich ist es aber auch möglich, ein pi3g Raspberry Pi zur Colocation zu schicken. Just saying Smile

Apr 172013
 

Vor kurzem habe ich die Gelegenheit gehabt mich mit Chrono zu treffen, und einen gemeinsamen Nachmittag mit sehr interessanten Gesprächen zu verbringen.

Apollo

Chrono verfolgt mit Apollo die Idee eines weitgehend selbst-erhaltenden, autarken, mobilen Hackerspaces. Er möchte damit auf die Reise gehen, und Leuten die keine Hackerspaces in der Nähe haben die Gelegenheit geben zu basteln, neue Techniken zu lernen und Ideen auszutauschen. Dabei versorgen sich z.B. die zwei Apollo Module über Solarzellen und möglicherweise auch Windenergie mit Strom, es sind Schlafplätze vorhanden, die tagsüber zu Softwarearbeitsplätzen umgerüstet werden, etc.

An Bord von dem Apollo-Projekt soll unter anderem z.B. eine CNC Fräse sein – Chrono überlegt aktuell einen Controller auf Basis des Raspberrys mit dem Realtime Kernel Xenomai zu bauen.

CNC stellt besonders hohe Anforderungen an harte Realtime-Fähigkeiten, um ein präzises Stepping hinzukriegen. Ein Litmus Test für den Raspberry – sollte sich das damit realisieren lassen, sind eine große Reihe anderer Anwendungen unproblematisch möglich, da weniger aufwendig.

Um Chrono und das Apollo Projekt zu unterstützen, haben wir zwei pi3g Raspberry Pis für diesen mobilen Hackerspace gestiftet. Bon voyage!

Dronen-Tracker Antenne und Proxy

Chrono hat für eine Drohne einen Proof Of Concept Tracker mit dem Raspberry Pi aufgebaut. Ebenfalls auf dem Xenomai Realtime Kernel basierend, werden von dem Raspberry Pi direkt über den GPIO Servos angesteuert, die die Antenne (im Testaufbau erstmal nur aus Pappe) positionieren. Das fahren der Antenne funktioniert auch über Stunden hinweg sehr zuverlässig – Chrono hatte mir sie demonstrieren können. (Sie hat für eine zusätzliche Geräuschkulisse zu Chronos’ Workstation und der angenehmen Musik im Hintergrund gesorgt).

Gleichzeitig wird über MAVLINK mit der Drone Kontakt gehalten, das Pi dient hier als MAVLINK Proxy. MAVLINK ist ein kompaktes Protokoll für die Kommunikation mit “Micro Air Vehicles”, d.h. auch besagten Dronen. Da über das MAVLINK Positionsinformationen übergeben werden, kann daraus die Antenne nachgeführt werden, um so optimale Reichweiten der Drone erzielen zu können.

Angedacht sind mehrere Basisstationen die jeweils den Aktionsradius der Drone erweitern können.

Diese Drone könnte auch optimal dazu eingesetzt werden um Kommunikationskanäle offen zu halten, indem sie z.B: WLAN Access Points boosted / ausfindig macht / mesh networks aufbaut …

Der Proof of Concept Code ist leider noch nicht releasebereit. Falls Chrono in dieser Richtung etwas releasen wird / einen Write Up machen wird, werden wir ihn natürlich verlinken. (Chrono stellt üblicherweise sehr hochwertige Step-by-step Anleitungen für ein weites Themengebiet ins Netz).

Xenomai

Xenomai ist wie bereits gesagt ein Realtime-Kernel-Ersatz (Framework) für den stock Linux Kernel. Damit ist hartes Realtime auf dem Raspberry Pi möglich, unter anderem auch stabiles PWM über die GPIO Pins in Software.

Weitere Informationen:

Apr 092013
 

Wir haben hier im Büro einen LIDE 30 von CanoScan, der leider keine Treiberunterstützung für Windows 8 / Windows 7 (zumindestens die 64 bit Versionen hat). Mein Bruder hat auf seinem Laptop mit Ubuntu das Programm “simple scan” benutzt, um den Scanner zu benutzen – ohne jegliche Treiberinstallation.

Die Idee liegt natürlich nahe, das auch auf dem Raspberry auszuprobieren.

Der Scanner wird über unseren powered USB Hub an das Raspberry Pi angeschlossen – der Canon LIDE 30 bezieht seinen Strom über USB, und das wollen wir dem Raspberry und seiner Polyfuse nicht direkt zumuten.

Mit startx ist schnell X-Windows aufgerufen, und unter einer Konsole mit aptitude install simple-scan nach einiger Zeit die GUI fürs Scannen installiert.

Mit simple-scan wird sie dann unter der Kommandozeile geöffnet und erkennt den (mittlerweile angeschlossenen) Scanner vollautomatisch. Keine Treibersuche – die Magie von Linux!

Die Oberfläche ist einfach und weitgehend selbsterklärend. Das Ausgabeformat kann man im Speicherndialog unten links einstellen.

Zur Geschwindigkeit: die Prozessorauslastung lag wiedermal bei 100 %, der Scan war vielleicht anderthalb mal so langsam wie unter Ubuntu auf einem modernen Desktoprechner. Die Geschwindigkeit beim Speichern (Konvertierung) war ebenfalls nicht berauschend, für den gelegentlichen Scan mit altem Equipment jedoch akzeptabel.

Eventuell ließe sich hier noch mit einer Class 10 SD Karte (wir hatten mit einer Class 4 getestet), sowie vielleicht einer AJAX – Weboberfläche anstelle von XWindows optimieren. Generell würde ich gerne auch mal das Raspberry im Betrieb von einem RAM Image sehen – ich habe die SD Karte im Verdacht es extrem auszubremsen, egal welche Klasse.

Wir haben hier noch einen Fujitsu ScanSnap 1300i – es wäre interessant was man mit ihm und dem Raspberry Pi so anstellen kann. Mir schwebt da ein Netzwerkserver für den ScanSnap vor …

Apr 072013
 

We have tested with hdparm and an external USB 2.0 drive (drive internal speed spec: up to 130 MB/s).

The Pi hits the ceiling at 21,16 MB / s – about 170 Mbit/s. Not bad, but far from the 480 Mbit/s theoretical limit (or 400 Mbit/s if you account for protocol overhead).

For high-performance streaming / file operations the Pi seems not to be the perfect platform. Remember, it also limits the ethernet speed at 100 Mbit/s – a file server should preferably have Gbit Ethernet. Of course it depends on your applications. If you want to stream a movie once in a while the Pi will cope sweetly with that.

Optimization WordPress Plugins & Solutions by W3 EDGE