Page 1 of 1

Instructions: The Quick Easy Cumulus MX Linux Installation and Running as a Service

Posted: Fri 18 Dec 2020 9:16 pm
by galfert
If you have a Raspberry Pi then by all means you can follow the Raspberry Pi image method (this isn't that). There is also another method that uses crontab instead of this method which uses systemd to run Cumulus MX as a service. And actually there is yet another method which uses an init.d script which is different. With Linux there is always more than one way.

If you use your Pi for other things or you already have a Linux system that you use for other things then you may be interested in following this simple, quick and easy installation of Cumulus MX on pretty much any popular Linux distribution.

Maybe these instructions are redundant but In reading the Wiki there is too much noise and talk about Raspberry and even the section about running as a service that is totally missing. So I've put together the following quick instructions. This assumes you already have a running Linux system. This will allow you to run Cumulus MX (AutoStart as a service) when the computer boots. You don't even need to login. If you don't have a running Linux system, then fear not. There are many ways and options to get a Linux system running and it really isn't that hard. If you need help start a new thread and ask for hardware/software advice.

TIP: Set your Linux computer to auto power-up on AC in BIOS in case of power failure. This way it will automatically boot when AC power is restored.

How to install Cumulus MX on a Linux system and configure as an auto-starting service

1> Start with the instructions for Mono from their website linked below, but do not follow all of its install instructions. Only do the section for adding the Mono repository to your system (which is just the first section).
Follow the adding Mono repository instructions from the Mono project site:
https://www.mono-project.com/download/s ... wnload-lin
Choose your Linux distro to see the pertinent commands to use to add the Mono repository. For Linux Mint use Ubuntu instructions unless you are running Mint LMDE (then use Debian).
(Raspberry Pi adding of Mono repo instructions are also on the mono-project site)

2>After adding repo commands from #1 (varies by Linux distro)...
Do not continue to follow the install instructions on the mono-project website (as they want you to do a devel install for software development), instead install with the following command:

Code: Select all

sudo apt install mono-complete
sudo apt autoremove
* the autoremove does some cleanup of the full mono-complete in case any components are not needed for your system.

3> Download the CumulusMX install zipfile to the Downloads folder.
Latest release version available here:
https://cumuluswiki.org/a/Software#Current_Release

4> Unzip and then move the unzipped CumulusMX folder to reside in /home/<username>/CumulusMX
The following command only moves the unzipped file. You need to unzip first.

Code: Select all

mv ~/Downloads/CumulusMX ~
5> Edit the file cumulusmx.service located in ~/CumulusMX/MXutils/linux/ and change the ExecStart path line to have *your* install directory -d:/home/<username>/CumulusMX
Where <username> is the login username that you are using...for example /home/pi/CumulusMX (that is where you copied the unzipped CumulusMX folder in the previous step)

6> Copy the newly edited cumulusmx.service file to /etc/systemd/system/ with the following command:

Code: Select all

sudo cp ~/CumulusMX/MXutils/linux/cumulusmx.service /etc/systemd/system/
7> Enable cumulusmx.service to autostart with command:

Code: Select all

sudo systemctl enable cumulusmx
8> Reboot or just start the Cumulus MX service:

Code: Select all

sudo systemctl start cumulusmx
9> CumulusMX should now be accessible from:
http://<ServerIP>:8998 (from any computer on your network, for example http://192.168.1.20:8998)
http://localhost:8998 (on system running Cumulus MX only)
http://<hostname>:8998 (if you know the hostname of the system for example: http://raspberrypi:8998)
* It might be a good idea to create a DHCP IP address reservation on your router if hostname resolution doesn't work on your network

10> Configure Cumulus MX for your station by going to the menu option Settings / Station Settings
Cumulus Station Settings.jpg

11> After making changes to the Station Settings and selecting your station type and selecting your units, restart Cumulus MX service:

Code: Select all

sudo systemctl restart cumulusmx
12> You should now be getting data from your station in Cumulus MX.

Useful commands:
sudo systemctl stop cumulusmx
sudo systemctl start cumulusmx
sudo systemctl restart cumulusmx
sudo systemctl disable cumulusmx (to disable auto-start service)
sudo systemctl enable cumulusmx (to enable auto-start service)
systemctl status cumulusmx (see status of the Cumulus MX service)

Upgrading to new version or switching from crontab or init.d to systemd (run as a service)
- To upgrade to newer Cumulus MX version see two posts down from this.
viewtopic.php?p=148851#p148851
- You can change your Cumulus MX from using crontab or init.d over to systemd by first stopping Cumulus and disabling crontab (or init.d) and then following the steps above beginning with step #5

Security Warning: Do not forward port 8998 to the Internet on your router as this will make your entire station configuration accessible to be messed with by anyone on the Internet. If you want to have a public web accessible interface then that requires additional setup.

Re: Cumulus MX Instructions: The Quick Cumulus MX Linux Installation and Running as a Service

Posted: Fri 18 Dec 2020 10:13 pm
by galfert
Troubleshooting

If the above instructions do not work you may want to troubleshoot by running Cumulus MX from the interactive shell prompt.
Or you can also look at the following file which will show you the console output of the running service:
~\CumulusMX\MXdiags\ServiceConsoleLog.txt

To manually start Cumulus MX first be sure that it isn't running as a service. It probably isn't it you are not able to launch the Cumulus MX web interface but can't hurt to stop the service first.

Code: Select all

sudo systemctl stop cumulusmx
Then try and start Cumulus MX manually:

Code: Select all

cd ~/CumulusMX
sudo mono CumulusMX.exe
If it is working correctly you should see something similar to this (then you can open browser to http://<whatever-IP-it-is>:8998 as it mentions):

Code: Select all

$ sudo mono CumulusMX.exe
Cumulus MX v.3.9.2 build 3097
Working Dir: /home/pi/CumulusMX/
Today.ini = data/today.ini
Last update=2020-12-18T17:05:00
Connected to station
Cumulus running at: http://*:8998/
  (Replace * with any IP address on this machine, or localhost)
  Open the admin interface by entering this URL in a browser.
Normal running
12/18/2020 5:10:33 PM
Type Ctrl-C to terminate
If you don't see this correctly working output as above, then you'll likely see information that will be important to further troubleshoot.

Once you are done troubleshooting hit Ctrl-C to quit the manual start as it is recommended to enable the autostart service of Cumulus MX using the systemctl (systemd) method mentioned in the first post. If your Cumulus MX runs manually but does not autostart with systemd as a service then you'll likely need to check that part of your install. Usually people forget to change the path or set it properly in the cumulusmx.service file that you should have copied to /etc/systemd/system directory.

If you still need additional help then start a new thread. Let's save this thread for discussing the merits of these installation instructions which might need to be updated in the future as sometimes software requirements change.

Re: Cumulus MX Instructions: The Quick Cumulus MX Linux Installation and Running as a Service

Posted: Fri 18 Dec 2020 10:47 pm
by galfert
How to upgrade your Cumulus MX to a newer version
  1. Stop Cumulus MX.

    Code: Select all

    sudo systemctl stop cumulusmx
    
  2. Make sure you have a backup copy of the CumulusMX folder.
  3. Copy the entire contents of the zip file to your CumulusMX folder.
  4. Start Cumulus MX again.

    Code: Select all

    sudo systemctl start cumulusmx
    
This is the method recommended by Mark:
viewtopic.php?p=148477#p148477

Re: Cumulus MX Instructions: The Quick Cumulus MX Linux Installation and Running as a Service

Posted: Sat 19 Dec 2020 4:00 am
by galfert
For an Alternative method that uses Docker to run Mono see this other post:
viewtopic.php?p=148956#p148956
* I wrote the instructions for this other method using Docker for Synology NAS that is not able to run Mono directly. But you can easily modify it to be any Linux system. Just install Docker and make any appropriate directory modifications.

Re: Instructions: The Quick Easy Cumulus MX Linux Installation and Running as a Service

Posted: Fri 08 Jan 2021 4:26 pm
by Nottub
How to upgrade your Cumulus MX to a newer version
Stop Cumulus MX.

'sudo systemctl stop cumulusmx'

Make sure you have a backup copy of the CumulusMX folder.
Copy the entire contents of the zip file to your CumulusMX folder.

Start Cumulus MX again.

'sudo systemctl start cumulusmx'
I presume I'd still need copy back the 'Cumulus.ini', all files in the 'Data' folder and any html template files that I've changed?

Thanks

Nottub

Re: Instructions: The Quick Easy Cumulus MX Linux Installation and Running as a Service

Posted: Fri 08 Jan 2021 10:55 pm
by radilly
Nottub wrote: Fri 08 Jan 2021 4:26 pm I presume I'd still need copy back the 'Cumulus.ini', all files in the 'Data' folder and any html template files that I've changed?
Check a distro, but I think you will find that Cumulus.ini isn't included - it's generated when you run CMX. Template mods, however, will have to be handled.

---

FYI - I'm tinkering with a script to help identify what might get overlaid if you just unzip over your install. viewtopic.php?f=40&t=18813

Re: Instructions: The Quick Easy Cumulus MX Linux Installation and Running as a Service

Posted: Sat 09 Jan 2021 12:18 pm
by mcrossley
The distro zips do not contain anything that will overwrite your data.

If you have modified standard web files etc rather than creating your own versions then they will be overwritten if you extract all files. Make a backup copy of them first then compare your changes against the new versions (if they have changed)

Re: Cumulus MX Instructions: The Quick Cumulus MX Linux Installation and Running as a Service

Posted: Fri 16 Apr 2021 6:59 pm
by radilly
galfert wrote: Fri 18 Dec 2020 10:47 pm How to upgrade your Cumulus MX to a newer version
viewtopic.php?p=148477#p148477
Is this still applicable / recommended for MX v3.10+?

https://cumuluswiki.org/a/Updating_MX_to_new_version (still) points here. https://cumuluswiki.org/a/New_Default_W ... nformation discusses the templates in some depth (since that seems to have been the driver of much of the change). The page does say "The new template pages only have to be uploaded once, they then populate their data from a single JSON data file that Cumulus uploads at each update." I'm not quite clear on whether that has any bearing on the Realtime feature, i.e. realtime.txt. There were 3 different cycles (in MX 3.9.7 b3107) for "external programs."

Transitioning to MX v3.10+ seems like a good time to try to clean out accumulated cruft, while keeping the historical data of course. If this is all covered somewhere I'd very much appreciate a pointer to it.

Thanks-

Re: Instructions: The Quick Easy Cumulus MX Linux Installation and Running as a Service

Posted: Thu 10 Mar 2022 11:33 pm
by f4phlyer
While rebuilding my rPi compute module 4 with Bullseye 64 bit I've encountered a problem on "reboot". I've encountered a problem that I can't find a solution to.

After reboot I check "sudo systemctl status cumulusmx" and MX starts up but at the end of the report:
● cumulusmx.service - CumulusMX service
Loaded: loaded (/etc/systemd/system/cumulusmx.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-03-10 17:28:30 CST; 42s ago
Docs: https://cumuluswiki.org/a/Main_Page
Process: 381 ExecStart=/usr/bin/mono-service -d:/home/pi/CumulusMX CumulusMX.exe -service (code=exited, status=0/SUCCESS)
Main PID: 382 (mono)
Tasks: 11 (limit: 8987)
CPU: 5.568s
CGroup: /system.slice/cumulusmx.service
└─382 /usr/bin/mono /usr/lib/mono/4.5/mono-service.exe -d:/home/pi/CumulusMX CumulusMX.exe -service

Mar 10 17:28:29 rPi-computemod-4 systemd[1]: Starting CumulusMX service...
Mar 10 17:28:30 rPi-computemod-4 systemd[1]: Started CumulusMX service.
Mar 10 17:28:36 rPi-computemod-4 mono[382]: CumulusMX.exe: Object reference not set to an instance of an object
When I ""sudo systemctl reboot cumulusmx" everything is fine.

Re: Instructions: The Quick Easy Cumulus MX Linux Installation and Running as a Service

Posted: Thu 21 Apr 2022 11:51 pm
by ConligWX
galfert wrote: Fri 18 Dec 2020 9:16 pm If you have a Raspberry Pi then by all means you can follow the Raspberry Pi image method (this isn't that). There is also another method that uses crontab instead of this method which uses systemd to run Cumulus MX as a service. And actually there is yet another method which uses an init.d script which is different. With Linux there is always more than one way.
This info should come in nice and handy for me over the weekend, I'm installing a new install of Ubuntu 22.04 LTS onto a new hard disk for the CumulusMX server (Intel NUC). I'm still running init.d script from what I remember, so moving the CMX folder to a new server and just setup a new service should be all I need to get is running again. - :lol: famous last words. no doubt mono will hold the whole process up.....

Re: Instructions: The Quick Easy Cumulus MX Linux Installation and Running as a Service

Posted: Fri 22 Apr 2022 10:03 pm
by Cortmalaw
f4phlyer wrote: Thu 10 Mar 2022 11:33 pm After reboot I check "sudo systemctl status cumulusmx" and MX starts up but at the end of the report:

When I ""sudo systemctl reboot cumulusmx" everything is fine.
I'm not sure you've got these commands right (or maybe just not pasted them properly here)

sudo systemctl status XXX doesn't start or stop the process - it just tells you whether (or not) it is presently already running.

sudo systemctl reboot XXX isn't a valid command. Maybe you meant sudo systemctl restart XXX ? (this does a 'stop' immediately followed by a 'start')

Valid commands are 'start', 'status', 'stop' and 'restart'. Also 'enable' and 'disable' which cotrol whether (or not) the process is started when the machine boots

Re: Instructions: The Quick Easy Cumulus MX Linux Installation and Running as a Service

Posted: Sat 23 Apr 2022 9:08 pm
by f4phlyer
Cortmalaw wrote: Fri 22 Apr 2022 10:03 pm
f4phlyer wrote: Thu 10 Mar 2022 11:33 pm After reboot I check "sudo systemctl status cumulusmx" and MX starts up but at the end of the report:

When I ""sudo systemctl reboot cumulusmx" everything is fine.
I'm not sure you've got these commands right (or maybe just not pasted them properly here)

sudo systemctl status XXX doesn't start or stop the process - it just tells you whether (or not) it is presently already running.

sudo systemctl reboot XXX isn't a valid command. Maybe you meant sudo systemctl restart XXX ? (this does a 'stop' immediately followed by a 'start')

Valid commands are 'start', 'status', 'stop' and 'restart'. Also 'enable' and 'disable' which cotrol whether (or not) the process is started when the machine boots
You are absolutely correct. I should have done a better job of “proof reading”.

What was happening was: the status call reported the issue and after restarting using the systemctl restart it ran fine.

Error installing on openSuse

Posted: Fri 24 Feb 2023 9:45 pm
by steveedmonds
Just joined this forum, after the wettest summer on record I got my act together and replaced the supercap in my vantage vue and remoted the connection to the backup battery. Now setting up to connect with CumulusMX. Couldn't find my issue searching, now resolved and hopefully the below may help someone else.
Installation on my desktop was trouble free where I have a static IP.
On my laptop using DHCP on a wifi or wired connection I was getting the error below at trying to run initial setup after installing the files;
System.Net.Sockets.SocketException (0x80004005): Could not resolve host 'localhost.localdomain'

The solution was to edit /etc/hostname and add my hostname "MacbookP" (macbook now running openSuse) and edit /etc/hosts and add it to the line with 127.0.0.1 as below.
127.0.0.1 localhost MacbookP