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
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.

interfaces
# 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

hostapd
apt-get install hostapd

installiert. In /etc/hostapd.conf sollte folgendes stehen:

hostapd.conf
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.

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 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.

start_roberta.sh
#!/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.sh
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.