Skip to main content

RS232 / tty testing and simulation on Linux


(UPDATED 2022/02 - Use Docklight V2.4 and additional winetricks)

Summary / TL;DR

How to run Docklight on your Linux desktop without using VirtualBox/Windows ?  Use WineHQ package and winetricks

We successfully tested the access and use of serial ports (tty) and networking (TCP / UDP) functions, but display output is significantly slower than on VirtualBox

For installation, use a 32-bit WINEPREFIX and 
winetricks corefonts consolas vb6run richtx32 comdlg32ocx comctl32ocx wsh57 .

Docklight On Ubuntu Linux 20.04 - Serial Port Configuration

Experimental use only

“Use at own risk” - The below description of Docklight installation and use on Linux desktop computers is for experimental use. It is currently not recommended in production environments.

Limitations / Known issues

  • For tty / serial ports, use Docklight V2.4 versions (e.g. the Docklight Scripting V2.4 Preview), not V2.3.
  • Docklight Tap Pro and Docklight Tap 485 cannot be accessed. 
  • In Docklight Scripting, some VBScript system commands like "InputBox" are not available. (But you can use Docklight's own method "DL.InputBox2") 
  • Docklight crashes on application exit. 
  • Display formatting/update is significantly slower than on Window, which can lead to slower Receive Sequence reaction times.

Background

In recent months, we noticed an increasing interest in a Docklight version for Linux. The bad news - our extremely reliable ‘classic’ Docklight code cannot be directly compiled to Linux. A Linux version essentially requires a rewrite of all Docklight core parts. The good news - Our existing Docklight releases can be installed and used via the www.winehq.org Windows Compatibility layer. 

We ran tests on popular Ubuntu Linux desktop distributions (Ubuntu 20.04 and Pop!_OS21.10), but WineHQ binaries are also available for Debian, Fedora, and SUSE.

Here is what we did:

Step-by-Step Installation and Use

Prepare: winehq.org and winetricks environment

  • Make sure 32-bit architecture is available:
~$ sudo dpkg --add-architecture i386

 

  • Install WineHQ stable (tested with 6.0 stable and 7.0 stable):
~$ wget -nc https://dl.winehq.org/wine-builds/winehq.key
~$ sudo apt-key add winehq.key
~$ sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
~$ sudo apt install --install-recommends winehq-stable

 

  • Create a separate 32-bit WineHQ prefix for Docklight, with the minimum required fonts and VB6 runtime packages and controls:

~$ sudo apt install winetricks

~$ sudo winetricks ---self-update

~$ winetricks arch=32 prefix=docklight32
~$ export WINEPREFIX=~/.local/share/wineprefixes/docklight32

~$ winetricks corefonts consolas

~$ winetricks vb6run richtx32 comdlg32ocx comctl32ocx wsh57

 

TIP: When the Wine Mono Installer appears, use Cancel - it is not required. For the Wine Gecko Installer, choose Install, or the Docklight Help will not work correctly. 

Prepare: Serial port mapping and access rights

~$ sudo usermod -a -G dialout $USER 
~$ sudo reboot

Install Docklight

~$ export WINEPREFIX=~/.local/share/wineprefixes/docklight32

~$ wine $HOME/Downloads/DocklightScriptingSetup.exe

  • Confirm all installation defaults

Use Docklight

  • Start Docklight Scripting (or Docklight) from the new icon appearing in the applications menu.
  • Or find out the launch command from the .desktop shortcut file

~$ cat ~/.local/share/applications/wine/Programs/'Docklight Scripting V2.4'/'Docklight Scripting.desktop'

[Desktop Entry]

Name=Docklight Scripting

Exec=env WINEPREFIX="/home/wolf/.local/share/wineprefixes/docklight32" wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/wolf/.local/share/wineprefixes/docklight32/dosdevices/c:/ProgramData/Microsoft/Windows/Start\\ Menu/Programs/Docklight\\ Scripting\\ V2.4/Docklight\\ Scripting.lnk

Type=Application

StartupNotify=true

Path=/home/wolf/.local/share/wineprefixes/docklight32/dosdevices/c:/Program Files/FuH/Docklight Scripting V2.4

Icon=4813_Docklight_Scripting.0

StartupWMClass=docklight_scripting.exe


Find your COM port number

  • After running wine, the ~/.wine/dosdevices/folder contains the symbol links that define the mapping between Linux /dev/tty files and Windows COM names. For example, use the following command to find ttyUSB type devices like our Docklight RS232 Adapter (ftdichip.com hardware):

~$ ls -l ~/.wine/dosdevices/ | grep USB

lrwxrwxrwx 1 wolf wolf 12 Mar 10 09:32 com33 -> /dev/ttyUSB0

 

Some Screenshots

Docklight Installation - No Mono required

Docklight Installation - Do install Gecko

Docklight Standard Setup

Choose "Ignore" for any issues with DLL versions

Setting up serial ports (Linux tty / Windows COM)

Docklight serial communications running



Additional Remarks

The above approach is intended for Linux desktops users who want to stay away from a VirtualBox and do not have requirements for high-speed communication output. But it is an experimental approach where we cannot guarantee correct functionality and best performance. For production environments we recommend running Docklight on a virtual machine - we already tested VirtualBox with a Windows 11 prerelease version successfully. 

Of course, we would be happy to receive any feedback about the above solution, especially if you could or could not get this to work on your specific Linux distribution and version. 

Best regards,
Marco Flachmann and Oliver Heggelbacher
- The Docklight Developers -


Comments