Amiga PiStorm (Teil 4)



Inhaltsverzeichnis Teil 4
• A314 Emulation - Was ist das?
• A314 Zugriff auf das Linux Dateisystem
• 314 Zugriff auf die Linux Bash
• Die Netzwerk-Verbindung
• PiStorm Autostart
• PiStorm Software aktualisieren
• PiStorm CPLD aktualisieren
A314 Emulation - Was ist das?
Die A314-Hardware ist etwas was eigentlich nichts mit den PiStorm-Projekt zu tun hat, dennoch ist es möglich einige Funktionen mittels Emulation zu übernehmen. Die A314 ist eine Erweiterung die in den Trapdoor-Slot des Amiga gesteckt wird und bietet die Möglichkeit die Ressourcen des Raspberry Pi's zu nutzen. Zum einen kann man den Raspi als Datenspeicher nutzen, als Videoplayer oder auch als Audio-Karte. Per A314-Emulation ist momentan nur ein Teil des Funktionsumfanges der A314 nutzbar. Folgende Funktionen sind verfügbar:
- a413fs - Zugriff auf das Linux Dateisystem
- pi - Zugriff auf die Linux Bash
- ethernet - Netzwerk-Verbindung
Voraussetzung für die A314-Emulation ist ein mit AmigaOS eingerichtetes und bootbares HDF-Image.
A314 Zugriff auf das Linux Dateisystem
Den Zugriff auf die Speicherkarte zu erlangen, bietet ein großer Vorteil für den Anwender. Denn damit ist es noch einfacher Daten von einem PC zum Amiga zu übertragen. Zum einen kann auf einen voreingestellten Ordner der SD-Karte zugegriffen werden, oder wahlweise auf (falls eingerichtet) einen USB-Stick. Im ersten Schritt schalten wir die A314 Emulation in der PiStorm-Konfigurationsdatei ein und binden die nötigen HDF-Partitionen ein:
cd ~/pistorm
nano default.cfg
Suche die folgenden Zeilen und lösche die Raute die davor steht.
setvar piscsi
setvar piscsi0 PI0.hdf
setvar piscsi6 platforms/amiga/pistorm.hdf
setvar a314
Ersetze PI0.hdf mit den Namen deines HDF-Images. Weitere Informationen sind weiter oben bei "Ein Festplatten-Image einbinden" zu finden.

Speichere die Datei mit STRG+O, verlasse den Editor mit STRG+X und starte die Emulation mit sudo ./emulator
. Wenn AmigaOS geladen wurde, müssen wir noch einige Dateien kopieren. Am einfachsten geht das in der ❏ Shell mit den folgenden Kopier-Befehlen:
copy PISTORM:a314/a314.device DEVS:
copy PISTORM:a314/a314fs L:
Und schlussendlich fügen wir in der Mountlist die nötigen Informationen für das Laufwerk, ohne evtl. vorhandene Daten zu löschen.
type PISTORM:a314/a314fs-mountlist >> DEVS:Mountlist

Klicke auf das Bild zum Vergrößern
Mit den Befehl "mount PI0:
" sollte nun der Ordner "/home/pi/pistorm/data/a314-shared" des Linux-Dateisystemes eingebunden und auf der Workbench als Icon eingeblendet werden.

Klicke auf das Bild zum Vergrößern
Falls gewünscht, kann der Mount-Befehl natürlich auch in der Startup-Sequence eingegeben werden damit das Laufwerk automatisch bei jedem Boot-Vorgang eingebunden wird. Jetzt können wir auf den Ordner a314-shared über WLAN mit einem FTP-Programm zugreifen und die gewünschten Daten übertragen (Siehe weiter oben bei "Daten zum Amiga übertragen").
Der Fehler "Interfaces benötigt eine Nummer als Parameter"
Bei meinen Tests kam es vor, dass das Laufwerk wegen eines angeblichen Fehlers in der Mountlist nicht eingebunden werden konnte. Und zwar besagt der Fehler, dass als Parameter eine Zahl benötigt wird. Doch genau dies ist bereits der Fall wenn wir genau nach Anleitung vorgegangen sind.

Klicke auf das Bild zum Vergrößern
Den Fehler konnte ich beheben, indem ich mit einen Editor die Datei DEVS:Mountlist öffnete, die Ziffer hinter "Interfaces" nochmal neu eingab und die Datei anschließend abgespeichert habe. Den Grund für den Fehler konnte ich nicht ausfindig machen.

A314 Zugriff auf die Linux Bash
Einer der ersten Schritte die wir durchführen mussten um die PiStorm-Emulation einzurichten und zu starten war der Zugriff über SSH auf den Raspberry Pi. Der Zugriff setzt ein zweites Gerät voraus das sich im selben Netzwerk befindet. Durch die A314-Emulation wird dies etwas vereinfacht. Zumindest wenn wir uns in der AmigaOS-Umgebung befinden. Denn von dort aus können wir uns über die ❏ Shell ebenfalls auf den Raspi einloggen. Zum Ausschalten des Rechners benötigen wir eben so wenig ein zweites Gerät. Im ersten Schritt schalten wir die A314 Emulation in der PiStorm-Konfigurationsdatei frei und binden die nötigen HDF-Partitionen ein:
cd ~/pistorm
nano default.cfg
Suche die folgenden Zeilen und lösche die Raute die davor steht.
setvar piscsi
setvar piscsi0 PI0.hdf
setvar piscsi6 platforms/amiga/pistorm.hdf
setvar a314
Ersetze PI0.hdf mit den Namen deines HDF-Images. Weitere Informationen sind weiter oben bei "Ein Festplatten-Image einbinden" zu finden.

Speichere die Datei mit STRG+O, verlasse den Editor mit STRG+X und starte die Emulation mit sudo ./emulator
. Wenn AmigaOS geladen wurde, dann müssen wir noch eine einzige Datei kopieren. Am einfachsten geht das in der ❏ Shell mit den folgenden Kopier-Befehl:
copy PISTORM:a314/pi C:
In der ❏ Shell steht uns ab sofort der neue Befehl "pi" zur Verfügung. Geben wir diesen ohne Parameter ein, erlangen wir Zugriff auf den Raspberry Pi.

Ein Linux-Befehl kann optional als Parameter angegeben werden der anschließend ausgeführt wird.

Tipp: Speichere die gewünschten Befehle in eine Textdatei und setzte in den Datatype-Einstellungen ein Flag neben Script. Somit können mehrere Befehle mit einem Doppelklick ausgeführt werden. Beispielsweise könnte ein Script zum Herunterfahren des Rechners erstellt werden:
pi sudo poweroff
Die Netzwerk-Verbindung
Die A314-Emulation ermöglicht uns den Zugriff auf das Netzwerk bzw. Internet. Da der Raspberry Pi bereits mit einem WLAN-Modul ausgestattet ist, gibt es bereits eine Verbindung zum Router. Der Amiga kann aber darauf nicht ohne Weiteres zugreifen, denn dazu müssen einige Änderungen am Linux-Betriebssystem sowie in AmigaOS vorgenommen werden.
Bevor es los geht sollten noch zwei Programme auf den Amiga übertragen werden:
- Ein beliebiger Browser, beispielsweise https://aminet.net/package/comm/www/Voyager oder alternativ der leichtgewichtige Text-Browser ALynx.
- Als TCP/IP stack wählen wir Roadshow. Die Vollversion kostet 25€. Für unseren Test langt auch die Demoversion die sich 15 Minuten lang verwenden lässt.
Als erstes loggen wir uns per SSH in das Linux-System ein und geben anschließend folgende Befehle der Reihe nach ein:
sudo apt install python3-pip
sudo pip3 install python-pytun
sudo cp /home/pi/pistorm/a314/files_pi/eth-config-pi/tap0 /etc/network/interfaces.d/
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i tap0 -o wlan0 -j ACCEPT
sudo apt install iptables-persistent
Dann editieren wir die Datei sysctl.conf:
sudo nano /etc/sysctl.conf
Hier löschen wir die Raute vor der Zeile net.ipv4.ip_forward=1

Speichere die Datei mit STRG+O, verlasse den Editor mit STRG+X. Jetzt starten wir den den Raspberry Pi neu
sudo reboot
Nach erfolgten Neustart loggen wir uns wieder ein und editieren die PiStorm Konfigurations-Datei
cd ~/pistorm
nano default.cfg
Suche die folgenden Zeilen und lösche die Raute die davor steht
setvar piscsi
setvar piscsi0 PI0.hdf
setvar piscsi6 platforms/amiga/pistorm.hdf
setvar a314
Ersetze PI0.hdf mit den Namen deines HDF-Images. Weitere Informationen sind weiter oben bei "Ein Festplatten-Image einbinden".

Speichere die Datei mit STRG+O, verlasse den Editor mit STRG+X und starte die Emulation mit sudo ./emulator
.
Ist AmigaOS gestartet, kopieren wir die Datei 314eth.device. Das geht am schnellsten in der ❏ Shell mit folgenden Befehl:
copy PISTORM:a314/a314eth.device DEVS:
Installiere nun den TCP/IP stack Roadshow

Dann öffnen wir die ❏ Shell und und führen noch ein paar Datei-Operationen durch
COPY PISTORM:a314/eth-config-amiga/A314Eth DEVS:NetInterfaces/
COPY PISTORM:a314/eth-config-amiga/routes DEVS:Internet/
COPY PISTORM:a314/eth-config-amiga/name_resolution DEVS:Internet/
Nach einem Neustart von AmigaOS können wir überprüfen ob die Verbindung erfolgreich aufgebaut wurde. Dazu geben wir in der ❏ Shell den Befehl ping www.google.com
ein. Wird auf den Ping geantwortet, haben wir alles richtig gemacht.

Klicke auf das Bild zum Vergrößern
Im letzten Schritt installieren wir den Browser unserer Wahl und testen ob sich Webseiten öffnen lassen. Beachte, dass fast alle Webseiten die HTTP-Verbindung verschlüsseln, was unser Browser nicht unterstützt. Deshalb empfiehlt es sich eine Seite wie www.Aminet.net anzusurfen, dessen Verbindung nicht verschlüsselt ist.
PiStorm Autostart
Damit der Amiga mit eingebauter PiStorm verwendet werden kann, muss der Emulator jedes mal aufs neue gestartet werden. Damit wir uns nicht jedes mal über SSH einloggen müssen nur um den Emulation zu starten, können wir eine beliebige Konfiguration automatisch laden.
Damit die Emulation automatisch startet, erstellen wir einen Dienst. Dieser beinhaltet eine ganze Reihe an Informationen. Erstelle den Dienst mit den folgenden Befehl:
sudo nano /etc/systemd/system/pistorm.service
Kopiere die untenstehenden Zeilen in die Text-Datei:
[Unit]
Description=PiStorm emulator
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/home/pi/pistorm/emulator
WorkingDirectory=/home/pi/pistorm
[Install]
WantedBy=multi-user.

Optional kann man eine Konfigurationsdatei angeben die verwendet werden soll. Dazu muss hinter der Zeile ExecStart=/home/pi/pistorm/emulator
die entsprechende Konfigurations-Datei angegeben werden.
ExecStart=/home/pi/pistorm/emulator --config-file Beispiel.cfg
Der soeben erstellte Dienst bewirkt noch gar nichts, denn er muss erst aktiviert werden.
sudo systemctl enable pistorm.service
Wenn der Raspberry Pi das nächste mal hochfährt, sollte die Emulation automatisch starten. Möchte man den Dienst wieder deaktivieren, ohne ihn zu löschen, genügt folgende Zeile.
sudo systemctl disable pistorm.service
Um den laufenden Dienst zu stoppen (ohne den Dienst zu deaktivieren), muss der folgende Befehl eingegeben werden.
sudo systemctl stop pistorm.service
Für den manuellen Start, dieser:
sudo systemctl start pistorm.service
Und zum neustarten der Emulation:
sudo systemctl restart pistorm.service
PiStorm Software aktualisieren
Da die Firmware der PiStorm immer noch weiterentwickelt wird, lohnt es sich immer wieder mal nachzusehen ob vielleicht eine neue Version veröffentlicht wurde. Die PiStorm kann im Falle einer neuen Version einfach aktualisiert werden. Sicherheitshalber sollte eine Kopie der Config-Datei erstellt werden. An dieser Stelle gehe ich davon aus, dass nicht die originale Config-Datei (amiga.cfg), sondern eine Kopie davon verwendet wurde. Denn wenn beim Update eine Änderung der Original-Datei festgestellt wird, schlägt dieses fehl. Das Update wird mit folgenden Befehlen durchgeführt:
cd ~/pistorm
git pull --ff-only
make clean
make

Klicke auf das Bild zum Vergrößern
Falls die originale Config-Datei modifiziert wurde, können wir diese mit der neuen überschreiben. Erstelle in diesen Fall zuerst eine Sicherheitskopie der Datei falls diese noch benötigt wird. Das Update, welches alle Dateien der Software überschreibt, wird mit folgenden Befehlen ausgeführt:
cd ~/pistorm
git reset --hard
git pull --ff-only
make clean
make
PiStorm CPLD aktualisieren
Nicht nur die PiStorm-Software, sondern auch die CPLD-Firmware sollte hin und wieder auf den neuesten Stand gebracht werden. Denn in manchen Fällen könnte die PiStorm-Software die aktuelle CPLD-Firmware voraussetzen damit alle Funktionen zur Verfügung stehen. Die CPLD-Firmware wird wie folgt aktualisiert:
sudo apt-get install openocd
./flash.sh

Klicke auf das Bild zum Vergrößern
