Ceci peut être intéressant pour les utilisateurs linux, qui ont besoinde faire fonctionner des application qui n'existent que dans l'environnement windows et sont compatibles Wine. Vous pouvez d'alileurs vérifier si votre application fait partie des plus de 16000 applications testées compatible dans la base de données https://appdb.winehq.org/.
J'ai eu cette problématique pour faire fonctionner uTracer GUI, un logiciel permettant de piloter le traceur de courbes pour tubes à vides développé par Ronald Dekker afin de tester et caractériser les lampes utilsiées sur mes amplis à lampes. uTracer est bien compatible (https://appdb.winehq.org/objectManager.php?sClass=application&iId=21259 )
Le logiciel est développé en visual basic, et communique par un port série avec le matériel. Malheureusement de nos jours, les PC ne sont plus livrés avec des ports série. Toutefois les cables adapteateurs USB/série font très bien le boulot. Les meilleurs d'entre eux sont ceux basée sur les composants FT232r de FTDI. En effet ce sont ceux qui bénéficient de la mailleur protection ESD et immunité au bruit. Accessoirement, ce sont également ceux qui bénéficient du meilleur support sur tous les systèmes d'exploitation. Ca nous arrange !
Installer Wine dans une distribution Linux n'est pas très compliqué. Il vaut d'alleurs privillégier la méthode officielle que la version de Wine livré avec votre distribution Linux, souvent en retard de plusieurs versions.
Sur Debian, Ubuntu et distritions filles, la méthode "Wine HQ" est assez bien documentée : https://gitlab.winehq.org/wine/wine/-/wikis/Debian-Ubuntu . Il suffit d'ajouter les clés, le dépot et d'installer le paquet.
Au passage, petite coquille, il ne faut pas faire :
sudo apt install --install-recommends winehq-stable
mais bien:
sudo apt install --install-recommends wine-stable
Wine étant installé, vous pourrez installer votre programme de façon classique en lancant le setup.exe
WINEPREFIX=~/.wine wine ./setup.exe
A ce stade, vous pouvez lancer votre programme par l'interface graphique.
Malheureusement dans le cas de uTracer, seul les ports série physiques sont exportés dans windows (ttyS0=COM1, ttyS1=COM2, etc..). Si vous avez un PC avec un vrai port série, c'est fini. Si vous avez un cable USB <> Série il rete encore une étape.
Wine prévoir un mécanisme configurable par la registry de windows pour créer des alias de ports, et ainsi permettre l'usage d'adaptateurs USB <> série (ttyUSB0...).
Pour le configurer il suffit de :
- Vérifier (et le cas échéant ajouter) votre utilisateur dans le groupe dialout avec "sudo adduser $USER dialout"
- Brancher votre cable sur votre poste de travail linux
- faire "sudo dmesg" et regarder sur quel périphérique votre cable est détecté / monté (habituellement /dev/ttyUSB0)
- Lancer l'editeur de registre de wine ("WINEPREFIX=~/.wine wine regedit")
- Ajouter une valeur chaine dans HKEY_LOCAL_MACHINE\Software\Wine\Ports avec un nom de clé "COM1" et une valeur correspondant à ce que vous avez relevé dans dmesg ( ici /dev/ttyUSB0 ).
- Quitter regedit
- Lancer votre programme windows sous wine
- Quitter votre programme windows sous wine
- Vérifier dans ~/.wine/dosdevices que le lien symbolique vers le port usb a bien été créé :
ls ~/.wine/dosdevices lrwxrwxrwx 1 jpcivade jpcivade 10 Jan 9 08:44 com1 -> /dev/ttyUSB0 lrwxrwxrwx 1 jpcivade jpcivade 10 Jan 9 08:44 com2 -> /dev/ttyS1 lrwxrwxrwx 1 jpcivade jpcivade 10 Jan 9 08:44 com3 -> /dev/ttyS2 lrwxrwxrwx 1 jpcivade jpcivade 10 Jan 9 08:44 com4 -> /dev/ttyS3 lrwxrwxrwx 1 jpcivade jpcivade 10 Jan 9 08:42 com5 -> /dev/ttyS2 lrwxrwxrwx 1 jpcivade jpcivade 10 Jan 9 08:42 com6 -> /dev/ttyS3 lrwxrwxrwx 1 jpcivade jpcivade 12 Jan 9 08:39 com7 -> /dev/ttyUSB0
- Voila maintenant vous pouvez lancer votre programme windows et voir votre cable USB en com1!
- Si l'affichage vous parait trop petit, vous pouvez changer la résolution d'écran ( changer le nombre de dpi).
WINEPREFIX=~/.wine winecfg