==== Dokumentation der Konfiguration ==== === Allgemeines === Die Offline-Lösung spannt ein eigenes, offenes WLAN mit der SSID "infgsnds" auf, mit dem sich Clients ohne Passwort unverschlüsselt verbinden können. Ein Internetzugriff ist nicht notwendig. Sämtliche Anfragen der Clients werden danach auf die Programmieroberfläche NePo umgeleitet, die als eigener Dienst auf dem Gerät läuft. Als Betriebssystem kann im Prinzip jedes Linuxsystem dienen, die gezeigten Konfigurationen sind in dieser Form nur für debianbasierte System gültig, können aber ggf. mit Modifizierungen auch auf andere Distributionen übertragen werden. Grundsätzlich sollte die Konfiguration möglichst simpel und robust gehalten werden sowie mit möglichst vielen Hardwarekombinationen funktionieren. Gleichzeitig wurde ein möglichst geringer Ressourcenbedarf angestrebt. === Kernelparameter === Neuere Linuxkernel vergeben Namen an Netzwerkgeräte nach einem oft nicht vorhersehbaren Schema. Das alte Verhalten ist für unser Vorhaben günstiger, weil dadurch die vergebenen Namen auch für unterschiedliche Hardware immer gleich ist und so die Konfigurationsdateien später besser "passen". In der Datei ///etc/default/grub// ist folgende Zeile um die Zeichenkette **net.ifnames=0** zu ergänzen. GRUB_CMDLINE_LINUX_DEFAULT="splash quiet video=SVIDEO-1:d net.ifnames=0 biosdevname=0" Die übrigen Paramater sollten bei ihrer Distribution erstmal nicht geändert werden. === Netzwerkkonfiguration === == IP-Adressen == Das WLAN-Device (wlan0) erhält eine feste IP-Adresse, hier die Nummer 172.16.0.1. Die im Rechner meist zusätzlich vorhandene Netzwerkkarte (eth0) bekommt eine IP über DHCP (wenn sie im Netz angeschlossen wird, was aber nicht erforderlich ist). Prinzipiell kann später die Programmieroberfläche auch über die Netzwerkkarte erreicht werden, wofür jedoch die IP bekannt sein muss. Beim Start des WLAN-Device wird automatisch noch der hostapd-Dienst hochgefahren, da das beim Booten oft nicht verlässlich passt. # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet dhcp auto wlan0 iface wlan0 inet static post-up /usr/sbin/hostapd -B /etc/hostapd.conf address 172.16.0.1 netmask 255.255.0.0 broadcast 172.16.0.255 == hostapd == Der hostapd-Dienst konfiguriert das WLAN-Device so, dass es ein eigenes WLAN-Netz aufspannt. Das funktioniert nicht mit jedem WLAN-Adapter, sondern muss von der jeweiligen Harware explizit unterstützt werden. Der Dienst wird mit apt-get install hostapd installiert. In ///etc/hostapd.conf// sollte folgendes stehen: interface=wlan0 ssid=infgsnds hw_mode=g channel=6 auth_algs=1 wmm_enabled=0 == dnsmasq == Schließlich wird dnsmasq installiert. Das ist ein Dienst, der für die Zuweisung von IP-Adressen an unsere WLAN-Clients verantwortlich ist. apt install dnsmasq dnsmasq verteilt über unser WLAN-Device (wlan0) IP-Adressen von 172.16.0.2 bis 172.16.0.200 an die Clients, jedoch nicht über die eingebaute Netzwerkkarte (eth0). Die Konfigurationsdatei findet sich unter ///etc/dnsmasq.conf//. interface=wlan0 no-dhcp-interface=eth0 dhcp-range=interface:wlan0,172.16.0.2,172.16.0.200,infinite listen-address=127.0.0.1 listen-address=172.16.0.1 address=/ne.po/172.16.0.1 === OpenRobertaLab === Eine Anleitung zum Installieren der Open Roberta Installationsumgebung findet sich direkt bei [[https://github.com/OpenRoberta/robertalab|GitHub]] unter auf der Seite. Die Installation sollte nach ///opt/openroberta// erfolgen. Bitte beachten Sie, dass in dem Quellcode Logos und Verlinkungen des Fraunhoferinstituts vorhanden sind, die Sie nicht produktiv nutzen dürfen. Vor dem Einsatz mit Ihren Lerngruppen müssen diese Ressorcen entfernt werden. Diese finden sich im Ordner OpenRobertaServer/staticResources. An sehr vielen Stellen in der Lokalisierung unter /OpenRobertaServer/staticResources/blockly/msg ist zudem eine Kontaktadresse des Fraunhoferinstituts im HTML-Quellcode hinterlegt. Diese muss ebenfalls ersetzt werden. Bitte weisen Sie an prominenter Stelle deutlich auf die Herkunft der Software hin. Das folgende Script sorgt dafür, dass der OpenRobertaLab Programmierumgebung startet und dass auch ohne separaten Webserver alle Anfrage der Clients beim Editor landen. #!/bin/bash # Let's foward all Traffic for Port 80 to OpenRobertaServer on Port 1999 # So we don't need a separate Webserver with proxy module /sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 1999 # Let's start OpenRobertaServer in an endless loop # If it crashes, it will just start again while [ true ] ; do cd /opt/robertalab ./ora.sh --start-from-git done Mit der folgenden Zeile sorgen wir dafür, dass unser Script bei jedem Start des Rechners aufgerufen wird. ln -s /etc/init.d/start_roberta.sh /etc/rc2.d/S99start_roberta Nach diesen Schritten sollte man den Editor über das offene WLAN "infgsnds" durch Eingabe beliebiger URLs nach einem Neustart erreichen können.