RPCEmu mit Netzwerkbrücke betreiben

Fr, 21. Mai 2021, Lioh Möller

Einige von euch haben bereits den Artikel zur Installation des RISC OS Emulators RPCEmu unter Linux gelesen. Standardmässig kommt dort NAT zur Netzwerkanbindung zum Einsatz, wodurch sich einige Einschränkungen ergeben. Mithilfe einer sogenannten Netzwerkbrücke kannst du deinen virtuellen RISC OS Computer mit einer echten IP-Adresse aus deinem LAN versorgen, sofern dein Linux-Computer über Netzwerkkabel mit deinem Router verbunden ist.

Zur Einrichtung löschst du zunächst die bisherige Konfiguration deiner Netzwerkkarte (im folgenden Beispiel lautet sie eth0, passe dies bitte an deine Gegebenheiten an). Dazu kannst du in der NetworkManager-GUI den entsprechenden Eintrag entfernen. Achtung: in dem Moment verlierst du für einen Moment die Verbindung zum Internet.

Daraufhin erstellst du die Brücke mit nmcli, dem Konsolenwerkzeug von NetworkManager:

nmcli connection add type bridge bridge.stp no autoconnect yes con-name rpcemu ifname rpcemu ipv4.method auto ipv6.method auto

nmcli connection add type bridge-slave master rpcemu autoconnect yes ifname eth0 con-name rpcemu-secondary 

Der erste Befehl erstellt zunächst eine Bridge mit dem Namen rpcemu und stellt DHCP für den Bezug der IPv4 Adresse sowie Autokonfiguration für IPv6 ein.

Der zweite Befehl bindet deine Netzwerkschnittstelle an die Brücke. Auch hier musst du eth0 durch den Namen deines Netzwerkinterfaces ersetzen. Herausfinden kannst du dies zum Beispiel durch die Eingabe von ip a s in der Konsole.

Daraufhin sollte dein Internetzugang bereits wieder funktionieren. Prüfen kannst du dies beispielsweise mit ping gnulinux.ch

Die eigentliche Einrichtung der Brücke ist damit schon abgeschlossen. Nun kannst du in RPCEmu unter Settings / Networking den Punkt Ethernet Bridging auswählen. Der Name der Bridge rpcemu passt zur obigen Konfiguration.

Allerdings setzt RPCEmu den Start der Applikation mittels sudo voraus, da zu Beginn ein tap-Interface erstellt und der Brücke zugeordnet wird. Die Root-Rechte gibt RPCEmu jedoch direkt nach der Einrichtung der Schnittstelle wieder ab.

Eine einfache Möglichkeit besteht in der Erstellung eines kleinen BASH Scriptes mit dem Namen ~/bin/rpcemu/rpcemu und folgendem Inhalt:

#!/bin/bash
sudo XAUTHORITY=$HOME/.Xauthority ./rpcemu-recompiler

Mit chmod +x ~/bin/rpcemu/rpcemu machst du das Script ausführbar.

Damit du nicht jedes Mal das Passwort beim Start eingeben musst, kannst du mit Root-Rechten eine Datei /etc/sudoers.d/rpcemu mit folgendem Inhalt erstellen:

Cmnd_Alias RPCEMU = /home/lioh/bin/rpcemu/rpcemu
lioh ALL = (root) NOPASSWD : RPCEMU_RECOMPILER
Defaults:lioh !requiretty

Passe dabei den Pfad und deinen Nutzernamen an deine Gegebenheiten an. (hier lioh)

Mit chmod 440 /etc/sudoers.d/rpcemu setzt du die erwarteten Rechte auf die neu erstellte Konfigurationsdatei.

Nun muss nur noch das in der Installationsanleitung beschriebene .desktop-File angepasst werden, indem du die Exec-Zeile wie folgt abänderst:

Exec=sh -c "cd $HOME/bin/rpcemu && sudo $HOME/bin/rpcemu/rpcemu"

Du siehst, dass wir nun das zuvor erstellte BASH-Script anstatt die RPCEmu-Binary starten.

Ob die Einstellung erfolgreich war, kannst du in RISC OS in einem Task Fenster prüfen. Klicke dazu mit der Menu-Maustaste auf das Taskmanager-Symbol am rechten Rand der Icon Bar (ja, du hast gut aufgepasst, bei der Menu-Maustaste handelt es sich um die mittlere Maustaste, welche sich meist unter dem Scrollrad befindet). Wähle dort den Punkt Task window und gebe in der Eingabeaufforderung den Befehl ifconfig -a ein.

Es sollte dir eine IP-Adresse aus deinem LAN angezeigt werden, ähnlich wie folgt:

Auch hier kannst du mit einem ping gnulinux.ch die Funktionalität prüfen.

Somit hast du die perfekten Voraussetzungen zur Nutzung des Netzwerkes aus RISC OS heraus geschaffen.