No. At least, I’ve had no luck running any of the TrakHound components on Linux.
In a previous post I mentioned that I could not try the TrakHound community software, since I do not have a Windows machine. Afterwards I wondered how true that was. After all, Wine does a decent job running most Windows software, and .NET support on Linux has gotten much better in recent years. So I thought it was worth a shot.
What is TrakHound?
In its own words, TrakHound is a “startup company focused on delivering IIoT solutions to the Advanced Manufacturing industry.” Their products include several components designed to provide a complete machine data collection, storage, and analytics system. This includes TrakHound Community, an open-source machine data collection system based on MTConnect.
TrakHound Community is a .NET application written in C#. Though .NET has traditionally been a Windows-only platform, there were several possibilities for running it on Linux.
The Mono platform is an open-source implementation of the .NET framework. Using Mono, it is possible to build .NET assemblies that run in a Linux environment. However, some parts of the .NET framework are Microsoft-specific. TrakHound Community uses a technology called WPF (Windows Presentation Foundation), and Mono’s page on WPF states:
At this point, no group in the Mono project has plans to implement Windows Presentation Foundation APIs as part of the project.
We do not have any plans because the project is too large and there has not been any serious interest from the community to make this effort move forward.
Given that the page has not been significantly changed since 2014, it seems safe to say that Mono will not support WPF, so we will not be able to use it to build the TrakHound Community project.
In recent years, Microsoft has recently embraced the open-source community, releasing .NET Core. No WPF support though.
Wine is not an emulator, but it is pretty good at running Windows programs on Linux. So I installed Wine, and used it to install the .NET 4.5 framework on my Linux machine.
At first things looked promising. The Windows installer I downloaded from TrakHound’s website ran to completion. When I launched the application, though, it immediately crashed, complaining about unimplemented functions. I tried installing older versions of the framework, and other commonly-used libraries, with the same result.
And with that, I’m out of ideas.
Does it matter?
Though it would be nice to have an MTConnect monitoring client that runs on my Linux machine, I’ll admit that’s probably a rare use-case. Most people will probably want to view data from their Windows laptop or desktop computers, or from their smartphones (for which mobile apps are available).
On the server-side, though, Linux is much more commonplace. It would be nice to be able to launch their Data Collection software, to push data to their cloud service, or to run their analytics software from a local server.
I tested this installation out of personal interest: since TrakHound’s installation instructions did not mention Linux, I figured this was not likely to succeed. It may yet be possible to make the software run. Maybe I missed a Wine dependency needed to get the software running. Worst-case, since the software is open-source, I might be able to strip out the Windows-specific bits and re-factor the server portion as a console application that runs on .NET Core (which I’ve been looking for an excuse to work with). And of course, it’s always possible that someone else has already done this, and will send me a step-by-step guide.