Author Topic: [Guide] Install Siglent EasyWaveX/EasyScopeX/EasyPower/EasyDMM on Linux via Wine  (Read 7808 times)

0 Members and 1 Guest are viewing this topic.

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Expectations

This guide provides instructions regarding the installation process of Siglent EasyTools on Linux using Wine.  The respective EasyTool can be then used to connect to test equipment over the network. Connecting devices via USB is not tested and making USB connectivity work is outside of the scope of this guide.

Disclaimer

Use at your own risk! This guide comes without any warranty. Under no circumstances I, the author of this guide, take responsibility for any damage caused (physical or monetary)/lost income/lawsuits/etc.

Test equipment used for validation
  • Siglent SDG2042X waveform generator
  • Siglent SDS1104X-E oscilloscope
  • Siglent SPD3303X-E power supply
  • Siglent SDM3055 multimeter
The test equipment was connected to a network switch together with the computer on which the respective EasyTool was running.

Prerequisites
Common
  • Wine
  • winetricks
  • NI-VISA Runtime 16.0 (newer versions will not work with this guide)

Tool specific
ApplicationDependencies
EasyScopeX, EasyDMMVisual C++ 6.0 runtime, .NET Framework 3.5 SP1
EasyPowerVisual C++ 6.0 runtime

Installing Wine and winetricks

This guide was tested on Ubuntu 20.04 using Wine 5.0 and on Manjaro using Wine 6.7.

Ubuntu

Code: [Select]
sudo apt install wine-stable winetricks
Manjaro

Code: [Select]
sudo pacman -S wine winetricks
Links

NI-VISA Runtime

https://www.ni.com/sv-se/support/downloads/drivers/download.ni-visa.html#306035
Double check that the Version is set to 16.0

Visual C++ 6.0 runtime
https://download.microsoft.com/download/vc60pro/Update/2/W9XNT4/EN-US/VC6RedistSetup_deu.exe

EasyTools

https://siglentna.com/service-and-support/firmware-software/

Tested versions:
ApplicationVersion
EasyWaveX1.1.0.13
EasyScopeX1.01.02.01.21
EasyPower1.01.01.18
EasyDMM1.02.01.03

Configuring Wine

The only change that I made was to set the Windows version to Windows 10 using winecfg. I had issues with the EasyWaveX window not reacting to user input on other versions.
The guide works on both 32-bit and 64-bit Wine prefixes, the installed dependencies always have to be 32-bit however.

Installing NI-VISA Runtime 16.0

The first step is to extract the downloaded ZIP file.
There is one mandatory component that needs to be installed and two optional.
Open a terminal and navigate to the root of the folder where the ZIP file was extracted. There should be a directory called Products in this directory.

Mandatory components

Code: [Select]
wine msiexec /i Products/NI-VISA_Runtime/NIVISAruntime.msiThe the Ethernet runtime support is needed, the rest can optionally be deselected.

Optional components

Some errors can be seen in the command line when EasyWaveX is launched without the NI Network Discovery Service and mDNS responder. They do not seem to affect the application, but they go away if the right components are installed.
Code: [Select]
wine msiexec /i Products/NINetworkDiscoverySvc/NINetworkDiscoverySvc.msi
Code: [Select]
wine msiexec /i Products/mDNS_Responder/mDNSResponder.msi
Installing .NET Framework 3.5 SP1
Code: [Select]
winetricks dotnet35sp1
Installing Visual C++ 6.0 runtime

Normally this dependency would be installed via winetricks but it seems to be broken.
Code: [Select]
winetricks vcrun6
If the above command fails, the workaround is to download the installer, run it, which will extract the actual installer.
The extracted file then has to be executed again, which will install the runtime.

Installing EasyTools

All of the tested EasyTools use similar/the same installer. Extract the downloaded ZIP file and run the installer with Wine.

A PDF version of this guide can be found as an attachment.



Original post

Hello!

I am trying to make EasyWaveX work on Linux and I am wondering if anyone succeeded in it before.

I am currently running a Manjaro installation, with wine-6.7.

I tried to install the NI-VISA runtime, which failed.

Without this EasyWaveX was not running.

In the end I found out that EasyWaveX only needs two DLLs from the NI-VISA runtime: VISA32.dll and NiViSv32.dll. Apart from that it also seemed to use the 2015 Visual C++ runtime.

I copied those two files from a Windows machine to the System32 folder in my Wine Prefix and installed the C++ runtime which made it possible to run the application.

The only issues is that I cannot make it detect my SDG2042X. I have two ethernet cards in my computer and I am using one with a network switch to make a small LAN. All of my test equipment are connected to the switch.

I can ping and *IDN? my SGD2042X from Linux via telnet.
I can ping the device from within Wine and *IDN? via putty.

If I add the device to EasyWaveX however, it will just say it is unavailable"

I was able to confirm that the same setup works if I boot into Windows. I can connect my SDG to EasyWaveX through ethernet.

I don't exactly know how the network communication is working. Maybe I need some extra DLLs but I am at loss here.

There are no crashes or error messages. It just says unavailable.

Anyone here who was able to make the application run on Linux?

Also, is there a maybe an alternative tool that could replace EasyWaveX?

Edit:

Sometimes I get the following error:

Code: [Select]
006c:err:ole:start_rpcss Failed to start RpcSs service
Not always though. I will do some more research on this.
« Last Edit: May 14, 2021, 12:41:08 pm by szszoke »
 
The following users thanked this post: tautech, dibro, Aditya_Ubarhande

Offline voltsandjolts

  • Supporter
  • ****
  • Posts: 2462
  • Country: gb
Re: Siglent EasyWaveX on Linux with Wine
« Reply #1 on: May 10, 2021, 04:17:33 pm »
It's annoying that easywave doesn't run without a visa install, on either linux or windows, because you might just want to create an arb csv file for saving to a usb stick.

I wrote a simple gnu octave script (its like matlab) to create arb csv files but you need a mathematical description of the wave you want to create.
https://www.eevblog.com/forum/testgear/siglent-sdg1000-arbitrary-csv-file-format/msg1973726/#msg1973726
 
The following users thanked this post: szszoke

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #2 on: May 10, 2021, 04:23:06 pm »
I actually saw your project but in my case, I want to simulate bouncy button waveforms and that would be easier to just draw by hand.
 

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #3 on: May 10, 2021, 04:25:59 pm »
In the meantime I realized that a message that I previously ignored could be related to my issue.

Code: [Select]
fixme:service:I_ScRegisterDeviceNotification Notification filters are not yet implemented.
I ignored this message because it is related to watching for USB devices but now I am thinking what if the application doesn't even start to look for networked devices because the USB detection fails.
 

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #4 on: May 10, 2021, 04:38:58 pm »
Apparently there have been some improvements in USB handling for Wine, and some of the changes were released as part of Wine 6.8.

Source: https://www.phoronix.com/scan.php?page=news_item&px=Wine-Wineusb-Merged

It seems that there is an aur package for wine-staging that was just recently updated to 6.8 but I can't see it just yet, so there is probably some delay with the mirrors.

I will try it again in a while and see if I get different results with Wine 6.8.
 

Offline PKTKS

  • Super Contributor
  • ***
  • Posts: 1766
  • Country: br
Re: Siglent EasyWaveX on Linux with Wine
« Reply #5 on: May 10, 2021, 04:51:20 pm »
Hello!

Code: [Select]
006c:err:ole:start_rpcss Failed to start RpcSs service
Not always though. I will do some more research on this.


I would not blame USB specifically in this case w/this message.

From my trials and errors on WINE setups..

OLE problems are deeply buried into the MS registry keys..
Vast majority of these keys are unmanageable and become
a liability even among versions of their own crappy OS.

I would try some of those fancy registry tools to audit
what sort of "keys" are related to that error..

Once applications are hard coded with that crap..
they are doomed to bound specific registry definitions..

total nightmare that thing..

Paul
 

Offline tautech

  • Super Contributor
  • ***
  • Posts: 29524
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: Siglent EasyWaveX on Linux with Wine
« Reply #6 on: May 10, 2021, 10:45:02 pm »
With any of the Easy* SW that require NIVISA it's imperative NIVISA is installed before attempting to connect any instrument otherwise the OS can automatically assign a USB driver and it's never the correct one.

Attached is a little doc I prepared to assist should get you on the right track to ensure the USB driver is correct.
It's for EasyScope but the same principles apply and once the driver is correct and working with any of the Easy* SW it gives no further issues with any further Easy* SW installs.
Avid Rabid Hobbyist.
Some stuff seen @ Siglent HQ cannot be shared.
 

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #7 on: May 11, 2021, 08:00:43 am »
With any of the Easy* SW that require NIVISA it's imperative NIVISA is installed before attempting to connect any instrument otherwise the OS can automatically assign a USB driver and it's never the correct one.

Attached is a little doc I prepared to assist should get you on the right track to ensure the USB driver is correct.
It's for EasyScope but the same principles apply and once the driver is correct and working with any of the Easy* SW it gives no further issues with any further Easy* SW installs.

Thanks!

I am not using Windows here though, nor USB. Everything is connected via ethernet.

I did try to install the driver your guide mentioned via this command (there is no Device Manager in WINE AFAIK):

Code: [Select]
rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 ausbtmc.inf
Nothing changed.
 

Offline tautech

  • Super Contributor
  • ***
  • Posts: 29524
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: Siglent EasyWaveX on Linux with Wine
« Reply #8 on: May 11, 2021, 08:19:42 am »
With any of the Easy* SW that require NIVISA it's imperative NIVISA is installed before attempting to connect any instrument otherwise the OS can automatically assign a USB driver and it's never the correct one.

Attached is a little doc I prepared to assist should get you on the right track to ensure the USB driver is correct.
It's for EasyScope but the same principles apply and once the driver is correct and working with any of the Easy* SW it gives no further issues with any further Easy* SW installs.

Thanks!

I am not using Windows here though, nor USB. Everything is connected via ethernet.

I did try to install the driver your guide mentioned via this command (there is no Device Manager in WINE AFAIK):

Code: [Select]
rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 ausbtmc.inf
Nothing changed.
Yeah it's the USB driver.  :)
Dunno what to suggest for LAN other than the NIVISA LAN drivers are also required for Easy* SW to work.
Did you find a version of Runtime for Linux ? Maybe that can help.  :-//

Maybe LXI Tools will be an easier connectivity solution for you:
https://siglentna.com/application-note/lxi-tools/
Avid Rabid Hobbyist.
Some stuff seen @ Siglent HQ cannot be shared.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 28183
  • Country: nl
    • NCT Developments
Re: Siglent EasyWaveX on Linux with Wine
« Reply #9 on: May 11, 2021, 11:20:27 am »
I'd skip Wine and use a virtual machine with Windows. Both Virtual box and Vmware have modes where you can run applications in their own window as if they run on the host machine itself. Getting Windows applications to run on Wine is finicky at best; it seems every application needs specific fixes/support in Wine. Both NIVisa and EasyWavex are NOT listed as applications that work on Wine.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #10 on: May 11, 2021, 05:14:04 pm »
With any of the Easy* SW that require NIVISA it's imperative NIVISA is installed before attempting to connect any instrument otherwise the OS can automatically assign a USB driver and it's never the correct one.

Attached is a little doc I prepared to assist should get you on the right track to ensure the USB driver is correct.
It's for EasyScope but the same principles apply and once the driver is correct and working with any of the Easy* SW it gives no further issues with any further Easy* SW installs.

Thanks!

I am not using Windows here though, nor USB. Everything is connected via ethernet.

I did try to install the driver your guide mentioned via this command (there is no Device Manager in WINE AFAIK):

Code: [Select]
rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 ausbtmc.inf
Nothing changed.
Yeah it's the USB driver.  :)
Dunno what to suggest for LAN other than the NIVISA LAN drivers are also required for Easy* SW to work.
Did you find a version of Runtime for Linux ? Maybe that can help.  :-//

Maybe LXI Tools will be an easier connectivity solution for you:
https://siglentna.com/application-note/lxi-tools/

I will do some experimenting inside a Windows VM without installing any NI-Visa stuff.

I will just copy the DLLs and see if it works.

I don't know what LAN drivers might be required. Everything is done through TCP sockets.

LXI tools cannot replace EasyWaveX sadly.
 

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #11 on: May 11, 2021, 05:15:46 pm »
I'd skip Wine and use a virtual machine with Windows. Both Virtual box and Vmware have modes where you can run applications in their own window as if they run on the host machine itself. Getting Windows applications to run on Wine is finicky at best; it seems every application needs specific fixes/support in Wine. Both NIVisa and EasyWavex are NOT listed as applications that work on Wine.

Of course, that is an option but it is a hassle so I will try some more things before I go that route.
 

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #12 on: May 11, 2021, 08:43:01 pm »
I did some testing with a fresh Windows 10 VM.

I installed EasyWaveX and I copied two DLLs into the installation directory: VISA32.dll and NiViSv32.dll

I get the same behavior as I do in WINE.

This is actually good! Now I can take this VM over my Windows 10 installation and try to find the differences. My hope is that if I can make EasyWaveX work in a VM without running the NI-VISA installer and just coping files/registry keys then that might help getting it to work under Wine.
 

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #13 on: May 11, 2021, 09:13:59 pm »
I was able to get it working!

I randomly picked the 15.0 version of the NI VISA runtime from here: https://www.ni.com/sv-se/support/downloads/drivers/download.ni-visa.html#306106

I just went through the installer, I deselected every component but the Ethernet runtime and then started the installation process.

It did fail one step, the shared components, which I think contain the USB drivers, but I just pressed "Continue" and waited until the installer was done.
 
The following users thanked this post: tautech

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #14 on: May 11, 2021, 09:17:51 pm »
It is pretty late here and I have work tomorrow but in the upcoming days I will try to make a guide using a fresh Linux VM and post it here.
 

Offline tautech

  • Super Contributor
  • ***
  • Posts: 29524
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: Siglent EasyWaveX on Linux with Wine
« Reply #15 on: May 11, 2021, 10:17:16 pm »
Great, well done !  :clap:

Could I ask that you please document it step by step best you can for us to point others to that also want/need to use EasyWaveX in Linux ?
Avid Rabid Hobbyist.
Some stuff seen @ Siglent HQ cannot be shared.
 

Offline Whales

  • Super Contributor
  • ***
  • Posts: 2057
  • Country: au
    • Halestrom
Re: Siglent EasyWaveX on Linux with Wine
« Reply #16 on: May 11, 2021, 10:32:26 pm »
You got it working in the Win10 VM or on Linux+Wine?

N.B. if the software is trying to send any 'custom' packets over the network (ie anything other than TCP or UDP) then you need to grant special permissions to wine.  By default Windows lets programs craft custom packets and send them over any network but Linux does not.

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #17 on: May 12, 2021, 05:52:45 am »
Great, well done !  :clap:

Could I ask that you please document it step by step best you can for us to point others to that also want/need to use EasyWaveX in Linux ?

I will do some more testing but in the meantime here is a short version.

I'm writing from the phone, so there are no links. You will have to use a search engine. Step 5 might not be needed but I could not ping my devices from within CMD.exe unless I had that permission set up.

You should also know that I tried to do this on my "dirty" Wine prefix where I had copies DLLs earlier so that might change something for others.

1. Create a 32-bit wine prefix
2. Set the Windows version to Windows 10
3. Download and install the Visual C++ 2015 redistributable package from Microsoft - alternately you can try winetricks but that didn't work for me
4. Install NI VISA Runtime V15.0 - deselect every component but the Ethernet runtime. When something fails just press continue
5. sudo setcap cap_net_raw+epi /usr/bin/wine-preloader
6. Install EasyWaveX via the installer

Originally I had the Windows version set to Windows 7 and that resulted in some issues with the EasyWaveX window. It was not reacting to input except for the menu bar.

I found two ways to solve this:

1. Set the Windows version to Windows 10
2. Emulate a virtual desktop
 
The following users thanked this post: tautech, Whales

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #18 on: May 12, 2021, 05:54:42 am »
You got it working in the Win10 VM or on Linux+Wine?

N.B. if the software is trying to send any 'custom' packets over the network (ie anything other than TCP or UDP) then you need to grant special permissions to wine.  By default Windows lets programs craft custom packets and send them over any network but Linux does not.

Linux + Wine.

About the permissions: thanks, I am aware of that and I had it set up during my testing because originally I thought that was the reason why EasyWaveX was not registering the devices.
« Last Edit: May 12, 2021, 06:04:13 am by szszoke »
 

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: Siglent EasyWaveX on Linux with Wine
« Reply #19 on: May 14, 2021, 10:25:15 am »
Great, well done !  :clap:

Could I ask that you please document it step by step best you can for us to point others to that also want/need to use EasyWaveX in Linux ?

I updated the first post in this thread with a guide.

Many of the steps I took originally were not requited after all so I left them out.

Please let me know if guide is working for you.
 

Offline tautech

  • Super Contributor
  • ***
  • Posts: 29524
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: [Guide] Install Siglent EasyWaveX on Linux with Wine
« Reply #20 on: May 14, 2021, 11:41:53 am »
Nice work and forwarded to Siglent for guidance to build an App Note for Easy* products use on Linux.
Have you checked if EasyScopeX will just install and work straight off as it does/should in Windows once NIVISA components are installed ?
Avid Rabid Hobbyist.
Some stuff seen @ Siglent HQ cannot be shared.
 

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: [Guide] Install Siglent EasyWaveX on Linux with Wine
« Reply #21 on: May 14, 2021, 11:44:54 am »
I haven't checked other Easy* apps yet but I was planning to do it today actually.

EasyWaveX is written in C++ and Qt so that should be the easiest to actually port over to Linux. The only issue that I can think of is NI-VISA. I'm just wondering if the whole thing could be dropped and if EasyWaveX could just use regular TCP sockets instead.
 

Offline tautech

  • Super Contributor
  • ***
  • Posts: 29524
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: [Guide] Install Siglent EasyWaveX on Linux with Wine
« Reply #22 on: May 14, 2021, 11:58:55 am »
Chatted with a beta tester today whom is a Linux guru and the mention of what you'd done with Wine and asking him to check EasySpectrum and EasyPower functionality was likened to kicking him in the gonads.  :-DD
However he was right that everything is going to webserver but currently EasyWaveX has a little feature set of its own for the current range of SDG's but SDG7000 might change that however it's likely to be out of the hobbyists budget.

Above my pay grade what you've done but watching with great interest as a Windows user.
Avid Rabid Hobbyist.
Some stuff seen @ Siglent HQ cannot be shared.
 

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: [Guide] Install Siglent EasyWaveX on Linux with Wine
« Reply #23 on: May 14, 2021, 12:05:30 pm »
I had to install the .NET Framework 3.5 SP1 and mfc420 and then it worked.

I installed it via winetricks:
Code: [Select]
winetricks dotnet35sp1
« Last Edit: May 14, 2021, 12:07:27 pm by szszoke »
 

Offline szszokeTopic starter

  • Regular Contributor
  • *
  • Posts: 92
  • Country: se
Re: [Guide] Install Siglent EasyWaveX on Linux with Wine
« Reply #24 on: May 14, 2021, 12:07:48 pm »
EasyPower also seems to work.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf