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 272013
 

In unserem vorherigen Artikel haben wir über die Möglichkeit, eine NTFS Partition über das Pi im Netzwerk für Windows Rechner bereitzustellen, berichtet.

In dem Post ist bereits angeklungen, dass NTFS auf dem Pi leider nur sehr langsam läuft (zumindest ntfs-3g, was für Partitionen > 2 TB Größe benötigt wird).

Daher haben wir auf der 3 TB Festplatte eine ext4 Partition eingerichtet. ext4 ist ein natives Linux-Dateisystem, performanter als ext3, und durch Journalling sicherer als ext2. ext2 ist in manchen Tests ein wenig schneller als ext4. btrfs befindet sich immer noch in Entwicklung, reiserfs ist nach dem Skandal um den Chefentwickler (reiser) eingeschlafen / eingestellt worden, xfs und andere Dateisysteme scheinen ihre Stärken eher bei vielen Zugriffen gleichzeitig auszuspielen, noch nicht im niedrig-tourigen Bereich. Fazit: ext4 ist eine gute Wahl.

Das Share ist schnell nach unserer alten Anleitung eingerichtet, die /etc/fstab schaut danach so aus:

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that
UUID=DA0E27C90E279E0F   /mnt/bigdata    ntfs    defaults        0       2
UUID=f70cc6cc-fa33-4df7-9e69-2d17333fba75       /mnt/e4data     ext4    defaults        0       2

Die  beiden UUIDs unterscheiden sich deutlich, da die eine für eine NTFS Partition, und die zweite für eine native Linux-Partition eingerichtet wurde.

Die weiteren Schritte befinden sich in unserem vorherigen Post.

Geschwindigkeit / Auslastung

image

Während wir beim Schreiben auf die ntfs Partition eine 100 % Auslastung, hauptsächlich durch den ntfs Treiber, sehen, sehen wir hier eine Auslastung von 50 % des Raspberrys – dabei ist der smb Daemon mit 32 % beteiligt und htop selbst immerhin mit 13 %.

Der wichtigste Unterschied ist jedoch, dass bei einem Kopierprozess das Abspielen von einem Video über den Samba Share (NTFS-Partition) nicht mehr beeinträchtigt wird, wie es bei Kopieren auf die ntfs Partition der Fall war (Prozessorüberlastung).

image

Die Top-Geschwindigkeit ist allerdings ähnlich wie mit ntfs mit ca. 2,5 – 3 MB limitiert. Vielleicht können die Samba Share Einstellungen weiter optimiert werden, um höhere Durchsatzraten zu erzielen.

Rein Technisch gesehen sollten ca. 100 Mbit/s ~ 10 MB /s erreichbar sein (Limit durch LAN Port des PI). 480 Mbit/s Bandbreite am USB Port “sollten” ausreichen um die Daten wieder auf die Festplatte zu schreiben.

Weitere Tests werden folgen.

Windows Shares: nur ein User gleichzeitig

Eine “so gewollte” Besonderheit von Windows Shares ist am Windows Rechner anscheinend die Möglichkeit sich nur mit einem User zum gleichen Server zu verbinden. Sogar wenn ich am Samba Server also zwei User für zwei unterschiedliche Shares einrichte, erhalte ich Probleme am lokalen Rechner. Die Fehlermeldung ist leider irreführend!! Man kann “Connect using different credentials” also nur EINMAL pro Server einsetzen.

Die einfachste Lösung dafür ist, einen speziellen User pro Computer auf dem Samba Server anzulegen, und allen Shares hinzuzufügen, auf die dieser User zugreifen darf.

May 212013
 

Das ist eine Anleitung wie man eine mit NTFS formatierte Festplatte über den Raspberry Pi im heimischen (Windows-) Netzwerk freigibt. Der Samba-Teil kann (und sollte) natürlich auch mit Linux Partitionen verwendet werden.

penguinadmin

ntfs-3g installieren

Dieses Paket wird benötigt um NTFS – Partitionen größer als 2 TB einbinden zu können. Ich habe diesen Absatz ganz an den Anfang gestellt, damit etwaiige Probleme erst gar nicht auftreten. Sollte man nur Linux Partitionen einbinden wollen, kann das entfallen.

Da der ntfs-3g Treiber sehr ressourcenintensiv ist, sollte man wenn möglich native Linux (ext4 / ext3) Partitionen bevorzugen.

Die dazugehörige Fehlermeldung, falls man es ohne dieses Paket  versuchen würde, würde lauten:

pi@andromeda /mnt $ sudo mount -a
mount: wrong fs type, bad option, bad superblock on /dev/sda1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

pi@andromeda /mnt $ sudo dmesg | tail
(...)
[23556.245263] NTFS driver 2.1.30 [Flags: R/W MODULE].
[23556.265987] NTFS-fs error (device sda1): parse_ntfs_boot_sector(): Volume size (2TiB) is too large for this architecture.  Maximum supported is 2TiB.  Sorry.
[23556.266018] NTFS-fs error (device sda1): ntfs_fill_super(): Unsupported NTFS filesystem.

Daher installieren wir das Paket ganz einfach:

sudo apt-get install ntfs-3g

Einbinden einer neuen Festplatte

  • Schließe die Festplatte an.
  • Überprüfe mit lsusb ob sie erkannt wurde
pi@andromeda ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub
Bus 001 Device 005: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 001 Device 006: ID 0bc2:3320 Seagate RSS LLC

In unserem Fall ist die Festplatte eine Seagate 3 TB USB 3.0 Festplatte (abwärtskompatibel mit USB 2.0 für den Raspberry Pi). Sie wird erkannt.

  • Liste die angeschlossenen Speichermedien auf mit:

sudo lsblk -o NAME,FSTYPE,MOUNTPOINT,LABEL,UUID,MODEL,SIZE,STATE,OWNER,GROUP,MODE,TYPE 

image

Wenn Deine Ausgabe anstelle der Baumsymbole links komische Zeichen ausgibt, stelle die Zeichensatzkodierung deines SSH-Clients (z.B. PuTTY) auf UTF-8 um. (Klick auf das Bild öffnet eine größere Version)

In unserem Beispiel wird also sowohl die SD Karte von der der Pi gebootet wird ( /dev/mmcblk0 ) mit ihren zwei Partitionen /dev/mmcblk0p1 und /dev/mmcblk0p2, sowie die Seagate Festplatte als /dev/sda mit der einzigen Partition /dev/sda1 angezeigt.

Wichtig an dieser Stelle anzumerken ist, dass die Buchstaben, z.B. das a bei /dev/sda nach der Reihenfolge des Einsteckens vergeben werden. Um jedesmal sicher die richtige Festplatte anzusprechen (z.B. wenn man mehrere Festplatten an dem Pi anschließt, oder zusätzliche USB Sticks / SD Reader / …), sollte man sich daher der UUID bedienen.

  • Liste die UUIDS auf, und verifiziere deren Zuordnung:

ls –lR /dev/disk/by-uuid/

image

 

  • Mountpoint erstellen und /etc/fstab editieren (hier erstmal die Default Einstellungen in dieser Datei zur Referenz):
pi@andromeda /mnt $ sudo su
root@andromeda:/mnt# mkdir /mnt/bigdata
root@andromeda:/mnt# nano /etc/fstab

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1

Der Mountpoint ist nötig, um die Festplatte in das Hauptdateisystem “einhängen” und damit später adressieren zu können  Es sollte sich um einen leeren Ordner handeln, der aber nicht unbedingt in /mnt liegen muss. (Nur das Verzeichnis /tmp sollte man vorsichtig benutzen – es wird bei jedem Neustart geleert).

Wie bereits oben ausgeführt, sollte man hier NICHT /dev/sda1 eintragen, sondern den Pfad mit der UUID, um sicherzustellen dass die richtige Festplatte angesprochen wird.

Wir fügen folgende Zeile in die /etc/fstab hinzu:

UUID=DA0E27C90E279E0F   /mnt/bigdata    ntfs    defaults        0       2

Dabei sind die einzelnen Spalten jeweils mit einem Tab getrennt.

  • die UUID solltest Du mit Deiner UUID ersetzen, die der Partition entspricht die Dich interessiert
  • den Mountpoint ebenfalls mit dem, den Du erstellt hast
  • das Dateisystem ggf. anpassen, falls es nicht ntfs ist
  • defaults bedeutet: standard-Einstellungen (z.B. ob das Dateisystem beim Start automatisch eingehängt werden soll – normalerweise ja)
  • die zahl 0 bedeutet “dump-freq” – Archivierungsfrequenz für das Programm dump – 0 bedeutet “disabled”
  • die zahl 2 spezifiziert die Reihenfolge des Dateisystem-Checks. Nicht-root Partitionen sollten hier eine 2 oder eine 0 (disabled) haben.

 

  • initiales Mounten

Die Partition ist jetzt in /etc/fstab eingetragen, und wir sollten sie jetzt einhängen (nach einem Neustart wird das automatisch gemacht werden):

sudo mount -a

Sollte hier ein Fehler auftreten, schaue bitte den allerersten Absatz nochmal an – hast Du das Paket ntfs-3g installiert?

 

Samba

Samba ist eine “Kompatibilitätsschicht” mit der Windows-Welt von der Linux-Seite her. Es dient nicht nur zur Freigabe von Dateien, sondern auch um z.B. Drucker für Windows zur Verfügung zu stellen.

Aus meiner Sicht ist die Freigabe unter Linux deutlich einfacher als unter Windows selber, also herein ins Vergnügen:

  • wir installieren samba
pi@andromeda ~ $ sudo su
root@andromeda:/home/pi# aptitude install samba samba-common-bin

Samba liest seine Einstellungen aus der Datei /etc/samba/smb.conf – wir schlagen vor die Default Datei als Backup zu verschieben, und eine neue Datei mit einfachen Einstellungen anzulegen. Eine einfache funktionierende Beispieldatei (in Anlehnung an diesen Artikel) ist im folgenden wiedergegeben:

# Global parameters
[global]
       workgroup = HOME
       netbios name = ANDROMEDA
       server string = Samba Server %v
       map to guest = Bad User
       log file = /var/log/samba/log.%m
       max log size = 50
#       socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
       preferred master = No
       local master = No
       dns proxy = No
       security = User

# Share
[bigdata]
       path = /mnt/bigdata
       valid users = my-samba-user
       read only = No
       create mask = 0777
       directory mask = 0777

Die Gruppe global ist ein Sonderbezeichner, es gibt außerdem weitere, z.B. für Drucker. Die workgroup “HOME” hat für uns ganz gut funktioniert, evtl. könnte man noch “WORKGROUP” ausprobieren.

Edit: Durch auskommentieren der socket options Zeile (durch die Raute #)  – wie durch den Kommentar von Basti empfohlen, kann man die Geschwindigkeit auf nahezu den vollen Durchsatz des 100 Mbit/s Ports des Raspberrys anheben! (=> ca. 10 MB/s)

Der netbios name ist der wichtigste Teil unter global. Das ist der neue Windows-Name des Raspberry Pi’s. Es macht Sinn ihn genauso zu benennen, wie den echten hostnamen des Raspberrys (das was üblicherweise auf der Kommandozeile immer angezeigt wird).

Der Name des Shares wird später unter Windows im Pfad eingegeben, ist hier in rechteckigen Klammern, bigdata.

Der vorher erstellte Pfad zum mountpoint sollte hier verändert werden, unter valid users einzutragen ist ein frei wählbarer Name (hier als Beispiel “my-samba-user”), für den wir im nächsten Schritt einen Benutzer anlegen werden.

  • Samba User anlegen, Einstellungen testen, Samba Server neustarten
root@andromeda:/etc/samba# useradd -c "Pi Samba user" my-samba-user

root@andromeda:/etc/samba# smbpasswd -a my-samba-user
New SMB password:
Retype new SMB password:
Added user my-samba-user.

root@andromeda:/etc/samba# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[bigdata]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        workgroup = HOME
        server string = Samba Server %v
        map to guest = Bad User
        log file = /var/log/samba/log.%m
        max log size = 50
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        local master = No
        dns proxy = No
        idmap config * : backend = tdb

[bigdata]
        path = /mnt/bigdata
        valid users = my-samba-user
        read only = No
        create mask = 0777
        directory mask = 0777

root@andromeda:/etc/samba# service samba restart
[ ok ] Stopping Samba daemons: nmbd smbd.
[ ok ] Starting Samba daemons: nmbd smbd.

root@andromeda:/etc/samba#

Das ist alles was auf Linux Seite erforderlich ist.

 

Einfacher Verbindungstest

image

Man kann jetzt im Windows (falls man den Startknopf noch hat) Dialog “Ausführen” bzw. “Run” auswählen, und den Pfad des neuen SAMBA Shares einfach angeben. In unserem Beispiel “\\ANDROMEDA\bigdata” – ANDROMEDA ist der Pi und bigdata der Share. Man beachte die BACK-Slashes!

Es geht ein Dialog auf, in dem man den ebenfalls bereits auf dem Raspberry Pi angelegten SAMBA-Benutzer und das Passwort eingeben muss, danach öffnet sich ein Explorer-Fenster mit dem Inhalt des neuen Netzlaufwerkes.

 

Dauerhafte Verbindung einrichten

 

Windows 8

image

Explorer aufmachen, Computer anklicken, Reiter “Computer”, “Map Network Drive” klicken. (Map Network Drive kann man auch per Rechtsklick auf “Computer” aus dem Kontext-Menü auswählen).

image

Hier muss man einen (lokalen) Laufwerksbuchstaben auswählen, und den Pfad des Netzlaufwerkes angeben. Bequemerweise kann man auch mit dem Knopf “Browse …” den Ordner auswählen, der Pi taucht in der HOME Gruppe einfach auf. Sollte es das nicht tun, dennoch den Pfad manuell eintippen – das sollte so klappen.

Wichtig ist, dass “Connect using different credentials” angekreuzt ist – wir haben auf dem Raspberry einen eigenen User für die Verbindung eingerichtet.

Ein Klick auf “Finish” ruft den Dialog für die Passwort / Nutzer – Eingabe auf:

image

Hier sollte man die Login Daten des speziell dafür angelegten SAMBA Nutzers eingeben. Es empfiehlt sich in sicheren Umgebungen vermutlich auch, “Remember my credentials” einzugeben, damit sich der Rechner die Zugangsdaten merkt.

That’s it – jetzt steht das Laufwerk zur Verfügung!

 

Windows 7

image

Man öffnet den Explorer, klickt auf “Computer”, und auf “Map network drive”. (Falls man es in der Leiste oben nicht findet, kann man es auch per rechts-Klick auf “Computer” erreichen).

Ansonsten analoges Vorgehen wie bei Windows 8, siehe oben!

 

Windows XP

netzlaufwerk-verbinden

Im Explorer wählt man unter Extras den Menüpunkt “Netzlaufwerk verbinden …” aus …

netzlaufwerk-dialog

es erscheint dieser Dialog, in dem man den Pfad (analog wie bei Windows 8 bzw. 7) eingeben sollte. Anders ist hier, dass man anstelle einer Checkbox “als anderer Benutzer verbinden” eine Art Hyperlink hat, den man anklicken sollte.

verbinden-als

Es erscheint daraufhin dieser Dialog, in dem man die Zugangsdaten die auf dem Raspberry Pi für Samba eingerichtet wurden, eingeben sollte. Ein Klick auf OK hier, und auf Fertig stellen im vorherigen Dialog sollte das Netzlaufwerk verbinden und gleich ein Explorer-Fenster mit dessen Inhalt öffnen.

 

Q & A

Web browser

Ein wichtiger Vorteil von SAMBA ist, dass man den Pi ab sofort unter seinem (Samba) Namen per Webbrowser erreichen kann. Z.B. kann ich einfach andromeda als Adresse angeben, und vorausgesetzt dass ein Webserver installiert ist, wird die Webseite problemlos aufgerufen

image

 

Was für eine Geschwindigkeit kann man erwarten?

Edit: Durch auskommentieren der socket options Zeile (durch die Raute #)  – wie durch den Kommentar von Basti empfohlen, kann man die Geschwindigkeit auf nahezu den vollen Durchsatz des 100 Mbit/s Ports des Raspberrys anheben! (=> ca. 10 MB/s)

image

>> ca. 5 – 6 MB/s

Dabei war die angeschlossene Festplatte eine USB 3.0 Festplatte, es wird das 100 Mbit/s Netzwerk des Raspberrys benutzt, angeschlossen sind das Zielnotebook und der Raspberry am gleichen Gigabit-Switch, und es wird auf eine SSD kopiert, was den Raspberry selber bzw. die USB Implementatoin darauf zu der Engstelle macht.

Das ist natürlich nicht besonders schnell, aber zum Streamen von Filmen, Musik, Dokumenten und für Background-Backups reicht es. Lieber allerdings nicht alles gleichzeitig Smile

Mögliche Gründe für diese niedrige Geschwindigkeit sind – neben den Flaschenhälsen LAN, USB (was sowohl für lesen von der Festplatte als auch für das LAN benötigt wird) das Dateisystem NTFS bzw. der Treiber ntfs-3g dafür. Er ist bekannt, sehr ressourcenfressend zu sein. Vielleicht ist der Default-Treiber für ntfs ressourcenschonender, bei unserem Test mussten wir jedoch ntfs-3g wegen der 3 Terabyte Größe der Festplatte verwenden. Bevorzugen sollte man wie schon erwähnt Linux-eigene Partitionsformate. Wir werden demnächst einen Test damit veröffentlichen.

Die Geschwindigkeit über WLAN (an das Notebook, Raspberry Pi ist weiterhin per LAN angebunden) ist mit ca. 700 KB/s deutlich niedriger – seltsamerweise. Wir würden uns hier über ein paar Erfahrungen von euch freuen (einfach als Kommentar posten). Evtl. liegt das auch an unserer Netzwerk-Topologie / Timing-Problemen …

 

Referenzen / weitere Information

May 212013
 

Dem letzt habe ich etwas mit Transistorschaltungen experimentiert und leider durch einen Kurzschluss mein System zerschossen. Zum Glück habe ich davor meine Daten gesichert, ansonsten wäre alles weg.

Nachdem ich festgestellt habe, dass mein Raspi nicht mehr bootet, habe ich die SD-Karte neu bespielt. MAC-User sollten hier lieber auf Windows zugreifen, da der SD-Card-Builder nicht richtig funktioniert. Als ich alles wieder eingerichtet hatte, wollte ich schauen, ob mein PiFace einen Schaden davon getragen hat. Leider konnte ich kein Programm starten.

Im folgenden probierte ich einen neuen Raspi und ein neues PiFace, das Ergebnis war immer noch das gleiche. Schließlich habe ich festgestellt, dass Gordon seine PiFace-Umgebung auf einen neueren Stand gebracht hat und daher muss das PiFace etwas anders eingerichtet werden:

  1. Raspbian updaten (der Upgrade-Befehls dauert etwa eine halbe Stunde und muss einmal bestätigt werden):
    sudo apt-get update
    sudo apt-get install git-core
    sudo apt-get upgrade
     
  2. Gordons Verzeichnis laden
    git clone git://git.drogon.net/wiringPi
  3. Verzeichnis wechseln
    cd wiringPi
  4. Einrichtung
    git pull origin
    ./build

hier kam bei mir immer eine Fehlermeldung: unable to open SPI-device

  • manuelle Behebung dieser Fehlermeldung (muss nach jedem Neustart neu ausgeführt werden):
    gpio load spi
    sudo modprobe spi_bcm2708
    sudo chown `id -u`.`id -g` /dev/spidev0.*
  • automatische Behebung (muss nur einmalig gemacht werden, dauert aber ein paar Minuten):
    sudo sed -i -r ‘s/^(blacklist spi-bcm2708)/#\1/’ /etc/modprobe.d/raspi-blacklist.conf
    wget -O –
    http://pi.cs.man.ac.uk/download/install.txt | bash
    sudo reboot

Test, ob es funktioniert:

  1. richtiges Verzeichnis auswählen
    cd wiringPi/examples/PiFace/
  2. Anzeigen der Dateien
    ls
  3. Binden des Programms (Programmname = Name des Programms, aber ohne “.c”)
    make Programmname
    (Bsp: make blink)
  4. Ausführen des Programms als root (die ausführbare Datei hat kein “Punktsuffix am Ende, es steht also nur der Name)
    sudo ./Programmname

 

Quellen:
http://peregrineplanet.com/post/a-facefull-of-pi-working-with-pi-face
https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/

 Posted by at 7:38 pm
May 192013
 

Die USB-Soundkarte ist recht einfach zu installieren:

  1. Soundkarte einstecken und Raspi einschalten
  2. mit der folgenden Zeile öffnet ihr dann eine Datei
    sudo nano /etc/modprobe.d/alsa-base.conf
  3. jetzt müsst ihr die folgende Zeile mit einer “#” auskommentieren (Zeile befindet sich im unteren Drittel des Files):
    options snd-usb-audio index=-2

    (oder siehe Bild unten die nachfolgende Zeile mit “Edit Max und Adam”)

    13_05_04_alsa-base_conf

  4. das File speichern
  5. den Raspi neustarten:
    sudo reboot
  6. jetzt seid ihr fertig!
    Ihr könnt euch auch noch die angeschlossenen Geräte anzeigen lassen:
    aplay –l

Viel Spaß mit eurer neuen Airplay Station!

 

Quelle:
http://root42.blogspot.de/2013/03/attaching-usb-sound-card-to-raspberry-pi.html

 Posted by at 1:14 pm
May 142013
 

 

In diesem Video zeigt die Foundation, wie man die Raspberry Pi Kamera richtig anschließen muss:

  • Vorsichtig beim Auspacken – die Kamera ist sehr sensibel was Elektrostatik betrifft!
  • Der richtige Verbinder ist der neben dem Ethernet-Port
  • man macht die Plastiklasche des Verbinders mit sanftem Zug etwas auf
  • Das Flachbandkabel wird mit der metallischen-Kontaktseite WEG vom Ethernetport (d.h. die metallischen Kontakte schauen in die andere Richtung) vorsichtig in den Verbinder eingeführt
  • Der Verbinder ist ein “ZIF”-Konnektor, d.h. ZERO insertion force – also nicht mit Gewalt Smile
  • anschließend steckt man die Plastiklasche wieder fest.

Selbstverständlich bitte nicht im laufenden Betrieb und ohne angeschlossenes Netzteil.

 

 

raspberry-pi-kamera-vorbestellen

Software

sudo apt-get update
sudo apt-get upgrade
sudo raspi-config

Damit lädt man die aktuellen Paketquellen herunter, führt ein Upgrade des Systems durch, und kann mit dem raspi-config Tool die Kamera aktivieren (unter dem Menüpunkt “camera” “enable” auswählen).

Danach sollte man, wie der Konfigurationsassistent vorschlägt, ein Reboot durchführen.

Kamera benutzen

Es gibt zwei Programme zum Aufzeichnen:

Videos

raspivid -o video.h264 -t 10000

Das zeichnet ein Video im H264 Format von 10 sec Länge auf.

Schnappschüsse

raspistill -o image.jpeg

Das erstellt ein Foto.

Die beiden Kommandos sind hier dokumentiert. Man kann auch mittels raspivid | less bzw. raspistill | less sich die Optionen ausgeben lassen.

Videos über Netzwerk streamen

Dieser Post von der Raspberry Pi Seite erklärt, wie man Videos von der Raspi Kamera über Netzwerk streamen kann.

May 142013
 

Die Firma Farnell ermöglicht jetzt pro Kunde genau EIN Kameramodul zu bestellen. Das habe ich selber erst vor wenigen Minuten erfahren.

D.h. ich kann selber als Händler leider auch nur eines bestellen, möchte Ihnen aber die Info nicht vorenthalten, damit Sie vielleicht schon erste Erfahrungen sammeln können.

Die Kamera ist aktuell NICHT offiziell gelistet, sondern kann nur manuell im Webkonto bei der Auflistung (im Warenkorb vermutlich) direkt eingegeben werden, die Bestellnummer ist 2302279

D.h. die Suche wird auf der Webseite zu der Bestellnummer NICHTS ergeben

Telefonische Bestellung

Ich empfehle, telefonisch zu bestellen. Farnell Verkauf: 089/61 39 39 39

Es steht nur noch eine sehr begrenzte Anzahl für Deutschland zur Verfügung, letzter Stand waren noch 141 Stück.

Diese Kameramodule werden direkt aus England verschickt und sollten innerhalb der nächsten Tage bereits bei den Bestellern sein!

Die nächste Lieferung, und auch allgemeine Verfügbarkeit via pi3g in beliebigen Stückzahlen wird erst in 9 Wochen erwartet.

Update 17:58

Mittlerweile ist die Lieferzeit wohl deutlich kürzer, so dass wir mit einer guten Verfügbarkeit Ende Mai rechnen. Aber das kann schnell umschlagen …

Custom Cases

Ich möchte diese Gelegenheit auch schamlos nutzen um für unser neues Produkt Custom Case zu werben:

sunglasses-hicolormany-cases

Sie können jetzt Ihr Raspberry Pi mit einem “eigenen Gewand” versehen, und Ihr Firmenlogo, den Linux-Pinguin Tux, beliebige Slogans, Icons und was Ihnen sonst noch einfällt auf das Gehäuse draufdrucken lassen.

“Bestellen Sie mich jetzt”

May 082013
 

Ever found yourself manually typing in information from one computer to the next, or saving to a text file on a thumb drive, unplugging it (not forgetting to swear at Microsoft Windows for not letting it go “safe removal problems” …), replugging it into the other computer, etc, etc …

Well there’s Apps like Evernote for situations like these. But you do not always want the full-blown extravaganza of note-taking Evernote provides. What about the good old quick & dirty approach?

There is a solution for that. A PHP based script, which can be run on your local Raspberry server.

Installing nginx

Apache is a very heavyweight / bloated webserver compared to nginx. For our purposes (some light PHP without any .htaccess / mod_rewrite magic) nginx will be quite OK.

Install and start nginx:

aptitude install nginx
service nginx start

Installing PHP and acceleration

We will install PHP-FPM, the Fast CGI PHP daemon. Fast CGI is a good choice (much faster than plain old CGI). Stil we will want some additional acceleration – PHP compiles each time a web page is opened, and pages rarely change. By caching the compilation output we can significantly increase the speed and responsiveness. VERY important on the Pi!

apt-get install php5-fpm
apt-get install php5-xcache
service php5-fpm restart

The default installation of PHP-FPM on the Pi will be configured to use Unix sockets, which again is a good thing as it eliminates TCP overhead.

Configuring nginx

You should now configure nginx and tell it to process .php files through the PHP-FPM daemon.

Edit your /etc/nginx/sites-available/default – it should look something like this after you’re finished:

server {
        listen   80; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6

        root /webroot;
        #/usr/share/nginx/www;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name localhost;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.html;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

        location /doc/ {
                alias /usr/share/doc/;
                autoindex on;
                allow 127.0.0.1;
                allow ::1;
                deny all;
        }

        # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
        #location /RequestDenied {
        #       proxy_pass http://127.0.0.1:8080;
        #}

        #error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/www;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}
}

Notable entries in this file are:

  • I have changed the web server root to /webroot
    • obviously you need to create this directory and also change the owner to www-data:www-data
  •  index index.php index.html index.htm; –> use index.php first, if it exists
  •  try_files $uri =404; –> attempt to prevent “zero day exploits”
  • fastcgi_pass unix:/var/run/php5-fpm.sock; –> this tells nginx to use a Unix socket. The path is the default one for php5-fpm on Raspbian

Installing the webnotepad

This could be any other PHP application which does not depend upon a database backend. I’m going to make this real quick and rough:

image

This is a preview of the web notepad you are about to install.

Konstruktors html5-notepad

Get it from the above link ( we are using version 0.2) – the demo on that page seems to be down.

Unzip it, mv the folder which is extracted to a meaningful name (we chose “notes”). Inside it, create a folder with some random name (there is no entries folder in the ZIP download, just create a new folder).

Edit sync.php and change the DATA_DIR to the random name you entered, and edit user and password name (if you run out of ideas, try pi / raspberry).

Just use it to jot down notes, and transfer text (i.e. Dropbox links ?) between computers.

Most important: the Raspberry Pi is getting more useful by the day!

May 082013
 

This is a short summary of the German article I have posted yesterday. Have a look at it, if you want to see photos how to distinguish Version 1.0 from Version 2.0 of this TP-Link TL-WN725 N Nano WiFi USB dongle.

Update

We have released a package in our repository to install this driver in the most easy fashion possible. Head on over to our new blog-post to read all about it!

What is this about?

TP-Link changed the chip driving it’s TL-WN725N Nano WiFi stick. Whereas v1.0 would work out of the box with the newest Raspbian (02-09-13) v2.0 does not work unless you install a custom driver.

Driver installation procedure (legacy)

If possible, you should use the instructions to install the driver from our repository – it is more convenient for you. The remainder of this article is here for historical purposes.

MrEngman from the Raspberry Pi Forum has compiled a driver for v2.0 (which uses the 8188eu chip), including modifications for making the blue LED work and less debug output (thus making it faster).

Here are his installation instructions, quoted from this forum post on the Raspberry Pi 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

Once you have installed the driver you should activate it:

sudo depmod -a
sudo modprobe 8188eu

The first command will update the kernel module settings – on the next reboot, the new driver should be included automatically. The second command allows you to load the driver immediately. Now you can try ifconfig to see wlan0 – it should be available now.

Raspbian Image with driver

We have bundled the driver with a fresh Raspbian image, based on Raspbian 2013-02-09.

Additionally we have updated the apt cache, and installed all currently available updates to the default packages. This should save you some bandwidth and – more importantly – time.

This image will be 4 GB in size when you decompress it (use 7-zip), and should be installed by the usual method of image writing to SD cards. Please note that we have not expanded the image to fit the whole (4 GB) SD card, you still need to run sudo raspi-config to finish the set-up.

The original tar.gz file from MrEngman is in the folder /home/pi/wlan-fix – just in case you should ever need it, it is already installed and activated for you in this image.

download-tp-link-wlan-fix-image[4]Download raspbian-wifi-fix130523.7z (532 MB)

 

Update

I have updated the image today (31.05.2013). It has all updates as of the 23rd of may of a stock Raspbian install. Also I have resized the image to the real size the partitions need initially.

Please note, if you run updates the driver may become disabled. Simply use

sudo depmod -a
sudo modprobe 8188eu

to fix this after the updates.

 

Simple WiFi network setup

In the simple case of the Raspberry Pi being used with WLAN only, a DHCP access point / router, and no roaming is required, you should be fine with the followíng /etc/network/interfaces file

auto lo

iface lo inet loopback
#iface eth0 inet dhcp

allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
        wpa-ssid "your-ssid"
        wpa-psk "your-password"
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Change your-ssid and your-password, but please keep the quotation marks around them. As you see in the setup above, the wpa_supplicant.conf is commented out.

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

Optimization WordPress Plugins & Solutions by W3 EDGE