On 15.01.16 11.31, Franklin Schiftan wrote:
> 1. Ein Notbook mit Win7Ult64, welches keine körperlichen
> Com-Anschlüsse mehr hat.
> 2. Daran angeschlossen ist daher ein USB2Serial-Adapter, der im Host
> unter Com3 geführt wird und grundsätzlich auch funktioniert (siehe
> Punkt 5)
> 3. Auf dem Host läuft unter anderem eine 32-bit-Manjaro-Linux-VM in
> VirtualBox.
> 4. In dieser Linux-VM startet mein altes 16-bit-Windows-Programm zur
> Telefonanlagen-Konfiguration unter Wine soweit einwandfrei.
Sicher, dass es 16 Bit, also Windows 3.1(1) ist?
> ABER es kann den zur Kommunikation mit der Telefonanlage notwendigen
> ComPort nicht öffnen (habe testhalber alle vier einstellbaren
> ComPorts von 1 bis 4 durchprobiert).
Das wird nichts. Unter 16 Bit Windows gab es noch kein USB und auch
keine (brauchbare) Serial-Port API. Deshalb haben die meisten Programme
direkt auf die UART Controllerchips zugegriffen. Aber Wine kann AFAIK
keine UART-Chips emulieren.
Du braucht eine VM die den 16550 Controller emulieren kann. VirtualBox
kann das.
Dazu müsstest Du aber Win 3.11 (16 Bit) direkt in VBox installieren,
ohne ein Linux dazwischen. Nun ist eine Win 3.1 Installation selbst in
einer VM wahrlich kein Vergnügen. Alternativ ginge auch OS/2 oder
eComStation. Das kann 16 Bit Windows Programme nativ ausführen und
erlaubt diesen direkten Hardwarezugriff auf die nunmehr virtuellen UART
Chips.
> Ist es nun ein Problem der zusätzlichen Wine-Schicht?
Ich würde sagen ja.
> Oder kann ich
> dem 16-bit-Windows-Programm doch noch irgendwie durch Maßnahmen in
> der Linux-VM direkt den Zugriff auf die Com-Schnittstelle des
> USB2Serial-Adapters ermöglichen?
Nein Direkt geht nicht. Die Dinger sind technisch komplett inkompatibel.
Die alten Programme wollen üblicherweise direkt auf die 16550 Controller
Chips zugreifen. Dieser Chip muss erst mal emuliert werden.
Aber vielleicht hast Du ja Glück, und es ist gar kein 16 Bit Programm,
sondern Win32. (Oft waren nur die Installer 16 Bit.)
Oder aber, Du hast eines der wenigen 16 Bit Programme erwischt, die
tatsächlich die damaligen APIs für den COM-Port Zugriff nutzen.
In diesen Fällen sollten tatsächlich korrekte Konfigurationsmaßnahmen
reichen.
> 5. Hinweis: Unter einer alten WinXP-VirtualBox-VM funktioniert das
> 16-bit-Telefonanlagen-Programm *mit Zugriff* auf die am Host per
> USB2Serial-Adapter bereitgestellte Com-Schnittstelle problemlos und
> kann Daten mit der Telefonanlage austauschen.
Das spricht eigentlich dafür, dass es sich in Wirklichkeit um ein Win32
Programm handelt, denn der direkte COM-Port Zugriff ging auch unter
WinXP schon nicht mehr. Da war bei WinME Schluss.
Marcel