Konvertieren des Ports /dev/ttyUSB in com, um ihn mit Wine unter Linux zu verwenden

Ich habe eine Software, die unter Windows läuft. Ich habe Wine installiert und unter Linux ausgeführt. Es funktioniert gut, aber das Problem ist, dass es mit einer seriellen Schnittstelle kommuniziert. Daher ist die einzige option, die ich wählen kann, sind com1, com2, ...

Aber mein Gerät auf dem Linux-Computer befindet sich tatsächlich am Speicherort /dev/ttyUSBn. Wie verwende ich die obige Software in Linux Ubuntu?

Ich habe versucht, ln -s /dev/ttyUSBn COM1 in der ~/.wine/dosdevices/. Es scheint nicht zu funktionieren.

Author: Kamil Maciorowski, 2013-07-14

4 answers

Ab Wine 2.8 funktioniert die einfache Symlink-Bearbeitungsmethode der Konfiguration nicht. Man muss COM-Ports konfigurieren, indem man die Weinregistrierung bearbeitet. Von Wein Benutzerhandbuch / Andere Dinge zu konfigurieren / Serielle und parallele Ports:

Um die standardmäßige Gerätezuordnung von Wine zu überschreiben, führen Sie wine regedit aus und erstellen Sie Zeichenfolgeneinträge in HKEY_LOCAL_MACHINE\Software\Wine\Ports, wobei der Eintragsname der Windows-Gerätename und der Eintragswert der Pfad zum Unix-Gerät ist. Fortsetzung mit dem obigen Beispiel, um COM1 zu machen erstellen Sie an der ersten seriellen USB-Schnittstelle einen Eintrag mit dem Namen COM1 und dem Wert /dev/ttyUSB0. Möglicherweise möchten Sie auch einen Eintrag mit dem Namen COM5 ohne Wert erstellen, um das Gerät COM5 zu entfernen, das jetzt ein Duplikat von COM1 ist. Nachdem Sie die Registrierung bearbeitet haben, fahren Sie Wine mit wineserver -k herunter und wenn Wine das nächste Mal ein Programm ausführt, werden Ihre Änderungen wirksam.

 4
Author: Ruslan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-08-15 13:28:44

Symlinks sollten funktionieren; Sie müssen sich jedoch in ~/.wine/dosdevices/ befinden, nicht in einem zufälligen Verzeichnis. Der WineHQ-Artikel zeigt die Namen auch in Kleinbuchstaben an.

4.3.1. Serielle und parallele Anschlüsse

Die Konfiguration des seriellen und parallelen Ports ist der Konfiguration des Laufwerks sehr ähnlich - erstellen Sie einfach eine symbolische Verknüpfung in ~/.wine/dosdevices mit dem Namen des Geräts. Serielle Windows-Ports folgen einer Namenskonvention des Wortes " com " gefolgt von einer Zahl wie com1, com2, etc. In ähnlicher Weise verwenden parallele Ports" lpt " gefolgt von einer Zahl wie lpt1. Sie sollten diese direkt mit den entsprechenden Unix-Geräten verknüpfen, z. B. /dev/ttyS0 und /dev/lp0. Um beispielsweise eine serielle Schnittstelle und eine parallele Schnittstelle zu konfigurieren, führen Sie die folgenden Befehle aus:

ln -s /dev/ttyS0 com1
ln -s /dev/lp0 lpt1
 3
Author: user1686,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-12 13:48:39

In einigen Fällen benötigt MS-Software, die GetCommConfig() unter Wine verwendet, einen Registrierungsschlüssel, der explizit festgelegt ist, wenn die in beschriebene automatische Erkennungsfunktion https://wiki.winehq.org/Wine_User%27s_Guide#Serial_and_Parallel_Ports erkennt Ihren Port nicht automatisch.

Versuchen Sie, einen Registrierungsschlüssel in ~/.wine/system.reg wie folgt festzulegen:

...
[Hardware\\Devicemap\\Serialcomm] 1231984861
"Serial0"="COM1"
...

Es funktionierte für mich mit meinem ln -s /dev/tty.usbmodemFD121 ~/.wine/dosdevices/COM1 Gerät.

 0
Author: Grafblade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-12-07 20:32:10

Stellen Sie zusätzlich zu den von Ihnen erstellten Links sicher, dass sich der Benutzer in den richtigen Benutzergruppen befindet. Von Wein Benutzerhandbuch / Andere Dinge zu konfigurieren / Serielle und parallele Ports:

Stellen Sie sicher, dass Sie über die erforderlichen Rechte für den Zugriff auf die seriellen und parallelen Ports Ihres Computers verfügen. Unter Linux muss ein Benutzer normalerweise Mitglied der sys oder dialout gruppieren Sie, um auf serielle Ports zuzugreifen

 0
Author: user5534993,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-03-13 09:26:47