Der Raspberry Pi der ersten Generation hat sich bislang allen Versuchen einer Windows-Installation hartnäckig widersetzt. Die Erklärung ist relativ simpel, aber auch vielschichtig. Denn zumindest theoretisch verfügt Microsoft mit Windows RT ja über ein Betriebssystem, das für ARM-Plattformen konzipiert ist. Da steht aber zunächst einmal eine technische Hürde im Weg, denn Windows RT verlangt nach 1 GB RAM und einer 1GHz ARM V7-CPU.
Mit beidem kann der Raspberry Pi 1 nicht aufwarten. Hinzu kommt, dass Windows RT closed source ist, also keine freie Community solange an Kernel oder Treibern herumfeilen kann, bis alles funktioniert. Es hat 2013 ein Projekt gegeben, bei dem eine Entwicklergruppe versucht hat, Windows CE auf den Raspberry zu portieren. Nur partiell von Erfolg gekrönt und seit Ende 2013 ist da auch nichts mehr passiert. In der Zwischenzeit ist es zwar mit einigen Tricks gelungen, Windows RT auf dem HTC HD2 zu installieren, aber auch hier blieb es bei einer grundsätzlichen Machbarkeitsstudie, sodass de facto Arm-CPUs und Windows außerhalb der von Microsoft abgesteckter Welt bislang nicht zusammengekommen sind. Zudem sind letztlich viele der Experimente echte Hacks, also Modifikationen an Teilen des dafür nicht freigegeben Codes.
Mit Raspberry Pi 2 wird alles besser
Nun gibt es aber den Raspberry Pi 2, der von allem mehr zu bieten hat als der Vorgänger. Mehr Speicher (1 GB), höhere Teakfrequenz (900 MHz) und eine ARM Cortex-A7 CPU mit vier Kernen. Und dieser Raspberry ist die Schnittstelle zu Windows, denn Microsoft hat angekündigt, eine Windows 10-Version für die Platine zu entwickeln. Und die soll auch noch kostenlos bereitgestellt werden. Allerdings ist von Microsoft im Entwicklerportal bislang nicht mehr als eine entsprechende Absichtserklärung zu finden und dazu die Möglichkeit, sich der „early adaptor community“ anzuschließen. Das Projekt, Windows 10 auf den Raspberry Pi 2 zu bringen, gehört zu Microsofts IoT (Internet of Things) Developer Program, das im Hinblick auf Windows 10 bislang vor allem auf die zweite Generation des Intel Galileo-Boards aufbaut. Für die erste Galileo-Generation hatte Microsoft im vergangenen Jahr eine kostenlose Entwickler-Version von Windows 8.1 verteilt. Allerdings darf man hier keine zu hohen Erwartungen an den Tag legen, weil das Galileo-Board keine grafische Ausgabe besitzt. Es gibt bei Youtube ein Video, das den Windows 8-Bootvorgang eines mit einer Grafikkarte erweiterten Galileo zeigt. Hier ist klar zu erkennen, dass der Mini-Computer keine grafische Oberfläche startet, sondern lediglich die Eingabeaufforderung zeigt. Tatsächlich basiert die ganze Entwicklung beim Galileo auch aus einem Zusammenspiel aus Visual Studio und Microsoft Connect, was im Prinzip vergleichbar damit ist, den Raspberry per Putty zu konfigurieren. Aber es wird eben auch klar, wo die Reise hingehen soll. Auch Microsoft möchte die Einplatinencomputer als Interfaces für den Zugriff auf alle möglichen Geräte nutzen. Und womöglich die Konfiguration über etablierte grafische Wege zu ermöglichen, damit eben auch Anwender, die mit Shell und Kommandozeileneingabe nicht so vertraut sind, beispielsweise eine Heizungssteuerung aufsetzen können. Aber noch ist das eben etwas Zukunftsmusik und bis dahin bleibt zunächst einmal Linux das Betriebssystem der Wahl für den Raspberry Pi, auch in der zweiten Generation.
Ein bisschen Windows
Trotz allen Beschränkungen ist es nicht ganz unmöglich, über den Raspberry Pi 2 schon jetzt Windows zu nutzen. Wobei die Betonung hier auf „über“ liegt, denn Im Prinzip dient der Raspberry in Verbindung mit einem Monitor, einer Tastatur und einer Maus nur als Fernzugriffskonsole für einen PC. Allerdings mit einer Ergänzung: Man kann mit einem Trick auch am Raspberry USB-Geräte anschließen, die dann wiederum über den Windows-Rechner angesteuert werden. Dazu ist es nötig, den Raspberry zunächst als USB-Server einzurichten.
Die Treiber für den USB-Server erstellen
Die folgenden Beschreibungen funktionieren ohne größere Änderungen nur zusammen mit Raspbian und der 64-Bit-Version von Ubuntu. Obwohl wir nur drei zusätzliche Kernel-Module (Treiber) benötigen, ist es kaum empfehlenswert, diese auf dem Raspberry Pi zu erstellen. Das dauert unverhältnismäßig lange. Deutlich schneller geht es mit einem anderen Linux-System, das Sie entweder auf dem PC oder in einer virtuellen Maschine einrichten, etwa mit Virtualbox . Sie können dafür Mythbuntu verwenden. Öffnen Sie ein Terminal-Fenster. In Mythbuntu gehen Sie dazu im Menü auf „Applications > System > Xfce Terminal“. Führen Sie die folgenden zwei Befehlszeilen aus:
cd ~ && wget www.pcwelt.de/oyhy -O raspi_crosstools.sh
chmod 755 raspi_crosstools.sh
Achten Sie bei der wget-Zeile darauf, ein großes „-O“ zu verwenden. Starten Sie das Script dann mit der Zeile
sudo ./raspi_crosstools.sh
Geben Sie das root-Passwort ein, wenn Sie dazu aufgefordert werden. Das Script installiert zuerst die Versionsverwaltung Git, über die es den Raspbian-Kernel und einige Tools herunterlädt. Die Tool-Sammlung enthält alles, was Sie benötigen, um auf einem PC mit Intel/AMD-Prozessor (x86/x64) einen Kernel beziehungsweise Kernel-Module für den Raspberry Pi (ARM-Prozessor) zu kompilieren. Nach erfolgreichem Download erstellt das Script die Kernel-Module „usbip-core.ko“, „usbip-host.ko“ und „vhcihcd.ko“ im Verzeichnis „~/raspi_cross/kernel_mod/lib/modules/ 3.12.28+/extra“. Sollte der Kernel inzwischen neue Optionen bieten, ermöglicht das Konfigurations-Script die Modulauswahl. Bestätigen Sie hier einfach die Vorgaben so oft wie nötig mit der Enter-Taste. Sobald das Script seine Arbeit abgeschlossen hat, kopieren Sie die erzeugten ko-Dateien auf Ihren Raspberry Pi in das Verzeichnis „/lib/modules/3.12.28+/extra“. Führen Sie auf diesem in einem Terminalfenster den Befehl sudo depmod aus, damit die neuen Kernel-Module eingebunden werden. Das Script „raspi_crosstools.sh“ erstellt auch das Tool usbip im Verzeichnis „/usr/local/sbin“. Dabei handelt es sich um die Client-Anwendung für Ubuntu, mit der Sie USB-Geräte einbinden können. In das Verzeichnis „~/raspi_cross/Windows“ lädt das Script Treiber und Client-Anwendung für Windows 7 und 8 herunter. Kopieren Sie die Dateien „usbip_windows_ v0.2.0.0_signed.zip“ und „usbipv0.2.0. zip“ auf Ihren Windows-PC.
USB-Server auf dem Pi einrichten
Auf dem Raspberry Pi müssen Sie jetzt die Tools für die Verwaltung der USB-Geräte installieren. Führen Sie dazu in einem Terminalfenster folgende zwei Zeilen aus:
sudo apt-get update
sudo apt-get install usbip
Jetzt ist Zeit für einen ersten Testlauf. Schließen Sie das USB-Gerät, das Sie im Netzwerk verwenden wollen, an den Raspberry Pi an. Führen Sie die folgenden zwei Befehlszeilen aus:
sudo modprobe usbip-host
sudo usbipd -d
Damit laden Sie das nötige Kernel-Modul mit und starten den Usbip-Daemon im Debug-Modus. Wenn Sie die Software ausführlich getestet haben, tragen Sie beide Zeilen für den automatischen Start in die Datei „/etc/rc.local“ oberhalb von „exit 0“ ein, ersetzen aber „-d“ durch „-D“. Öffnen Sie ein zweites Terminalfernster. Der Befehl
sudo usbip list -l
gibt Ihnen hier die Liste der verfügbaren USB-Geräte aus. Sie sehen deren USB-IDs beispielsweise in der Form „busid 1–1.3(0424:ec00)“. Der Befehl lsusb zeigt die Gerätebezeichnung zur ID in der Regel im Klartext. Die Freigabe kann jetzt mit der dieser Zeile erfolgen:
sudo usbip bind -b 1–1.3
Der Erfolg wird mit der Ausgabe „bind device on busid 1–1.3: complete“ bestätigt. Es kann sein, dass es zu Problemen kommt, weil die Kernel-Version nicht mehr zu den Scripten passt. Im Zweifelsfall finden Sie dann die Anleitung und weitere Hilfe auf der Projektseite http://usbip.sourceforge.net/.
Zugriff auf USB-Geräte über das
Netz Installieren Sie unter Windows 7 oder 8 den Treiber aus dem Archiv „usbip_windows_v0.2.0.0_signed.zip“. Eine Anleitung dazu finden Sie in der enthaltenen Datei „Install.txt“. Im Archiv „usbipv0.2.0. zip“ sind nur die Dateien „Usb.ids“ und „Usbip.exe“ enthalten. Öffnen Sie unter Windows eine Eingabeaufforderung in dem Verzeichnis, in das Sie „usbip-v0.2.0.zip“ entpackt haben. Mit
usbip.exe -l 192.168.0.37
erfahren Sie, welche Geräte ein USB-Server freigegeben hat. Die Adresse im Beispiel ersetzen Sie durch die IP-Adresse Ihres Raspberry Pi. Der Befehl
usbip.exe -a 192.168.0.37 1–1.3
stellt dann die Verbindung zu Bus-ID 1–1.3 her. Die Windows-Version des Programms läuft bisher nur im Vordergrund. Sie trennen die Verbindung einfach, in dem Sie das Fenster der Eingabeaufforderung schließen. Auf einem Ubuntu-System verwenden Sie die in Punkt 2 kompilierten Tools ähnlich. Die Syntax der Parameter ist jedoch anders. Das Gleiche gilt für ein Raspbian-oder Debian-System. Wenn Sie nur usbip starten, erhalten Sie eine kurze Übersicht der möglichen Parameter für die Kommandozeile.
Windows-Desktop aufrufen
Jetzt müssen Sie nur noch unter Windows den VNC-Server installieren. Laden Sie sich die nötigen Dateien unter www.realvnc.com herunter und folgen Sie einfach den Anweisungen. Unter Raspbian lässt sich dann über die Add-On-Verwaltung zum Beispiel TightVNC installieren. Optional geht es auch per Shell über den Befehl
sudo apt-get install vncviewer
Dann rufen Sie den VNCviewer auf dem Raspberry auf, tragen die IP des Windows-Rechners ein und schon haben Sie einen Windows-Desktop vor Augen. Durch den per Netzwerk angebundenen USB-Port kann Windows dann eben auch auf USB-Geräte zugreifen, die am Raspberry hängen. Zumindest, wenn es um Speicher oder Scanner geht.
Mit Streaming-Lösungen wie etwa TV-Karten läuft der USB-Fernzugriff bislang nicht wirklich rund. Und natürlich werden auch bei allen anderen Geräten die Datenraten letztlich von Netzwerk limitiert, in dem Fall wahrscheinlich durch den Raspberry. Denn auch die zweite Generation des Kleincomputers verfügt nur über einen 100 MBit-Netzwerkanschluss. Und da hilft es auch nicht weiter, wenn der ganze Rest per Gigabit-LAN angebunden ist. Letztlich leistet der LAN-Port des Pi nur rund ein Fünftel der Nettodatenrate, die der USB 2.0-Anschluss schafft. Trotzdem bekommt man so schon mal einen ersten Eindruck, wie es sein könnte, wenn dann Windows nativ auf dem Raspberry läuft. Denn eines fällt positiv auf: Darstellungsproblem im Hinblick auf den Windows-Desktop hat der VNCviewer keine, auch der Bildaufbau läuft flüssig. Allerdings darf man logischerweise nicht erwarten – im VNC-Modus schon gar nicht, dass man dank Windows aus dem Raspberry eine Gaming-Maschine für aktuelle 3D-Shooter machen kann. Es bleibt eben ein Computer auf Basis eines Arm-Prozessors. Und das ist wahrscheinlich im Moment am ehesten vergleichbar mit einem Windows RT-Tablet. Kuriose Randnotiz: Während Microsoft also für den Raspberry ein Windows 10 entwickelt, wird es für die RT-Tablets mit Arm-Architektur eben jenes Betriebssystem wohl nicht mehr geben. Jedenfalls hat man in Redmond verlauten lassen, dass die kleineren Surface-Versionen nur noch ein Update mit einigen Windows 10-Features erhalten sollen, aber kein komplett neues Betriebssystem mehr. Da ist dann das Raspberry-Tablet nur eine Frage der Zeit.
Raspberry Pi 2 Model B: Neue CPU und mehr Arbeitsspeicher
Der neue Raspberry Pi 2 Model B ist sechs Mal schneller als der Pi 1 Model B+. Möglich macht das der neue System-on-Chip (SoC) BCM2836 mit einem mit 900 MHz getakteten Vierkern-Prozessor ARM Cortex-A7, der das SoC Broadcom BCM2835 mit seinem Ein-Kern-Prozessor 700MHz ARM11 auf dem Pi 1 ersetzt. Der neue Prozessor des Pi 2 kann zudem auf doppelt so viel Arbeitsspeicher als bisher beim P1 zugreifen, nämlich auf 1 GB LPDDR2 SDRAM. Der Broadcom VideoCore IV-Grafik-Prozessor kann auch 1080p-Videos rendern. Es soll auf dem Pi 2 sogar möglich sein 3D-Spiele zu spielen, sofern sie nicht zu leistungshungrig sein. Der Grafikprozessor unterstützt hierfür OpenGL ES 2.0.
Bei der übrigen Ausstattung des Pi 2 ändert sich nichts gegenüber dem Model B+: Vier USB-Ports, ein HDMI-Ausgang, ein Ethernet-Anschlus, microSD-Slot und GPIO-Pins. Die Entwickler versprechen trotz der deutlichen Hardware-Verbesserungen volle Abwärtskompatibilität. Somit lässt sich das bisherige Zubehör für den Pi 1 auch für den Pi 2 verwenden. Für Bastler ist das ein entscheidender Vorteil.
Programme | Raspberry Pi A | Raspberry Pi B+ | Raspberry Pi 2 B |
SoC | Broadcom BCM2835 | Broadcom BCM2835 | Broadcom BCM2836 |
CPU | ARM1176JZF-S | ARM1176JZF-S | ARM Cortex-A7 |
Kerne | 1 | 1 | 4 |
Takt | 700 MHz | 700 MHz | 900 MHz |
GPU | Broadcom Dual Core VideoCore IV | Broadcom Dual Core VideoCore IV | Broadcom Dual Core VideoCore IV |
RAM | 256 | 512 | 1024 |
GPIO-Pins | 17 | 26 | 26 |
Kartenleser | SD-Card | Micro-SD-Card | Micro-SD-Card |
(PC-Welt/ad)