5.2.20
04/05/20
Last Modified 12/31/13 by Walter Tasin
OS9_x86_PrepareInstallMedia Reload Page

OS 9/x86 für virtuelle Maschinen (Paketerstellung)

Dieses Dokument beschreibt die Installation eines OS9000-Systems für den Betrieb innerhalb einer virtuellen Maschine und die Medienbereitstellung (Paketierung zur Verteilung).

Auswahl einer virtuellen Maschine

Es standen folgende virtuelle Maschinen zur Auswahl:

Jede dieser virtuellle Maschinen zeigt für den Einsatz mit OS 9000 seine Schwächen:
So kann man unter Virtual PC zwar eine OS 9000-Bootdisk verwenden, aber es wird nichts in der Konsole dargestellt, das System läuft aber.
Während unter Virtualbox und QEmu (offiziellen, unverbesserten Version 0.9.0) der OS 9000-Diskettentreiber nicht funktioniert.
Weiter ist der Netzwerkzugriff zum Hostsystem etwas komplizierter, da dies über ein sogenanntes TAP-Device läuft.

Da QEmu aber nicht installiert werden muss und sich die Installation des TAP-Devices auch relativ einfach durchführen läßt, erhielt diese virtuelle Maschine den Zuschlag.
Zusätzlich hat man direkten Zugriff auf die Sourcen, somit ist eine eventuelle Erweiterbarkeit um Hardware-Emulationen auch gewährleistet.

Vorgehensweise zur Basis-Installation

Installation der Board Level Solution von Microware OS-9 for x86/Pentium

Dazu wird das Produkt und am besten auch die Dokumentation mithilfe der entsprechenden CD von RadiSys installiert.

Das Produkt wird standardmäßig in C:\MWOS installiert.
Mithilfe des Microware Configuration Managers können dann Bootdisketten erzeugt werden.

Bei dem Microware Configuration Manager handelt es sich um kommerzielle Software der Fa. Radisys.
Erst durch den Erwerb der Software Microware (R) OS-9(R) for x86/Pentium ist es möglich ein lauffähiges OS-9 System für i386-basierende Systeme zu erstellen und zu betreiben.

Um den Aufwand der Konfiguration jedoch zu verringern, wurden diesem Dokument bereit einige INI-Datei beigefügt. (s. Anhänge)

Folgende vorkonfigurierte INI-Dateien stehen zur Verfügung:

  • qemu-admin-fd-fixed-with-hd
    Boot: Floppy
    Netzwerkadresse: 10.0.2.14/24 ; Gateway: 10.0.2.2;
    Hardwarekomponente: für QEmu eingerichtet
    • qemu-hd-fixed-with-fd
      Boot: Harddisk
      Netzwerkadresse: 10.0.2.14/24 ; Gateway: 10.0.2.2;
      Hardwarekomponente: für QEmu eingerichtet

MAXAGE-Wert setzen

Für die Verwendung in den Praktika des Labors MS ist es nötig den MAXAGE-Wert auf 255 zu setzen.
Somit werden Prioritäten >255 als Echtzeitprioritäten festgelegt.

Dazu wird die Datei C:\MWOS\OS9000\80386\PORTS\PCAT\INIT\default.des editiert.

mwos-dir.png

Die Zeile #define MAXAGE 255 wird eingefügt.

...
#define PREIOS      PRE_PREIOS "oemcmd picirq abort dmabuf" POST_PREIOS /* pre-I/O ext. modules */
#define COMPAT      0
/* Defines for LMS (wt) */
#define MAXAGE      255

#cinclude <memory.h>
#cinclude <alloc.h>

...

Es werden die Module danach mithilfe von os9make neu erstellt.
os9make.png

Erzeugung der Floppy-Bootimages

Halten Sie dazu 2 leere Disketten bereit, um die entsprechenden Bootimages zu erzeugen.

Als nächstes wird nun der Microware Configuration Manager gestartet.
Da dieser die eingespielten INI-Dateien nicht aus dem Verzeichnis ausliest, muss das erste Mal eine Konfiguration mit dem gleichen INI-Namen erzeugt werden.
cnf-wiz1.png
Quittieren Sie den Dialog mit OK.

Nun den Manager beenden und die - oben angegebene - INI-Datei in das Verzeichnis C:\MWOS\OS9000\80386\PORTS\PCAT\BOOTS\INSTALL\INI kopieren.

Den Manager erneut starten, nun den Punkt Use existing configuration mit dem entsprechenden Namen selektieren.

Danach können Sie direkt zur Erzeugung der Bootdisk schreiten. Verwenden Sie dazu den Button BL in der Werkzeugleiste wie in (1) im folgenden Bild dargestellt.
cnf-bl.png

Legen Sie eine leere Disk ein und führen die Schritte (2)-(6) aus.
Die Bootdisk ist dann für die Konfiguration erstellt.
Bezeichnen Sie diese Disk OS9 Floppy Boot

Dies sollte dies dann für die andere Konfiguration qemu-hd-fixed-with-fd.ini mit der 2. leeren Disketten wiederholen.
Bezeichnen Sie die 2. Disk OS9 HD Bootstrap

Tipp: Besser ist es die erzeugten Floppyabbilder zusätzlich als img-Dateien zu sichern; Dies kann z. B. unter Linux mit dem dd Kommando erledigt werden.

Download des vorgefertigten QEmu-Paketes

Diesem Dokument ist bereits das QEmu-Paket ohne Betriebssystemfestplatte beigefügt.
Das Paket hat den Namen OS9000_on_QEmu.zip (s. a. oben rechts ... Punkt Anhänge) und kann an beliebiger Stelle auf der Festplatte entpackt werden. Es ist kein Setup dafür notwendig.

Wie das Paket erstellt wurde kann hier genauer nachgelesen werden.

Erzeugen einer leeren QEmu-Festplatte

Eine virtuelle Festplatte kann über den Kommandozeilenbefehl qemu-img.exe erzeugt werden.
Starten Sie dafür eine Eingabeaufforderung und wechseln Sie in das Verzeichnis der eben entpackten Dateien.
Der Name des Images muss os9000.img heißen, und das Image muss sich im gleichen Verzeichnis befinden.

Der folgende Beispielaufruf erzeugt eine 45MB-Festplatte mit dem Namen os9000.img. Es wird dabei angenommen, dass das Paket auf den Desktop des Benutzers Tasin entpackt wurde (hier D:\Dokumente und Einstellungen\Tasin\Desktop\)

D:\Dokumente und Einstellungen\Tasin\Desktop\OS9000 on QEmu>qemu-img create -f raw os9000.img 45M
Formating 'os9000.img', fmt=raw, size=46080 kB

D:\Dokumente und Einstellungen\Tasin\Desktop\OS9000 on QEmu>

Festplatteninstallation unter OS 9000

Für den folgenden Installationsteil ist es nötig einen FTP-Server bereitzustellen, auf dem die OS 9-RESIDENT Tools der CD Microware (R) OS-9(R) for x86/Pentium zu finden sind.

Starten der virtuellen Maschine im Administratormodus

Legen Sie die zuvor erzeugte Diskette OS9 Floppy Boot in das Laufwerk ein.
Öffnen Sie das Paketverzeichnis und starten Sie OS9000.bat.
dir3.png
Wählen Sie nun den Administratormodus aus:
batch-start.png

Damit wird nun das virtuelle OS9/x86-Gastsystem gestartet.
Die weitere Konfiguration der Festplatte findet unter OS9/x86 statt.

Konfiguration der virtuellen Festplatte

Dieser Vorgang ist im PDF-Dokument x86_bg.pdf (OS9 for x86 Board Guide)

  • Kapitel 1 -
    • Building an OS-9 Image on the Target
    • Seite 20 ff.

der Microware-Dokumentation von RadiSys sehr gut beschrieben.



ACHTUNG!!
BEVOR der letzte Befehl bootgen, um die Platte bootfähig zu machen ausgeführt wird, muss die Diskette gewechselt werden.
Dafür muss die Diskette der Konfiguration qemu-hd-fixed-with-fd.ini (oben als OS9 HD Bootstrap bezeichnet) verwenden!!

Kurzversion der Festplatteninstallation:

Partionieren der Festplatte

$ fdisk -d=/hcfmt -e
Super:

  • Eine OS-9 Partion erzeugen (Punkt 1)
  • diese aktiv setzen (Punkt 2)
  • den neuen Masterbootblock schreiben (Punkt 6)
  • mit [ESC] beenden und die Änderungen auf die virtuelle Festplatte schreiben

Formatieren der Festplatte

$ format /hc1fmt

                    disk format utility
OS-9/x86 V4.7   PC-AT Compatible 80386 - 80386

    ---------------- format parameters ----------------

    disk type: hard disk - auto sizing
    variable parameters:
                              block size: 512
                    logical block offset: 1
                        block interleave: 1
                 block address of bitmap: 30218
                    total blocks on disk: 90656
ready to format /hc1fmt (y/n/q) ? y
do physical format (y/n/q) ? n
disk name (32 bytes max.): OS9Sys
performing the logical format
do physical verify (y/n/q) ? n

        quantity good            90656   (         46415872 bytes )
        quantity bad                 0   (                0 bytes )
        quantity on disk         90656   (         46415872 bytes )
        quantity verified            0   (                0 bytes )

$

Kopieren der OS 9-RESIDENT Tools in gepackter Form auf die virtuelle Festplatte via FTP

Dabei beachten, dass man den Dateitransfer des FTP-Clients vorher auf binär umschalten muss.

$ chd /hc1fmt
$ ftp <Servername>
Connected to <Servername>
220 Welcome to ...
Name (...): <username>
Password: <Passwort>
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd <Verzeichnis der Resident Tools>
250 Directory successfully changed.
ftp> mget *
mget diskcache  [anpqy?]? a
<.... .... .... Ausgaben die den Dateitransfer bestätigen>
ftp> quit

Vorbereiten des Entpackens und Entpacken auf dem Zielsystem

Nun noch die eben heruntergeladenen Pakete auf dem Zielsystem entpacken:

$ chd /hc1fmt
$ load -d diskcache
$ diskcache -e /hc1fmt=1024
$ load -d tar ; tmode nopause ; tar xvpf mw86.tar

Hinweis: das Tarball mw86sm.tar ist eine Miniversion des Systems und kommt hier nicht zum Einsatz.

Danach kann man die Tarballs mw86.tar und mw86sm.tar von der Festplatte löschen (wenn man will).

Nun noch die Festplatte bootfähig machen

Als erstes die Diskette der Konfiguration qemu-hd-fixed-with-fd.ini (oben als "OS9 HD Bootstrap" bezeichnet) einlegen.

Nun wie auf Seite 29 - der RadiSys-Dokumentation - unter Configuring the Hard Drive beschrieben fortfahren.

$ chd /hc1fmt
$ diskcache -d /hc1fmt
$ bootgen /hc1fmt -i=/d0/iplhdnoq -l=/d0/firstboot /d0/sysboot -nb480
$

Als nächstes wird das OS9/x86-System von der virtuellen Festplatte gebootet.
Beenden Sie dazu die virtuelle Maschine durch Schließen den Windows-Fensters.

Starten der virtuellen Maschine über die Festplatte

Sie sollten das Fenster der OS9000.bat-Datei noch offen haben (andernfalls einfach OS9000.bat wieder starten).
Wählen Sie nun den Punkt 2 (Test ohne Hawk).

Damit wird OS9/x86 nun von der eben konfigurierten Festplatte gebootet.

Anpassung der /h0/SYS/startup

Die Datei /h0/SYS/startup wird um folgende Einträge erweitert:

...
iniz r0 h0
...
alias /dd /h0
...
*
* Alternative:
* dhcp enet0 -override
*
* Disable the next line to switch off development with Hawk-IDE
spfndpd <>>>/nil &
* change to default drive
chd /dd

Dieser Teil wird mit umacs eingefügt.

Damit sieht die Datei wie folgt aus:

Super: list /h0/SYS/startup
-tnxnp
-nt
setenv SHELL mshell
tmode -w=1 nopause
*
*   OS9 For Embedded Systems (X86) V1.0
*   Copyright 1996, 1997, 1998 by Microware Systems Corporation
*
*   The commands in this file are highly system dependent and should
*   be modified by the user.
*
*setime </term                      ;* start system clock
setime -s                           ;* start system clock
link mshell csl                     ;* make "shell" and "csl" stay in memory
* iniz r0 h0 d0 t1 p1 term          ;* initialize devices
iniz r0 h0 
* load utils                        ;* make some utilities stay in memory
* tsmon /term /t1 &                 ;* start other terminals
list sys/motd
setenv TERM pcat
diskcache -e /h0=1024k              ;* Use disk cache to speed transfers
alias /dd /h0                       ;* In case of no RAM disk remove comment
tmode -w=1 pause
setenv PATH /h0/CMDS
setenv MWOS /h0/MWOS                ;* Setup MWOS enviorment
assign h hist
assign cd chd
assign ls (dir -u)
assign type list
*
* Alternative:
* dhcp enet0 -override
*
* Disable the next line to switch off development with Hawk-IDE
spfndpd <>>>/nil &
* change to default drive
chd /dd
*
* Use multi-term.
*
iniz mterm1 mterm2 mterm3
*
setenv _sh -1
mshell     -elsp="@(OS9_w1)[%p/>] "    <>>>/mterm1&
setenv _sh -1
mshell     -elsp="@(OS9_w2)[%p/>] "    <>>>/mterm2&
setenv _sh -1
mshell     -elsp="@(OS9_w3)[%p/>] "    <>>>/mterm3&
setenv _sh 0
ex mshell -elsp="@(OS9_w0)[%p/>] " <>>>/term&
Super:

Fertigstellung des Pakets

Damit ist nun das Paket mit der nötigen OS-9000 Festplatte fertig.

Das so konfigurierte Paket kann nun mit den Aufrufpunkten a und 2 der OS9000.bat benutzt werden.
Aufruf 2 bietet dem OS9/x86-System bereits die Möglichkeit über NAT netzwerktechnisch nach "außen" zu gelangen.

Dies ist für den Einsatz als Zielsystem und Entwicklung via Hawk auf dem Hostsystem der virtuellen Maschine nicht ausreichend.
Es muss nun noch ein TAP-Device installiert werden, damit der Host (normalerweiser das System auf das die virtuelle Maschine läuft) eine Verbindung zum OS9/x86-Gastsystem (=virtuelle Maschine) aufbauen darf.
Wie das ermöglicht wird können Sie hier nachlesen.





Quellen

RadiSys

QEmu on Windows
QEmu on Windows - Download

OpenVPN

TUN/TAP unter QEmu





Updates von Anhängen

Dateiname Bemerkung Datum
OS9000_on_QEmu.zip Neue SDL.DLL eingespielt, DirectX-Support 19.07.2007
OS9000_on_QEmu.zip Neue SDL.DLL eingespielt, da alte Version ein Alt-Gr-Tastenproblem hatte 23.05.2007
qemu-hd-fixed-with-fd.ini Einige Werte korrigiert; Boot-Medium hd0 - wie verlangt - RAM-Disk auf 2 MB erhöht, damit ein Floppyinhalt zwischengespeichert werden kann. 25.05.2007
qemu-hd-fixed-with-fd.ini RAM-Disk auf 2 MB erhöht, damit ein Floppyinhalt zwischengespeichert werden kann. 25.05.2007