Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
public:ltsp:raspberry [2015/03/23 09:52] jankow@datenkollektiv.netpublic:ltsp:raspberry [2015/03/26 16:06] (aktuell) – [Kernel und Firmware auf die SD-Karte kopieren] jankow@datenkollektiv.net
Zeile 1: Zeile 1:
 ====== Raspberry Pi als LTSP Thinclient verwenden ====== ====== Raspberry Pi als LTSP Thinclient verwenden ======
 +
 +Der Raspberry Pi eignet sich mit einigen kleinen Einschränkungen ideal als LTSP-Client. Da der Raspberry Pi jedoch nicht über PXE booten kann, müssen die Clients ein kleines eigenes Image bekommen, das den Kernel und ggf. auch das ganze System bootet.
 +
 +Dazu gibt es zwei verschiedene Ansätze:
  
 ===== Berry Terminal ===== ===== Berry Terminal =====
  
 +Innerhalb der [[http://sourceforge.net/projects/berryboot/|Berryboot]] Umgebung, einer Möglichkeit auf einfache Weise eine Multibootumgebung für den Raspberry einzurichten, gibt es ein fertiges Image Namens [[http://berryterminal.com/doku.php|Berry-Terminal]].
 +
 +Diese stellt out of the Box einen ldm-Server bereit, der sich mit einer per dhcp aufgefundenen LTSP-Umgebung verbindet.
 +
 +Bei Berry Boot ist das komplette Image auf der SD-Karte des Raspberries, was einige Einschränkungen mit sich bringt:
 +
 +  * keine lokalen Applikationen möglich
 +  * Beim Umdate immer Update des Images nötig.
 +  * keine zentrale Konfiguration über lts.conf
  
 ===== Nativer LTSP-Client ===== ===== Nativer LTSP-Client =====
  
-...+Alternativ kann auch eine LTSP-Umgebung für die armhf-Architektur wie gewohnt auf dem Server eingerichtet werdenDer einzige Unterschied ist, dass aufgrund der mangelnden PXE-Unterstützung, der Kernel auf der SD-Karte des Raspberries residieren muss. 
 + 
 +Vorteil dieses Verfahrens: 
 + 
 +  * Lokale Apps möglich 
 +  * zentrale Konfiguration über die lts.conf im ltsp-chroot auf dem Server 
 + 
 +==== Raspberry Pi Modelle ==== 
 + 
 +=== Version 1 === 
 + 
 +Die hier beschriebene Anleitung funktioniert so weit - allein das Starten des ldm macht noch Probleme FIXME 
 + 
 +=== Version 2 === 
 + 
 +Mit dem Raspberry Pi 2 gibt es noch Probleme augrund des fehlenden aufs Modules in dem Raspberry-Standard Kernel. (vgl.: https://pi-ltsp.net/advanced/kernels.html) 
 + 
 +Hier muss ein eigener Kernel gebaut werden: 
 + 
 +  * http://rpitc.blogspot.co.uk/p/kernel-rebuild.html
  
 ==== Vorbereitung und Konfiguration ==== ==== Vorbereitung und Konfiguration ====
  
-http://cascadia.debian.net/trenza/Documentation/raspberrypi-ltsp-howto/+Hinweise und Links: 
 +  * http://cascadia.debian.net/trenza/Documentation/raspberrypi-ltsp-howto/ 
 +  * https://pi-ltsp.net/ 
 +  * https://raw.githubusercontent.com/PiNet/PiNet/master/pinet 
 +  * http://pinet.org.uk 
 +  * https://wiki.debian.org/DebianEdu/LTSPArm 
 +  * https://wiki.debian.org/RaspberryPi 
      
 Benötigte Packete: Benötigte Packete:
Zeile 40: Zeile 79:
 KERNEL_PACKAGES=linux-image-3.2.0-4-rpi KERNEL_PACKAGES=linux-image-3.2.0-4-rpi
 </file> </file>
 +
 +<WRAP center round important>
 +Der Raspberry Pi 2 mit Quadcore hat eine andere Prozessorarchitektur als das ältere Modell. Entsprechend muss für diese Geräte ein passender Kernel ausgewählt werden:
 +
 +Z.B.:
 +  KERNEL_PACKAGES=linux-image-3.18.0-trunk-rpi2
 +</WRAP>
  
 ==== Client Image bauen und ggf. konfigurieren ==== ==== Client Image bauen und ggf. konfigurieren ====
Zeile 52: Zeile 98:
  
 ==== Kernel und Firmware auf die SD-Karte kopieren ==== ==== Kernel und Firmware auf die SD-Karte kopieren ====
-Download raspberry pi foundation's raspbian image: http://www.raspberrypi.org/downloads. This howto used 2013-02-09-wheezy-raspbian 
  
-Copy firmware files to an SD card (/dev/sdc1replace with the device name for your SD card):+Wir benötigen nun die Raspbian-Firmware Dateien. Dazu benötigen wir ein aktuelles Raspian Imagedas wir als loopdevice mounten und die Firmwaredateien kopieren.
  
- mount /dev/sdc1 /mnt +  http://www.raspberrypi.org/downloads. Dieses Howto nutzt: 2015-02-16-raspbian-wheezy.zip
- mkdir -p /media/rpi +
- mount -o loop,offset=$((512*8192)) /srv/src/2013-02-09-wheezy-raspbian.img /media/rpi +
- cp -r /media/rpi/* /mnt/ +
- umount /media/rpi+
  
-Copy kernel and initrd to your SD card:+Nach dem Download entpacken wir die Zip-Datei und Mounten Sie folgendermassen: 
 + 
 +  mkdir -p /tmp/rpi 
 +  mount -o loop,offset=$((512*8192)) 2013-02-09-wheezy-raspbian.img /tmp/rpi 
 + 
 +Jetzt benötigen wir die SD-Karte für den Raspberry und mounten sie: 
 + 
 +  mount /dev/sdX1 /mnt 
 +(sdX mit dem Device der SD-Karte ersetzen) 
 + 
 +Kopieren der Firmware-Dateien aus dem Raspberry-Image: 
 + 
 +  cp -r /tmp/rpi/* /mnt/ 
 +  umount /tmp/rpi 
 + 
 +Und jetzt kopieren wir noch den Kernel und die Initrd:
  
  cp -vb /opt/ltsp/armhf/boot/vmlinuz-3.2.0-4-rpi /mnt  cp -vb /opt/ltsp/armhf/boot/vmlinuz-3.2.0-4-rpi /mnt
  cp -vb /opt/ltsp/armhf/boot/initrd.img-3.2.0-4-rpi /mnt  cp -vb /opt/ltsp/armhf/boot/initrd.img-3.2.0-4-rpi /mnt
  
-edit cmdline.txt:+Wir müssen noch die Datei ''cmdline.txt'' editieren, damit der Kernel die richtigen Kerneloptinen bekommt. Hier muss auch die IP-Adresse des LTSP-Servers angegeben werden: 
 + 
 +Mit sed: 
 +  LTSP_SERVER=192.168.0.1 # durch eigene IP-Adresse ersetzen 
 +   
 +  sed -i -e 's,root=.*rootfstype=ext4,boot=nfs init=/sbin/init-ltsp nfsroot='$LTSP_SERVER':/opt/ltsp/armhf,g' /mnt/cmdline.txt
  
-add init=/sbin/init-ltsp boot=nfs nfsroot=192.168.67.1:/opt/ltsp/armhf delete the root= and rootfstype= entries:+Zuletzt editieren wir noch die config.txt, sozusagen das Bios des Raspberries, und geben hier den verwendeten Kernel und Initramdisk an (bei anderem Kernel entsprechend anpassen):
  
-edit it with sed:+  echo 'kernel=vmlinuz-3.2.0-4-rpi' >> /mnt/config.txt 
 +  echo 'ramfsfile=initrd.img-3.2.0-4-rpi' >> /mnt/config.txt 
 +  echo 'ramfsaddr=0x00800000' >> /mnt/config.txt
  
- sed -i -e 's,root=.*rootfstype=ext4,boot=nfs init=/sbin/init-ltsp nfsroot=192.168.67.1:/opt/ltsp/armhf,g' /mnt/cmdline.txt+Für das Modell 2 muss als ramfsaddr folgendes eingetragen werden:
  
-edit config.txt to use the kernel and initramfs:+  ramfsaddr=-1
  
- echo 'kernel vmlinuz-3.2.0-4-rpi' >> /mnt/config.txt +(vglauch: https://github.com/raspberrypi/linux/issues/863)
- echo 'ramfsfile initrd.img-3.2.0-4-rpi' >> /mnt/config.txt +
- echo 'ramfsaddr 0x00800000' >> /mnt/config.txt+
  
- Copyright 2013 Vagrant Cascadian <vagrant@debian.org+[[http://creativecommons.org/licenses/by-sa/3.0/deed.de|{{http://i.creativecommons.org/l/by-sa/3.0/88x31.png|}}]]
- This work is licensed under a: +
- Creative Commons Attribution-ShareAlike 3.0 Unported License +
- <http://creativecommons.org/licenses/by-sa/3.0/deed.en_US>+
  
 +Dieser Artikel steht unter der Creative Commons (BY-SA) Linzenz und darf unter gleichen Bedingungen weiter gegeben werden.