<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.cumuluswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cortmalaw</id>
	<title>Cumulus Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.cumuluswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cortmalaw"/>
	<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/a/Special:Contributions/Cortmalaw"/>
	<updated>2026-05-05T06:08:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Updating_MX_to_new_version&amp;diff=9704</id>
		<title>Updating MX to new version</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Updating_MX_to_new_version&amp;diff=9704"/>
		<updated>2021-08-06T23:52:39Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Latest release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Who this article is for=&lt;br /&gt;
&lt;br /&gt;
Please be aware that if you want to move from Cumulus 1 to MX, you should read [[Migrating_from_Cumulus_1_to_MX]] article instead.&lt;br /&gt;
&lt;br /&gt;
This article is for those who already use MX, and so are comfortable with basic MX installation and running.&lt;br /&gt;
&lt;br /&gt;
=Who is not intended reader=&lt;br /&gt;
&lt;br /&gt;
Cumulus MX has been updated so frequently in 2020, that you may be used to upgrading to a new build, and for you this article is not useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Where to download a release distribution=&lt;br /&gt;
&lt;br /&gt;
==Latest release==&lt;br /&gt;
&lt;br /&gt;
Download release distribution zip from  [[Software|the Software article in this Wiki]] for latest version.&lt;br /&gt;
&lt;br /&gt;
Be aware that the developer needs to remember to update this link each time there is a new release.&lt;br /&gt;
&lt;br /&gt;
An image that contains a &#039;&#039;&#039;Raspberry Pi lite operating system&#039;&#039;&#039; and a recent CumulusMX release already included, can be downloaded from the same wiki article. Not every CumulusMX release is provided as a Raspberry Pi image, so you may need to perform an update to get the latest release. The Raspberry Pi image places CumulusMX in /opt/CumulusMX.&lt;br /&gt;
&lt;br /&gt;
==Any release developed by Mark Crossley==&lt;br /&gt;
&lt;br /&gt;
Download release distribution zip from https://github.com/cumulusmx/CumulusMX/releases for earlier versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introduction to upgrading MX=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: LemonChiffon;padding:5px; margin:2px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Crystal Clear info.png|40px]] This document is &#039;Work In Progress&#039; so content may not be complete or accurate!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Cumulus MX]]&lt;br /&gt;
&lt;br /&gt;
You can download and unzip in advance, but cannot replace existing files while they are being used, so how you stop MX is in next two sub-sections.&lt;br /&gt;
&lt;br /&gt;
My preference, after download, and unzip into a holding area, is to copy (it would be file transfer if you download on another device) over my existing installation all files except:&lt;br /&gt;
*CumulusMX.exe&lt;br /&gt;
*CumulusMX.exe.config&lt;br /&gt;
while MX is still running. I then stop MX for minimal time needed to replace just those two files before I restart MX.  That way I minimise downtime, especially useful for a patch release when few files have changed, as it takes some time to replace all the files in the installation.&lt;br /&gt;
&lt;br /&gt;
For simplicity, in guidance below, MX is stopped before any files are replaced.&lt;br /&gt;
&lt;br /&gt;
==Upgrading on a Raspberry Pi (RPi) computer by commands from a Microsoft Windows computer (PC)==&lt;br /&gt;
&lt;br /&gt;
I recommend you download WinSCP (this and PuTTy share some settings). This will allow you to connect your PC to your rPi and copy files back and forth.  You can use it to copy the MX distribution, you download and unzip on your PC, onto the RPi. You can also use it to take a back-up of your RPI files onto your PC, and to pick certain files off your RPi. e.g. copy log files  from [[MXdiags folder]] to your PC to read diagnostics etc.&lt;br /&gt;
&lt;br /&gt;
You can download PuTTy (shares some settings with WinSCP) to enable you to open a terminal session and send commands to your RPi computer.&lt;br /&gt;
&lt;br /&gt;
If you have Cumulus MX setup to run as a service then you will need to do one of these, should you wish to add debugging when the upgraded MX begins...&lt;br /&gt;
# Edit the CumulusMX service file (see [[MX_on_Linux#Running_as_a_service]]) to add the -debug parameter (do this if always want debugging on, not usually needed)&lt;br /&gt;
# Just set it from Program Settings | Logging Options (easiest for turning debug on when you need it and off when you don&#039;t need it)&lt;br /&gt;
# Edit the Cumulus.ini file and enable it in there (no longer recommended)&lt;br /&gt;
&lt;br /&gt;
==Upgrading if you run MX as a service==&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to stop the service, before you do the upgrade.&lt;br /&gt;
&lt;br /&gt;
For  a Linux Operating system: &amp;lt;code&amp;gt;sudo systemctl stop cumulusmx&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For Microsoft Windows Operating System:  (a contributor who uses Microsoft Windows needs to modify this page)&lt;br /&gt;
&lt;br /&gt;
==Upgrading if you run MX interactively==&lt;br /&gt;
&lt;br /&gt;
If you do NOT run as a service, you will want to use &#039;&#039;&#039;Control and C&#039;&#039;&#039; in the terminal (or command) window running MX to make the software close tidily. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updating to the next MX release if you have not upgraded before ==&lt;br /&gt;
&lt;br /&gt;
The simplest upgrade is from the immediate preceding build, and the steps required are summarised as follows:&lt;br /&gt;
# Download the release distribution zip for the next build (see later for where from)&lt;br /&gt;
#* My advice is to have a separate download location away from the location where you are installing/running the software; it can retain older releases to make regression simple if the new release proves to have a bug.&lt;br /&gt;
# Use &#039;&#039;&#039;Control-C&#039;&#039;&#039; to stop Cumulus MX (see later if running as a service)&lt;br /&gt;
# Take a backup of your complete existing MX installation (as it is not running, no files will be locked)&lt;br /&gt;
# Unzip the new distribution, overwriting the previous installation (the release announcement might ask you to delete obsolete files)&lt;br /&gt;
# Run any one-off batch scripts needed to prepare for upgrade&lt;br /&gt;
#* These might be needed if log files in the new release contain fields that were not in earlier release &lt;br /&gt;
#* These might be needed if you use optional database functionality (see later for examples)&lt;br /&gt;
# Do any actions that require you to use [[MX Administrative Interface|Admin Interface]] to change settings&lt;br /&gt;
# Do any one-off actions in relation to any files provided by MX for you to run a web site with the default pages&lt;br /&gt;
# Restart your Cumulus MX (consider running with &#039;&#039;&#039;-debug&#039;&#039;&#039; parameter if you are not sure the new build is bug free)&lt;br /&gt;
&lt;br /&gt;
The remainder of this article explains all options for updating, and is thus less simple than above.&lt;br /&gt;
&lt;br /&gt;
==Installer Option==&lt;br /&gt;
&lt;br /&gt;
[https://cumulus.hosiene.co.uk/memberlist.php?mode=viewprofile&amp;amp;u=9016 HansR] on support forum has developed an multi-platform installer, see [https://cumulus.hosiene.co.uk/viewtopic.php?f=44&amp;amp;t=18916 Multiplatform Installer for CumulusMX] which makes life a lot easier if you do not wish to dive into the (file level contents) internals of CumulusMX.&lt;br /&gt;
&lt;br /&gt;
#Copy the &#039;&#039;&#039;InstallCMX.exe&#039;&#039;&#039; to any directory you want, on the drive where you wish to install (or have previously installed) MX. &lt;br /&gt;
#Copy the CumulusMX release distribution zip(s) to that same directory, if you have not already done so. You may have more than one distribution in the same directory.&lt;br /&gt;
#*The install procedure gives you the possibility to select, or define, the Archive to install, and the location where to install.&lt;br /&gt;
#Stop CumulusMX&lt;br /&gt;
#Run &#039;&#039;&#039;InstallCMX&#039;&#039;&#039; and confirm / fill in (on the console) where you wish to install (or update) CMX. The default for Windows is C:\CumulusMX\ and for Linux it is : /home/CumulusMX. The Installation directory can be modified.&lt;br /&gt;
#* You can give the &#039;&#039;&#039;build number&#039;&#039;&#039;, for the release distribution zip, to install as command line &#039;&#039;&#039;argument&#039;&#039;&#039;.&lt;br /&gt;
#Start CumulusMX&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; On Windows you run the installer as any other command line executable and it is best to open a command window in which you start the installer. On Linux you run it on the command line as &amp;quot;mono ./InstallCMX.exe&amp;quot;, the mono command can be omitted if mono is already active (e.g. if you run CumulusMX as a service, and stop it, mono remains active).&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; In an existing installation with modified files, make sure those are in a different, either filename or folder (a safe place). If they have the same name as files in the distribution, they will be overwritten.&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; Check in the &amp;lt;code&amp;gt;webfiles&amp;lt;/code&amp;gt; directory to see if any files there have been modified, since your last upload to your web server. If so, move those new files to the website.&lt;br /&gt;
&lt;br /&gt;
After the installation, there is a &#039;&#039;&#039;log file&#039;&#039;&#039;. Check the log file to see everything has gone well.&lt;br /&gt;
There is an &#039;&#039;&#039;ini file&#039;&#039;&#039; where you can control:&lt;br /&gt;
* NormalMessageToConsole=true or (default) NormalMessageToConsole=false &lt;br /&gt;
* TraceInfoLevel=Warning (out of: Error, Warning, Info, Verbose, None)&lt;br /&gt;
&lt;br /&gt;
Any reactions (thank you, issues and questions) please post in the [https://cumulus.hosiene.co.uk/viewtopic.php?f=44&amp;amp;t=18916 download thread of the installer].&lt;br /&gt;
&lt;br /&gt;
Modifications and additions on user request can be discussed (e.g. think about automated start/stop, upload of webfiles to the directory etc....), use the talk for this page.&lt;br /&gt;
&lt;br /&gt;
==Upgrading if you are running MX on a Linux computer==&lt;br /&gt;
&lt;br /&gt;
You might want to read galfert&#039;s post on the support forum [https://cumulus.hosiene.co.uk/viewtopic.php?p=148851#p148851 here] for the relevant Linux instructions in a concise format.&lt;br /&gt;
&lt;br /&gt;
If you want more detailed information, on any Linux (including Raspberry Pi operating system) aspects of the upgrade instructions on this page, see [[MX on Linux]] page.&lt;br /&gt;
&lt;br /&gt;
== Updating if you use the start/stop management script == &lt;br /&gt;
&lt;br /&gt;
This section contributed by &#039;&#039;Jank&#039;&#039; on support forum.  Note the version on the forum might have been updated from the original included here.&lt;br /&gt;
&lt;br /&gt;
1. look on [[Software|Software download page]], find the link to latest version, and fill out the &#039;...&#039; below appropriately as you run these 2 commands on your device where you do downloads: &lt;br /&gt;
&amp;lt;pre&amp;gt;cd /tmp&lt;br /&gt;
wget https://github.com/cumulusmx/CumulusMX/ ... .zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Once that download is complete, start cumulusmx.sh with option -u&lt;br /&gt;
&amp;lt;pre&amp;gt;/home/pi/CumulusMX/cumulusmx.sh -u&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.When asked for the zip file, enter &lt;br /&gt;
&amp;lt;pre&amp;gt;/tmp/CumulusMXDist&amp;lt;/pre&amp;gt; and hit the TAB Button&lt;br /&gt;
&lt;br /&gt;
4.Choose the zip file with the CumulusMX upgrade and hit return.&lt;br /&gt;
&lt;br /&gt;
5. Follow the on screen instructions&lt;br /&gt;
&lt;br /&gt;
6. With each update component .....you can choose: [y]es, [n]o, [A]ll, [N]one, [r]ename&lt;br /&gt;
&lt;br /&gt;
I would recommend select &#039;&#039;&#039;A&#039;&#039;&#039; as that will simply replace all files without further action.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CumulusMX will be restarted after upgrade completes.&lt;br /&gt;
&lt;br /&gt;
You can check if the upgrade was successful by using option -s:&lt;br /&gt;
&amp;lt;pre&amp;gt; /home/pi/CumulusMX/cumulusmx.sh -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Considerations that determine when to upgrade=&lt;br /&gt;
&lt;br /&gt;
Cumulus MX will nag you, in various places, to make you aware if you are not running the latest build. Some people will choose to upgrade as soon after a new release as they can. However, each upgrade does involve a period when MX is not running, and that causes some loss of data:&lt;br /&gt;
*for some weather station types readings taken every minute, or more frequently, are replaced by whatever period you station data logger records at; &lt;br /&gt;
*for other stations, without their own logging, all data is lost for the period when MX is not running.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other, more cautious, people (like the present writer) will not upgrade each time a new release becomes available (and there are a lot of new releases in 2020), here are some of the reasons:&lt;br /&gt;
* you will see in the Cumulus Support Forum that many builds have bugs, and so you realise that it is better to stick with your fully working release, than install one with bugs;&lt;br /&gt;
* you may wish to avoid the loss of data mentioned above, by minimising the number of times that you stop MX;&lt;br /&gt;
* you may run MX on a computer that you rarely visit, perhaps even in a remote location not often visited, so you prefer to leave it untouched, rather than risk possibility of being unable to restart remotely;&lt;br /&gt;
* you may just have more important ways to use your time than updating your MX software, and some new builds might not give you any benefits that make it worthwhile to change your priorities.&lt;br /&gt;
&lt;br /&gt;
It is perfectly possible to &#039;&#039;&#039;upgrade from rather old versions of MX, to the latest&#039;&#039;&#039;, skipping intermediate versions, &#039;&#039;&#039;but there are some key versions that you should not skip over&#039;&#039;&#039;. This page, in subsequent sections, includes suggestions for which releases to install (and get running) before moving onto newer releases. This will be especially useful for those people who do not immediately upgrade to new releases, as per above suggestions. &lt;br /&gt;
&lt;br /&gt;
===Advice about skipping versions===&lt;br /&gt;
&lt;br /&gt;
Please see [[Updating_MX_to_new_version#Updating_from_a_very_old_version]] sub-section later on this page (and preceding sub-sections where relevant)&lt;br /&gt;
&lt;br /&gt;
The important point to make here is that when you do an upgrade, you should copy in &#039;&#039;&#039;ALL&#039;&#039;&#039; files from the release distribution you want to run next. This is because there are dependencies between files within a distribution, so missing out any particular file may stop other files from working. However, if you are skipping versions, read the in-between release announcements to see if there are any one-off actions.&lt;br /&gt;
&lt;br /&gt;
= What to read (and when) before upgrading =&lt;br /&gt;
&lt;br /&gt;
== Upgrading from immediately preceding build ==&lt;br /&gt;
&lt;br /&gt;
=== The release announcement ===&lt;br /&gt;
&lt;br /&gt;
The release announcement is found in [https://cumulus.hosiene.co.uk/viewtopic.php?f=40&amp;amp;t=17887 Cumulus MX Announcements and Download - PLEASE READ FIRST] topic of the support forum.&lt;br /&gt;
&lt;br /&gt;
*Generally, a release announcement WILL contain&lt;br /&gt;
*#An overall purpose for that particular release (e.g. fixing bugs or adding functionality)&lt;br /&gt;
*#Details of what functionality has been added&lt;br /&gt;
*#Details of what bugs have been fixed, or where the processing has been improved&lt;br /&gt;
*# (For older releases only) A list of the main files that have been added or amended in the release (excluding &amp;quot;updates.txt&amp;quot; which is amended in each release)&lt;br /&gt;
*#* (Publishing a list of changed files has been discontinued, because people were updating selected files, and often missed crucial ones, like &#039;&#039;&#039;CumulusMX.cfg&#039;&#039;&#039;)&lt;br /&gt;
*Sometimes, a release announcement MAY contain&lt;br /&gt;
**Descriptions of one-off actions (like changing the schema if you use a database, or editing your web pages to take advantage of new web tags). &lt;br /&gt;
**Actual scripts to download and run to perform the necessary one-off actions.&lt;br /&gt;
*Be aware that it is worth while checking back on the release announcement for a few days after a release. &lt;br /&gt;
**It may have been edited because the original announcement forgot to mention something.&lt;br /&gt;
** It may have been edited to mention that some bugs have now been found&lt;br /&gt;
***That may mean you are advised to regress to an earlier version and use that&lt;br /&gt;
***It might mean that some supporting files in current version are wrong, and you only need to regress those named files&lt;br /&gt;
***There might be an emergency release to fix the bugs, and you need to upgrade to that emergency release&lt;br /&gt;
***Finally you might be given advice to avoid using certain parts of the functionality or take some other action until the next release is available.&lt;br /&gt;
&lt;br /&gt;
===Other places where you can find information about release content ===&lt;br /&gt;
&lt;br /&gt;
Although it is not always kept in step, a concise summary of all formal MX releases is available at [[Cumulus_MX_formal_release_versions]].&lt;br /&gt;
&lt;br /&gt;
You can also view the latest [https://github.com/cumulusmx/CumulusMX/blob/master/Updates.txt Updates.txt].&lt;br /&gt;
&lt;br /&gt;
===Deciding whether to upgrade to new release ===&lt;br /&gt;
&lt;br /&gt;
This has been covered earlier in this article, but I repeat here 2 critical considerations:&lt;br /&gt;
*Any new development or change in a new version of MX might cause problems for some users. You might want to stick with the version you are already using unless you really need any new functionality or the fixes gained by upgrading.&lt;br /&gt;
*Also remember that there are bugs in (almost) all versions of MX, this is a large and complicated package, and the current developer has not been able to test all the code with all possible settings and all possible weather stations.&lt;br /&gt;
&lt;br /&gt;
==Updating to a new minor build, skipping in-between minor builds==&lt;br /&gt;
&lt;br /&gt;
For a minor version build either the associated version number does not change or only the final section changes (3.x.y to 3.x.z).&lt;br /&gt;
&lt;br /&gt;
===Reading multiple release announcements===&lt;br /&gt;
&lt;br /&gt;
If you are skipping some intermediate builds, then you will need to read each of the formal release announcements for builds after the build you currently use.  &lt;br /&gt;
&lt;br /&gt;
The other sources of release information mentioned above may be consulted as an alternative and may highlight something useful, but the formal release announcement contains what the developer wants you to know.&lt;br /&gt;
&lt;br /&gt;
===Action to take when skipping minor intermediate builds===&lt;br /&gt;
&lt;br /&gt;
You need to apply the cumulative actions recommended (i.e. apply any actions in sequence as listed for each intermediate build). Unfortunately, for Cumulus MX, one cannot assume that minor builds have no one-off actions associated with them.   Luckily, most of the advice above for updating from immediately preceding build still applies.&lt;br /&gt;
&lt;br /&gt;
==Updating to a new major version==&lt;br /&gt;
&lt;br /&gt;
Generally, if the developer decides a new build warrants classification as a major version (i.e. 3.w.0) then the change being implemented is significant enough that updating might be more complex.&lt;br /&gt;
&lt;br /&gt;
=== Examples of what might be classified as a major change===&lt;br /&gt;
&lt;br /&gt;
*Additions to fields in log files (whilst older lines can continue to be read, you might want to consider [https://cumulus.hosiene.co.uk/viewtopic.php?f=18&amp;amp;t=18096 amending your standard data log] by populating the additional derivatives for older lines)&lt;br /&gt;
*Schema changes for database tables (if you don&#039;t use the standard tables, this might be irrelevant to you), the standard insert operations by MX can cope with extra columns in a table, but will fail if any column they try to update is missing&lt;br /&gt;
*Additions, changes, or removals, in configuration file (in general MX will ignore unrecognised parameters, but it does need correct values for those attributes it does recognise), see release announcements to discover if new lines in configuration file need you to add them manually or you need to use the admin interface to select the right setting for you &lt;br /&gt;
*New pages in Administrative Interface (additional pages require menu on every other page to be amended)&lt;br /&gt;
*Changes to existing pages in admin interface that involve changes to associated files (it is vital that all associated files are from same build)&lt;br /&gt;
*Catering for new weather station sensors, or new ways of communicating (this might not seem relevant to you)&lt;br /&gt;
*Any interface functionality changes (it may look the same, but what it does has changed)&lt;br /&gt;
*Additions to files being generated for web server (i.e. changes to template files, or additions to &#039;&#039;web&#039;&#039; or &#039;&#039;webfiles&#039;&#039; folders), even if you use your own versions of such files you may want to check the revisions&lt;br /&gt;
&lt;br /&gt;
=== What you need to read ===&lt;br /&gt;
&lt;br /&gt;
*Basically, check the corresponding release announcements for every version since the one you have been using before planning your upgrade. &lt;br /&gt;
**Make a note of any one-off actions required at particular in-between versions, remember these actions are only in forum release announcements.&lt;br /&gt;
**Although one-off actions will not be described in the Wiki (whether on the [[Software]] page or the [[Cumulus_MX_formal_release_versions]] page), the Wiki can give you an idea of what functionality has been improved to help you decide whether to upgrade.&lt;br /&gt;
*It is still worth reading all the points made above for updating from immediately preceding build.&lt;br /&gt;
&lt;br /&gt;
=== Doing the upgrade===&lt;br /&gt;
&lt;br /&gt;
# Download the release distribution&lt;br /&gt;
# Use &#039;&#039;&#039;control-c&#039;&#039;&#039; (or equivalent for MX running as service) to stop your existing MX software&lt;br /&gt;
# Backup your existing installation&lt;br /&gt;
# Do the on-off actions identified (e.g. changing schema of database tables, adding new configuration &lt;br /&gt;
# Unzip the distribution over existing one (alternative installation options listed later)&lt;br /&gt;
# Restart MX, considering whether to use &#039;&#039;&#039;-debug&#039;&#039;&#039; parameter in case the new release does not work for you&lt;br /&gt;
# Check the latest file in the MXDiags folder after an hour, to see if there have been any problems with reading from station, real-time uploads, standard uploads, or hourly uploads. (You may wish to recheck after an End of Day action has been done).&lt;br /&gt;
&lt;br /&gt;
==Updating from a very old version==&lt;br /&gt;
&lt;br /&gt;
Many people believe if it works, it don&#039;t need fixing. So they install whatever MX version is available when they start using MX and ignore all the bug fixing and new functionality being added, and stick with their existing installation.&lt;br /&gt;
&lt;br /&gt;
Suddenly they realise that perhaps their version does lack functionality that would be useful to them. Maybe their version does not have an editor for correcting rogue extreme records and they realise correcting log files is something that is hard for them to do.&lt;br /&gt;
&lt;br /&gt;
This section is therefore included to give advice on why you should not jump from an old version to the latest directly, but how it can be safely done in stages.&lt;br /&gt;
&lt;br /&gt;
===Recommendations for staged updating===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;This section will need to be updated, new contributors are needed to keep this advice current.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====If using 3.0.0 (the MX original beta)====&lt;br /&gt;
&lt;br /&gt;
Upgrade to 3.5.1 by downloading it at https://github.com/cumulusmx/CumulusMX/releases/tag/b3072.&lt;br /&gt;
&lt;br /&gt;
This gives you essential new functionality in the admin interface like editors for the log files and extreme records. But it also fixes multiple bugs in the beta you were using and adds some useful validation missing in the beta.&lt;br /&gt;
&lt;br /&gt;
It does not involve any updates to the fields in the log files nor to the columns in any database tables you use.&lt;br /&gt;
&lt;br /&gt;
It skips you past the problems in 3.5.0. It gives you benefits introduced in 3.1.x, 3.2.y, 3.3.z, and 3.4.w releases.&lt;br /&gt;
&lt;br /&gt;
Now follow instructions below, for &#039;&#039;If using a 3.5.x release&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====If using either 3.1.x, 3.2.y, 3.3.z, or 3.4.w releases====&lt;br /&gt;
&lt;br /&gt;
As above, update to 3.5.1 by downloading it at [[https://github.com/cumulusmx/CumulusMX/releases/tag/b3072 Mark&#039;s Github respository]]. The actual installation is done using the instructions above for simple next build upgrades. You can safely skip reading the intermediate release announcements, as there are no special one-off actions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you are happy running 3.5.1, then you should continue to upgrade, initially follow instructions in next sub-section.&lt;br /&gt;
&lt;br /&gt;
====If using a 3.5.x release ====&lt;br /&gt;
&lt;br /&gt;
My advice is to upgrade directly to 3.7.0 available at [https://github.com/cumulusmx/CumulusMX/releases Mark&#039;s Github repository].  &lt;br /&gt;
&lt;br /&gt;
You should skip the intermediate releases because several 3.6.y releases have bugs in them, and you want to avoid those problems (the bugs vary in severity between mistakes in calculations done by MX to particular functionality not working).&lt;br /&gt;
&lt;br /&gt;
But there may be additional actions you need to do when moving from 3.5.x to 3.7.y, depending on what features you use in MX:&lt;br /&gt;
*there are no additional actions if &#039;&#039;&#039;you use standard web pages and you do not use database tables&#039;&#039;&#039;, just enjoy the bug fixes and extra features after your update!&lt;br /&gt;
*&#039;&#039;&#039;If you use database tables&#039;&#039;&#039;, be aware that the schema (Column names that must be in a table) varies between 3.5.x versions and 3.7.y versions.&lt;br /&gt;
**The updating database table features in MX will only work if all the columns named in each such upload update &#039;&#039;already exist&#039;&#039; in the database table it is trying to update.&lt;br /&gt;
**Look at individual release announcements for both 3.6.0 and 3.7.0, to see the SQL provided for adding the columns added at particular versions.&lt;br /&gt;
***At 3.6.0 the SQL was provided as a separate attachment to the release announcement (read [https://cumulus.hosiene.co.uk/viewtopic.php?p=142085#p142085 UpdateMYSQL-b3076.zip])&lt;br /&gt;
***At 3.7.0 the SQL was provided as part of the main zip (read [https://cumulus.hosiene.co.uk/viewtopic.php?p=145048#p145048 AlterSQLTables3098.sql])&lt;br /&gt;
***In both cases, the SQL provided assumes you are using the default names for database tables, it does not read [[Cumulus.ini]] to see whether you have selected different names for the tables (unlike ExportMySQL.exe and standard CumulusMX.exe uploads which check what tables names you have selected for updates).&lt;br /&gt;
*&#039;&#039;&#039;If you have your own customised web pages&#039;&#039;&#039;, then there are changes to web tags that might lead to you needing to edit your web pages.&lt;br /&gt;
*&#039;&#039;&#039;If you use commas to separate integer and decimal parts of real numbers&#039;&#039;&#039;, then various releases from 3.6.0 to 3.7.0 add &amp;quot;rc=y&amp;quot; to various web tags, that option will replace the decimal commas you use by decimal points that are required for some script languages (like the JavaScript used by HighCharts), and that makes it easier if you want to customise your web site.&lt;br /&gt;
&lt;br /&gt;
When you are happy with running 3.7.0, then you should continue to upgrade, and the next sub-section describes what to do next.&lt;br /&gt;
&lt;br /&gt;
====if using a 3.7.y release ====&lt;br /&gt;
&lt;br /&gt;
If you are using 3.7.0 (there were no other builds in 3.7.y series), then you should upgrade directly to version 3.9.6 - build 3101.&lt;br /&gt;
&lt;br /&gt;
Only 3.7.0 was ever released, it introduced a lot of changes, so that is why staged upgrades recommend that this version is implemented, and run for a while, before continuing to upgrade.&lt;br /&gt;
&lt;br /&gt;
Version 3.8.0 was a major release, as it introduced the ability to run Cumulus MX as a service. However, there were bugs in the builds in all 3.8.z versions, and in some 3.9.x versions, so that is why you need to skip through intermediate builds below 3101.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039; one-off actions needed:&lt;br /&gt;
* There is a one-off change described in [https://cumulus.hosiene.co.uk/viewtopic.php?p=146957#p146957  v3.9.0 - b3095 release announcement] for those using RG-11 rain sensor. &lt;br /&gt;
* There is a further on-off change described in [https://cumulus.hosiene.co.uk/viewtopic.php?p=147329#p147329 release announcement for Patch release 3.9.1 - b3096] for those who use &#039;&#039;&#039;Mono&#039;&#039;&#039; to enable the executables to run.&lt;br /&gt;
&lt;br /&gt;
When you are happy with running version 3.9.6 build 3101, you can continue to upgrade, and that will be covered in subsequent sub-sections (assuming someone is bothered to keep this article up to date).&lt;br /&gt;
&lt;br /&gt;
====if using either 3.8.x or 3.9.y release====&lt;br /&gt;
&lt;br /&gt;
See previous entry, upgrade directly to 3.9.6, or any later build, within 3.9.x, without any major change.&lt;br /&gt;
&lt;br /&gt;
====From 3.9.y to 3.10.x====&lt;br /&gt;
&lt;br /&gt;
The major aspects that changes at 3.10.1 (3.10.0 was withdrawn) are:&lt;br /&gt;
* Changes to settings&lt;br /&gt;
** You need to open the [[MX Administrative Interface]] and work through all pages in the &#039;&#039;&#039;Settings&#039;&#039;&#039; menu.&lt;br /&gt;
*Changes to web files in &amp;lt;code&amp;gt;CumulusMX/web&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CumulusMX/webfiles&amp;lt;/code&amp;gt; and introduction of &amp;lt;code&amp;gt;CumulusMX/webfiles-legacy&amp;lt;/code&amp;gt;&lt;br /&gt;
**If you used the provided templates to produce web pages in earlier releases, or you had directly customised provided [[Customised templates|web templates]], these will no longer work&lt;br /&gt;
**Please see [[New Default Web Site Information|New Default Web Site Information page]] for further advice &lt;br /&gt;
&lt;br /&gt;
====From 3.10.x to 3.11.y====&lt;br /&gt;
&lt;br /&gt;
Treat like any other major version upgrade as described above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Knowing when a new release is available =&lt;br /&gt;
&lt;br /&gt;
== CREDIT ==&lt;br /&gt;
&lt;br /&gt;
Thanks to &#039;&#039;Billy&#039;&#039; on support forum for suggesting text for this section.&lt;br /&gt;
&lt;br /&gt;
== Using forum notifications ==&lt;br /&gt;
&lt;br /&gt;
As new releases are announced in [https://cumulus.hosiene.co.uk/viewtopic.php?f=40&amp;amp;t=17887 Cumulus MX Announcements and Download - PLEASE READ FIRST] topic, you can use the spanner tool to &#039;&#039;&#039;subscribe&#039;&#039;&#039; to this topic to receive notifications of a new post announcing a new release (or any other release-related announcement).&lt;br /&gt;
&lt;br /&gt;
== MX terminal message ==&lt;br /&gt;
&lt;br /&gt;
If ... &lt;br /&gt;
#...you have a monitor to see the terminal output from the Cumulus MX engine (Windows calls this either a command window, powershell window, or a terminal window depending on how you invoke it, for Unix-based implementations this is the output window when using the terminal functionality), AND&lt;br /&gt;
#...your device running MX is connected to internet, AND&lt;br /&gt;
#...your MONO (if not Windows) is not obsolete (SSL certificate out of date), AND&lt;br /&gt;
#...you restart MX&lt;br /&gt;
... then you will see a prompt when a new version of MX is available.&lt;br /&gt;
&lt;br /&gt;
It is worth stressing that if you leave MX running, then this feature will leave you blissfully unaware that an update is available; it only checks when MX is restarted.&lt;br /&gt;
&lt;br /&gt;
== MXDiags ==&lt;br /&gt;
&lt;br /&gt;
In addition ...&lt;br /&gt;
#...if you can view the MXdiags file for the current session of MX, AND&lt;br /&gt;
#... MX is running with connection to the internet, AND&lt;br /&gt;
#...you restart MX&lt;br /&gt;
... if a new version of MX is available, the MXDiags file will say so (the message is not easy to spot as there is a lot of output before it, and variation in what output appears before it). Anyway, here is one example, just one example as in my experience &#039;&#039;&#039;the message has appeared at different places for each of the recent upgrades&#039;&#039;&#039;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2020-05-27 04:18:48.326 Calculating sunrise and sunset times&lt;br /&gt;
2020-05-27 04:18:48.326 Sunrise: 04:58:11&lt;br /&gt;
2020-05-27 04:18:48.326 Sunset : 21:19:54&lt;br /&gt;
2020-05-27 04:18:48.326 Tomorrow sunrise: 04:57:08&lt;br /&gt;
2020-05-27 04:18:48.326 Tomorrow sunset : 21:21:11&lt;br /&gt;
2020-05-27 04:18:48.388 You are not running the latest version of CumulusMX, build 3080 is available.&lt;br /&gt;
2020-05-27 04:18:48.763 Station type:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is no message in whatever place it can appear ...&lt;br /&gt;
*... if you are using latest version, OR&lt;br /&gt;
* ... if you are not connected to the internet, OR&lt;br /&gt;
*... if you keep MX running all the time!&lt;br /&gt;
&lt;br /&gt;
== Start/Stop script ==&lt;br /&gt;
&lt;br /&gt;
When the &#039;&#039;&#039;Status&#039;&#039;&#039; option of this script is used, whenever a new release of MX is available, it will output a message.&lt;br /&gt;
&lt;br /&gt;
== Dashboard in MX Admin Interface ==&lt;br /&gt;
&lt;br /&gt;
In recent releases, one of the alarm indicators shown at the bottom of the dashboard page of the administrative interface, will flash red when you are not running latest build, and glow green when there is no newer release compared to the one you are running.&lt;br /&gt;
&lt;br /&gt;
== Web Tags ==&lt;br /&gt;
&lt;br /&gt;
Since 3.7.0 release of MX, two relevant web tags have become available:&lt;br /&gt;
* &amp;lt;#NewBuildAvailable&amp;gt; Returns a boolean value&lt;br /&gt;
**  0 - MX running the latest build available&lt;br /&gt;
**  1 - MX is running an earlier build than the latest public release&lt;br /&gt;
* &amp;lt;#NewBuildNumber&amp;gt;  Displays the latest public release build number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Recommended Actions when Updating =&lt;br /&gt;
&lt;br /&gt;
== Back-ups ==&lt;br /&gt;
&lt;br /&gt;
It is always best to take a backup of your existing MX installation before you do an upgrade, this allows you to regress back to the earlier version if either you mess up installing the new version, or the new version has a issue that prevents it working with the versions of other software (like MONO) that your installation uses.&lt;br /&gt;
&lt;br /&gt;
== The two approaches ==&lt;br /&gt;
&lt;br /&gt;
Contributors to this section are named in text.&lt;br /&gt;
&lt;br /&gt;
Some people upgrade by just copying in the files that the release announcement says have changed, others copy in all files from the downloaded zip. The first should only be used with caution, files like &#039;&#039;&#039;CumulusMX.exe.config&#039;&#039;&#039; can change between versions, but not be mentioned in a release announcement, and the developer will have been making edits to files since the previous release, and might forget exactly which files have been edited between releases. Also you may be upgrading from an earlier version and therefore be skipping several intermediate releases. &lt;br /&gt;
&lt;br /&gt;
You may be able to see the dates when files were changed within the zip and therefore be able to decide for yourself if you compare those dates with the previous release you were using if you have kept the download for the version you were using. However, do not assume that only files with later date are needed; in some releases the new build regresses one or more files and so a file with an older date is the correct one to retain.&lt;br /&gt;
&lt;br /&gt;
===The rename old approach===&lt;br /&gt;
&lt;br /&gt;
#The popular approach, recommended by many forum contributors, in many different posts (including at [https://cumulus.hosiene.co.uk/viewtopic.php?p=141763#p141763 this post by Mark Crossley for example] is to rename your current install directory, then unzip the new release, letting it create a new &#039;&#039;&#039;CumulusMX&#039;&#039;&#039; folder (or whatever name you prefer and specify in unzip options). &lt;br /&gt;
#However, you will find that this option is not being recommended any more, because it relies on you knowing which files (see next 2 points) you need to copy back.&lt;br /&gt;
#Copy across &#039;&#039;&#039;Cumulus.ini&#039;&#039;&#039; and (if you use it) &#039;&#039;&#039;string.ini&#039;&#039;&#039; into that new directory, and then copy the contents of the &#039;&#039;&#039;data&#039;&#039;&#039; and &#039;&#039;&#039;Reports&#039;&#039;&#039; directories from your &#039;&#039;current install&#039;&#039; to the new install.  &lt;br /&gt;
#Don&#039;t forget to copy any other set-up files across too. &lt;br /&gt;
#*The advantage (as Mark says) is that you ensure you do use all the files in the new release, and don&#039;t miss out any he may have forgotten to mention in his release announcement.&lt;br /&gt;
#* A key advantage is that you don&#039;t retain files that an old release migt have needed but the new release does not use.&lt;br /&gt;
#*Another advantage (as PaulMy says [https://cumulus.hosiene.co.uk/viewtopic.php?p=140262#p140262 here for example]) is that you retain your old set-up intact and can easily restore it should you have a problem with new release.&lt;br /&gt;
#Various people advise that you don&#039;t delete your old installation for a week or so; as you may notice something from the older version that you haven&#039;t copied across! &lt;br /&gt;
#Check again that you copied across (you may not have all of these files, but if you have them in old installation then you need them in new installation) &#039;&#039;&#039;strings.ini&#039;&#039;&#039;, &#039;&#039;&#039;twitter.txt&#039;&#039;&#039;, &#039;&#039;&#039;Cumulus.ini&#039;&#039;&#039;, and similar files in the same folder level as CumulusMX.exe, as well as all the files in the &#039;&#039;&#039;data&#039;&#039;&#039; and &#039;&#039;&#039;Reports&#039;&#039;&#039; sub-folders. Then, provided you are happy, you can delete the old release when you want to reduce clutter on your storage discs.&lt;br /&gt;
&lt;br /&gt;
===The overwrite approach===&lt;br /&gt;
&lt;br /&gt;
The general advice is that if you want custom pages for the administrative interface, or custom templates to process  to produce your web pages, then these custom files should be given different names (and ideally be placed in different folders) to the standard files included in the release distributions. If you follow this advice, the approach described in this sub-section is the best for you, if you don&#039;t follow this advice, see later section on dealing with customised files.&lt;br /&gt;
&lt;br /&gt;
#* if you have a lot of set-up files, or other custom files, (i.e. files with names that are not part of release), these won&#039;t be overwritten by files in the release distribution, but you do want to keep them; &lt;br /&gt;
#*or if you are downloading on a different computer, or on a different disc, to where you are running MX, it is easiest to keep your MX installation in the same place&lt;br /&gt;
#Note the forum administrator, David, [https://cumulus.hosiene.co.uk/viewtopic.php?p=140355#p140355 (see this post)] recommends this particular approach. &lt;br /&gt;
#After downloading a new release unzip it on the device/disc where you down load it. Next stop your existing Cumulus MX software and take a backup of your existing installation. After that, simply copy the files (optionally only those that have newer dates because they have changed) into the existing MX directory on the device where you run MX.  Then you know all your existing files are there, and your MX can be run as before.&lt;br /&gt;
#The great advantage of this approach, and the reason that it is widely recommended as best, is that you can&#039;t lose any data or configuration files (i.e. files that are not part of the release distribution).&lt;br /&gt;
#Provided you did the backup, &#039;&#039;&#039;the only problem with this approach is that in some releases files are removed from the distribution&#039;&#039;&#039;, yet unless you check carefully, this approach may &#039;&#039;leave files that are no longer required&#039;&#039; in your installation, and it is just possible you might continue to use the obsolete file instead of the intended alternative. Such a non-standard installation is difficult for others to support. So do check through file by file to ensure you only have files in the distribution you have just installed, not any from earlier distributions. The only files that you still want (that are not in distribution) will be those that either configure your system or contain your data in log files.&lt;br /&gt;
#*The updated files can be tracked by their modification date, some will be specified in the release notes (find them on [https://cumulus.hosiene.co.uk/viewtopic.php?f=40&amp;amp;t=17887 this forum]). There is a list indicating what files vary in [[Cumulus_MX_formal_release_versions|this Wiki article]].&lt;br /&gt;
#*In general, especially if updating a major release, it is best to overwrite with all files in zip, whether they are listed as changed or not.  This ensures you have a consistent set of files, and avoids any issues when the developer does not correctly list all the files that have changed, or a file might be regressed to an earlier version and not have a newer date than the file in your previous installation.&lt;br /&gt;
&lt;br /&gt;
====Example: downloading on PC and installing on pi ====&lt;br /&gt;
&lt;br /&gt;
#On your pc: Download zip either from  [[Software]] for latest version or from https://github.com/cumulusmx/CumulusMX/releases for earlier versions.&lt;br /&gt;
#On your pc: Use Filezilla (or similar file transfer program, or it might even be a copy over network depending on way set up) to transfer zip to pi  (e.g. &amp;lt;tt&amp;gt;FileZilla CumulusMXDist3089.zip to /home/pi&amp;lt;/tt&amp;gt;), but remember you might want to install to a different location (perhaps on an external USB drive, or SSD)&lt;br /&gt;
#Control C on pi to stop MX&lt;br /&gt;
#On pi go to directory where zip now is, for example it might be &amp;lt;tt&amp;gt;cd /home/pi&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Unzip the installation over your existing installation, by running on your Raspberry Pi this instruction: &amp;lt;tt&amp;gt;unzip -o CumulusMXDist3089.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Restart MX&lt;br /&gt;
# Remove any files that were needed by earlier releases but release announcement says are not needed by the release you are installing&lt;br /&gt;
&lt;br /&gt;
===The customised approach===&lt;br /&gt;
&lt;br /&gt;
If you edit a file that is included in the release distribution, you should give it a different name (e.g. I have placed an underline in front of original file name for some of the files I edited in the admin interface), and/or place it in a different folder (e.g. I place all the cumulus templates I have created in a folder called &#039;&#039;&#039;cumulus_Templates&#039;&#039;&#039;). If you follow this advice, then you won&#039;t lose your files by following the advice above, regardless of whether you overwrite or not.&lt;br /&gt;
&lt;br /&gt;
If you won&#039;t listen to best practice advice, and have decided to for example modify the provided Cumulus web templates without allocating new names, then installing the whole release distribution will overwrite your edited file(s) with the standard file content provided by the developer. Therefore you need to do a customised approach where you select which files from the distribution to copy into your installation. If you have changed one or more web templates, you might think it safe just to omit the relevant files in the zip within folder &#039;&#039;&#039;web&#039;&#039;&#039;, but some builds change the files in the &#039;&#039;&#039;webfiles&#039;&#039;&#039; folder too, and you need to retain consistency.&lt;br /&gt;
&lt;br /&gt;
==== Updating when files within release might overwrite your own edits ====&lt;br /&gt;
&lt;br /&gt;
To further explain the customised approach, here are some more examples.&lt;br /&gt;
&lt;br /&gt;
===== web site files =====&lt;br /&gt;
&lt;br /&gt;
If you have edited any files that sit on your &#039;&#039;&#039;web site&#039;&#039;&#039;, then these can remain on your web site. However, if those web pages are generated from templates that you expect MX to process and upload for you, you do need to take special action. Maybe you edited a template to give the look you desire, or the content you want (e.g. adding rain this month to this month page, or combining this month and this year page).&lt;br /&gt;
&lt;br /&gt;
The first step is to see if the release notice says that file has been revised, if it has not then it is easy to keep your edited file by not copying in the replacement file from within the zip.  If the release revises any file you previously edited, take a backup of your edited file, before you copy the new file into your folder. You can then use a file comparing tool to see what has changed in the release and what you changed and hopefully manage to merge to a new file that keeps any functionality change in a new release and keeps your customisation. Do think about changing name of the template file, or placing it in a different folder, and using the &#039;&#039;&#039;Extra Files&#039;&#039;&#039; settings. That will make it easier for you next time you do an upgrade to a new MX build.&lt;br /&gt;
&lt;br /&gt;
If you have done major customisation to the standard website then you probably have followed the guidance and stored your new web page templates in a different directory and you use &#039;&#039;&#039;Extra Files&#039;&#039;&#039; to specify where they are, so they cannot be overwritten, and the new MX will still find them. It might be that new web tags have been added since whatever build you were running before, and that you decide to edit your customised template file, but that can be done any time after you install the new MX build.&lt;br /&gt;
&lt;br /&gt;
===== admin interface files =====&lt;br /&gt;
&lt;br /&gt;
If you have done any customisation to the &#039;&#039;&#039;interface&#039;&#039;&#039; (perhaps you don&#039;t like seeing solar in the tables when you don&#039;t measure that) then again you can skip over these files when copying. Hopefully you will have copies of the files that you have customised of the &#039;&#039;interface folder&#039;&#039; so you have ability to copy them back into installation if you do overwrite with the release version.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You do have to be careful&#039;&#039;&#039;, as many releases change the interface in some way, even if the change is not in the file you have customised, it might be in an asociated file, and all the various components of the interface have to work together as a coherent unit. For instance when feels like was added to MX, the api used for sending data from the MX engine to the admin interface was updated. In some releases, a new web page is added to the admin interface, with the consequence that all the navigation menus were adjusted in all web pages. Any HTML page in the admin interface may be edited to refer to a different styling page (so it, and the .css file, must be updated together) or to a different script (so the .HTML, and the .js file, must be updated together).  The settings pages in the admin interface are dependent on the correct pair of json files to define the options or values that appear on that web page, so again all must be consistent.  &lt;br /&gt;
&lt;br /&gt;
To sum up, admin interface files are interdependent, and you cannot always update some, but not all, of the admin interface pages. &lt;br /&gt;
&lt;br /&gt;
Be prepared to go back to the standard file for whatever you customised if something it depends upon has changed, after all you must not lose any vital functionality.&lt;br /&gt;
&lt;br /&gt;
On my site, my own versions of interface files have a &amp;quot;_&amp;quot; (underline character) added to the start of the standard MX file name. This applies to both HTML pages, and JavaScript files that I have edited. I edit the menu items within my edited pages so those all go to my versions where I have a HTML customised page, leaving unchanged the menu items that can still go to a standard MX web page where I don&#039;t have my own version of the .HTML page.  This makes it easy for me to navigate between my pages, as all of them link to my other pages.  If I am on a standard MX page and want to go to one of my customised pages, I select the equivalent standard page, then edit the URL to add the underline and get easily to my page.  This naming means I can always use a standard page instead of my customised page when I need to, and I never miss out on any new features.&lt;br /&gt;
&lt;br /&gt;
== After an upgrade if you use the standard web template files ==&lt;br /&gt;
&lt;br /&gt;
If you do not use the example web template files, provided as standard, with a MX release, the remainder of this section can be ignored.&lt;br /&gt;
&lt;br /&gt;
If you use the third party [[CumulusMX and Cumulus1 UI style Multilingual Websites]] web pages, as maintained by BCJKiwi, follow any instructions in his package as to which of the files in this section are required and any announcements in his forum topic about when such files need to be upgraded.&lt;br /&gt;
&lt;br /&gt;
=== web folder from zip ===&lt;br /&gt;
&lt;br /&gt;
If you do use the example web templates to produce web pages for your web server, and you have copied all files from the release distribution ....&lt;br /&gt;
&lt;br /&gt;
....MX will find any new web template files in your &#039;&#039;&#039;web&#039;&#039;&#039; folder,  MX will process those template files, and upload the web pages produced, &#039;&#039;as before with no further action by you&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== webfiles folder from zip ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;PLEASE COULD SOMEONE USING LATEST MX RELEASE ENSURE THIS IS KEPT UP TO DATE&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You do need a further action, if any files in this folder have been updated.  The updated files must be uploaded to your web site.&lt;br /&gt;
&lt;br /&gt;
This may be easy to forget if you use the standard web templates, because you thought that upload was a one-off and maybe you cannot remember what you did. &lt;br /&gt;
&lt;br /&gt;
Certain third-party web-pages still use files from that folder, if one of the files they use has been updated, then ensure you have a backup of your web site before you upload the updated file, it should work, but it might not, and you might need to regress.&lt;br /&gt;
&lt;br /&gt;
Let me go through the files currently in webfiles folder:&lt;br /&gt;
*&#039;&#039;&#039;weatherstyle.css&#039;&#039;&#039; has not been updated since its last update by Steve Loft in 2009.&lt;br /&gt;
*subfolder &#039;&#039;&#039;images&#039;&#039;&#039; contains 2 pictures that have stayed same since MX launch&lt;br /&gt;
*subfolder &#039;&#039;&#039;js&#039;&#039;&#039; contains one file or two files (depending on which MX release you are using: &lt;br /&gt;
**The standard web page &#039;&#039;&#039;trends.htm&#039;&#039;&#039; will only work if the correct version of any file here has been uploaded to your web site, and placed in a sub-folder &amp;quot;js&amp;quot; of where &amp;quot;trends.htm&amp;quot; is installed. .&lt;br /&gt;
*** BCJKiwi&#039;s user interface &#039;&#039;&#039;charts.php&#039;&#039;&#039; also requires the same JavaScript file (or files?), so upload the file(s0 anytime there is a change in a MX release. &lt;br /&gt;
** The file &#039;&#039;&#039;\CumulusMX\webfiles\js\cumuluscharts.js&#039;&#039;&#039; has changed in a lot of releases, it is updated whenever there is a change in the JSON files used for providing data to the charts, and you must use the right upgrade.&lt;br /&gt;
** The file &#039;&#039;&#039;historiccharts.js&#039;&#039; (it was introduced from release 3.8.7) is similar to previous script, but drives the historic chart functionality on your web server&lt;br /&gt;
*subfolder &#039;&#039;&#039;lib&#039;&#039;&#039; currently contains 3 folders:&lt;br /&gt;
**&#039;&#039;&#039;highstock&#039;&#039;&#039; - this folder is no longer needed on your web site (and the most recent MX releases have emptied it)&lt;br /&gt;
**&#039;&#039;&#039;jquery&#039;&#039;&#039; - this folder is needed for &amp;quot;trends,htm&amp;quot; to work, but it has not been updated since 2014. Both the files included are obsolete packages, no longer officially available, and there are no plans to replace them.&lt;br /&gt;
**&#039;&#039;&#039;steelseries&#039;&#039;&#039; - this folder has 3 sub-folders, I can only think of 2 MX releases when anything was changed here, and I don&#039;t anticipate any further changes.&lt;br /&gt;
&lt;br /&gt;
= After upgrade - checking for bugs in MX or mistakes in your installation =&lt;br /&gt;
&lt;br /&gt;
Start the new installation of MX and watch out for any errors - If the device you run MX on has a monitor, then look in the terminal/command window. In all cases look at the latest file in the [[MXdiags_folder|MXdiags folder]] to see if any errors are reported. &lt;br /&gt;
&lt;br /&gt;
In newer releases of MX, also see [[ServiceConsoleLog.txt]]&lt;br /&gt;
&lt;br /&gt;
Also keep an eye on the support forum for first few days, some releases do have bugs, as developer cannot test all possible configurations.&lt;br /&gt;
&lt;br /&gt;
== Updating if you use a virus Checker ==&lt;br /&gt;
You may find that virus checkers such as Windows Defender reject your new version of MX. They need to be told it is safe.&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Updating_MX_to_new_version&amp;diff=9703</id>
		<title>Updating MX to new version</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Updating_MX_to_new_version&amp;diff=9703"/>
		<updated>2021-08-06T23:49:59Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Latest release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Who this article is for=&lt;br /&gt;
&lt;br /&gt;
Please be aware that if you want to move from Cumulus 1 to MX, you should read [[Migrating_from_Cumulus_1_to_MX]] article instead.&lt;br /&gt;
&lt;br /&gt;
This article is for those who already use MX, and so are comfortable with basic MX installation and running.&lt;br /&gt;
&lt;br /&gt;
=Who is not intended reader=&lt;br /&gt;
&lt;br /&gt;
Cumulus MX has been updated so frequently in 2020, that you may be used to upgrading to a new build, and for you this article is not useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Where to download a release distribution=&lt;br /&gt;
&lt;br /&gt;
==Latest release==&lt;br /&gt;
&lt;br /&gt;
Download release distribution zip from  [[Software|the Software article in this Wiki]] for latest version.&lt;br /&gt;
&lt;br /&gt;
Be aware that the developer needs to remember to update this link each time there is a new release.&lt;br /&gt;
&lt;br /&gt;
An image that contains a &#039;&#039;&#039;Raspberry Pi lite operating system&#039;&#039;&#039; and a recent CumulusMX release already included, can be downloaded from the same wiki article. Not every CumulusMX release is provided as a Raspberry Pi image, so you may need to perform an update to get the latest release.&lt;br /&gt;
&lt;br /&gt;
==Any release developed by Mark Crossley==&lt;br /&gt;
&lt;br /&gt;
Download release distribution zip from https://github.com/cumulusmx/CumulusMX/releases for earlier versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introduction to upgrading MX=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: LemonChiffon;padding:5px; margin:2px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Crystal Clear info.png|40px]] This document is &#039;Work In Progress&#039; so content may not be complete or accurate!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Cumulus MX]]&lt;br /&gt;
&lt;br /&gt;
You can download and unzip in advance, but cannot replace existing files while they are being used, so how you stop MX is in next two sub-sections.&lt;br /&gt;
&lt;br /&gt;
My preference, after download, and unzip into a holding area, is to copy (it would be file transfer if you download on another device) over my existing installation all files except:&lt;br /&gt;
*CumulusMX.exe&lt;br /&gt;
*CumulusMX.exe.config&lt;br /&gt;
while MX is still running. I then stop MX for minimal time needed to replace just those two files before I restart MX.  That way I minimise downtime, especially useful for a patch release when few files have changed, as it takes some time to replace all the files in the installation.&lt;br /&gt;
&lt;br /&gt;
For simplicity, in guidance below, MX is stopped before any files are replaced.&lt;br /&gt;
&lt;br /&gt;
==Upgrading on a Raspberry Pi (RPi) computer by commands from a Microsoft Windows computer (PC)==&lt;br /&gt;
&lt;br /&gt;
I recommend you download WinSCP (this and PuTTy share some settings). This will allow you to connect your PC to your rPi and copy files back and forth.  You can use it to copy the MX distribution, you download and unzip on your PC, onto the RPi. You can also use it to take a back-up of your RPI files onto your PC, and to pick certain files off your RPi. e.g. copy log files  from [[MXdiags folder]] to your PC to read diagnostics etc.&lt;br /&gt;
&lt;br /&gt;
You can download PuTTy (shares some settings with WinSCP) to enable you to open a terminal session and send commands to your RPi computer.&lt;br /&gt;
&lt;br /&gt;
If you have Cumulus MX setup to run as a service then you will need to do one of these, should you wish to add debugging when the upgraded MX begins...&lt;br /&gt;
# Edit the CumulusMX service file (see [[MX_on_Linux#Running_as_a_service]]) to add the -debug parameter (do this if always want debugging on, not usually needed)&lt;br /&gt;
# Just set it from Program Settings | Logging Options (easiest for turning debug on when you need it and off when you don&#039;t need it)&lt;br /&gt;
# Edit the Cumulus.ini file and enable it in there (no longer recommended)&lt;br /&gt;
&lt;br /&gt;
==Upgrading if you run MX as a service==&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to stop the service, before you do the upgrade.&lt;br /&gt;
&lt;br /&gt;
For  a Linux Operating system: &amp;lt;code&amp;gt;sudo systemctl stop cumulusmx&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For Microsoft Windows Operating System:  (a contributor who uses Microsoft Windows needs to modify this page)&lt;br /&gt;
&lt;br /&gt;
==Upgrading if you run MX interactively==&lt;br /&gt;
&lt;br /&gt;
If you do NOT run as a service, you will want to use &#039;&#039;&#039;Control and C&#039;&#039;&#039; in the terminal (or command) window running MX to make the software close tidily. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updating to the next MX release if you have not upgraded before ==&lt;br /&gt;
&lt;br /&gt;
The simplest upgrade is from the immediate preceding build, and the steps required are summarised as follows:&lt;br /&gt;
# Download the release distribution zip for the next build (see later for where from)&lt;br /&gt;
#* My advice is to have a separate download location away from the location where you are installing/running the software; it can retain older releases to make regression simple if the new release proves to have a bug.&lt;br /&gt;
# Use &#039;&#039;&#039;Control-C&#039;&#039;&#039; to stop Cumulus MX (see later if running as a service)&lt;br /&gt;
# Take a backup of your complete existing MX installation (as it is not running, no files will be locked)&lt;br /&gt;
# Unzip the new distribution, overwriting the previous installation (the release announcement might ask you to delete obsolete files)&lt;br /&gt;
# Run any one-off batch scripts needed to prepare for upgrade&lt;br /&gt;
#* These might be needed if log files in the new release contain fields that were not in earlier release &lt;br /&gt;
#* These might be needed if you use optional database functionality (see later for examples)&lt;br /&gt;
# Do any actions that require you to use [[MX Administrative Interface|Admin Interface]] to change settings&lt;br /&gt;
# Do any one-off actions in relation to any files provided by MX for you to run a web site with the default pages&lt;br /&gt;
# Restart your Cumulus MX (consider running with &#039;&#039;&#039;-debug&#039;&#039;&#039; parameter if you are not sure the new build is bug free)&lt;br /&gt;
&lt;br /&gt;
The remainder of this article explains all options for updating, and is thus less simple than above.&lt;br /&gt;
&lt;br /&gt;
==Installer Option==&lt;br /&gt;
&lt;br /&gt;
[https://cumulus.hosiene.co.uk/memberlist.php?mode=viewprofile&amp;amp;u=9016 HansR] on support forum has developed an multi-platform installer, see [https://cumulus.hosiene.co.uk/viewtopic.php?f=44&amp;amp;t=18916 Multiplatform Installer for CumulusMX] which makes life a lot easier if you do not wish to dive into the (file level contents) internals of CumulusMX.&lt;br /&gt;
&lt;br /&gt;
#Copy the &#039;&#039;&#039;InstallCMX.exe&#039;&#039;&#039; to any directory you want, on the drive where you wish to install (or have previously installed) MX. &lt;br /&gt;
#Copy the CumulusMX release distribution zip(s) to that same directory, if you have not already done so. You may have more than one distribution in the same directory.&lt;br /&gt;
#*The install procedure gives you the possibility to select, or define, the Archive to install, and the location where to install.&lt;br /&gt;
#Stop CumulusMX&lt;br /&gt;
#Run &#039;&#039;&#039;InstallCMX&#039;&#039;&#039; and confirm / fill in (on the console) where you wish to install (or update) CMX. The default for Windows is C:\CumulusMX\ and for Linux it is : /home/CumulusMX. The Installation directory can be modified.&lt;br /&gt;
#* You can give the &#039;&#039;&#039;build number&#039;&#039;&#039;, for the release distribution zip, to install as command line &#039;&#039;&#039;argument&#039;&#039;&#039;.&lt;br /&gt;
#Start CumulusMX&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; On Windows you run the installer as any other command line executable and it is best to open a command window in which you start the installer. On Linux you run it on the command line as &amp;quot;mono ./InstallCMX.exe&amp;quot;, the mono command can be omitted if mono is already active (e.g. if you run CumulusMX as a service, and stop it, mono remains active).&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; In an existing installation with modified files, make sure those are in a different, either filename or folder (a safe place). If they have the same name as files in the distribution, they will be overwritten.&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; Check in the &amp;lt;code&amp;gt;webfiles&amp;lt;/code&amp;gt; directory to see if any files there have been modified, since your last upload to your web server. If so, move those new files to the website.&lt;br /&gt;
&lt;br /&gt;
After the installation, there is a &#039;&#039;&#039;log file&#039;&#039;&#039;. Check the log file to see everything has gone well.&lt;br /&gt;
There is an &#039;&#039;&#039;ini file&#039;&#039;&#039; where you can control:&lt;br /&gt;
* NormalMessageToConsole=true or (default) NormalMessageToConsole=false &lt;br /&gt;
* TraceInfoLevel=Warning (out of: Error, Warning, Info, Verbose, None)&lt;br /&gt;
&lt;br /&gt;
Any reactions (thank you, issues and questions) please post in the [https://cumulus.hosiene.co.uk/viewtopic.php?f=44&amp;amp;t=18916 download thread of the installer].&lt;br /&gt;
&lt;br /&gt;
Modifications and additions on user request can be discussed (e.g. think about automated start/stop, upload of webfiles to the directory etc....), use the talk for this page.&lt;br /&gt;
&lt;br /&gt;
==Upgrading if you are running MX on a Linux computer==&lt;br /&gt;
&lt;br /&gt;
You might want to read galfert&#039;s post on the support forum [https://cumulus.hosiene.co.uk/viewtopic.php?p=148851#p148851 here] for the relevant Linux instructions in a concise format.&lt;br /&gt;
&lt;br /&gt;
If you want more detailed information, on any Linux (including Raspberry Pi operating system) aspects of the upgrade instructions on this page, see [[MX on Linux]] page.&lt;br /&gt;
&lt;br /&gt;
== Updating if you use the start/stop management script == &lt;br /&gt;
&lt;br /&gt;
This section contributed by &#039;&#039;Jank&#039;&#039; on support forum.  Note the version on the forum might have been updated from the original included here.&lt;br /&gt;
&lt;br /&gt;
1. look on [[Software|Software download page]], find the link to latest version, and fill out the &#039;...&#039; below appropriately as you run these 2 commands on your device where you do downloads: &lt;br /&gt;
&amp;lt;pre&amp;gt;cd /tmp&lt;br /&gt;
wget https://github.com/cumulusmx/CumulusMX/ ... .zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Once that download is complete, start cumulusmx.sh with option -u&lt;br /&gt;
&amp;lt;pre&amp;gt;/home/pi/CumulusMX/cumulusmx.sh -u&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.When asked for the zip file, enter &lt;br /&gt;
&amp;lt;pre&amp;gt;/tmp/CumulusMXDist&amp;lt;/pre&amp;gt; and hit the TAB Button&lt;br /&gt;
&lt;br /&gt;
4.Choose the zip file with the CumulusMX upgrade and hit return.&lt;br /&gt;
&lt;br /&gt;
5. Follow the on screen instructions&lt;br /&gt;
&lt;br /&gt;
6. With each update component .....you can choose: [y]es, [n]o, [A]ll, [N]one, [r]ename&lt;br /&gt;
&lt;br /&gt;
I would recommend select &#039;&#039;&#039;A&#039;&#039;&#039; as that will simply replace all files without further action.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CumulusMX will be restarted after upgrade completes.&lt;br /&gt;
&lt;br /&gt;
You can check if the upgrade was successful by using option -s:&lt;br /&gt;
&amp;lt;pre&amp;gt; /home/pi/CumulusMX/cumulusmx.sh -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Considerations that determine when to upgrade=&lt;br /&gt;
&lt;br /&gt;
Cumulus MX will nag you, in various places, to make you aware if you are not running the latest build. Some people will choose to upgrade as soon after a new release as they can. However, each upgrade does involve a period when MX is not running, and that causes some loss of data:&lt;br /&gt;
*for some weather station types readings taken every minute, or more frequently, are replaced by whatever period you station data logger records at; &lt;br /&gt;
*for other stations, without their own logging, all data is lost for the period when MX is not running.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other, more cautious, people (like the present writer) will not upgrade each time a new release becomes available (and there are a lot of new releases in 2020), here are some of the reasons:&lt;br /&gt;
* you will see in the Cumulus Support Forum that many builds have bugs, and so you realise that it is better to stick with your fully working release, than install one with bugs;&lt;br /&gt;
* you may wish to avoid the loss of data mentioned above, by minimising the number of times that you stop MX;&lt;br /&gt;
* you may run MX on a computer that you rarely visit, perhaps even in a remote location not often visited, so you prefer to leave it untouched, rather than risk possibility of being unable to restart remotely;&lt;br /&gt;
* you may just have more important ways to use your time than updating your MX software, and some new builds might not give you any benefits that make it worthwhile to change your priorities.&lt;br /&gt;
&lt;br /&gt;
It is perfectly possible to &#039;&#039;&#039;upgrade from rather old versions of MX, to the latest&#039;&#039;&#039;, skipping intermediate versions, &#039;&#039;&#039;but there are some key versions that you should not skip over&#039;&#039;&#039;. This page, in subsequent sections, includes suggestions for which releases to install (and get running) before moving onto newer releases. This will be especially useful for those people who do not immediately upgrade to new releases, as per above suggestions. &lt;br /&gt;
&lt;br /&gt;
===Advice about skipping versions===&lt;br /&gt;
&lt;br /&gt;
Please see [[Updating_MX_to_new_version#Updating_from_a_very_old_version]] sub-section later on this page (and preceding sub-sections where relevant)&lt;br /&gt;
&lt;br /&gt;
The important point to make here is that when you do an upgrade, you should copy in &#039;&#039;&#039;ALL&#039;&#039;&#039; files from the release distribution you want to run next. This is because there are dependencies between files within a distribution, so missing out any particular file may stop other files from working. However, if you are skipping versions, read the in-between release announcements to see if there are any one-off actions.&lt;br /&gt;
&lt;br /&gt;
= What to read (and when) before upgrading =&lt;br /&gt;
&lt;br /&gt;
== Upgrading from immediately preceding build ==&lt;br /&gt;
&lt;br /&gt;
=== The release announcement ===&lt;br /&gt;
&lt;br /&gt;
The release announcement is found in [https://cumulus.hosiene.co.uk/viewtopic.php?f=40&amp;amp;t=17887 Cumulus MX Announcements and Download - PLEASE READ FIRST] topic of the support forum.&lt;br /&gt;
&lt;br /&gt;
*Generally, a release announcement WILL contain&lt;br /&gt;
*#An overall purpose for that particular release (e.g. fixing bugs or adding functionality)&lt;br /&gt;
*#Details of what functionality has been added&lt;br /&gt;
*#Details of what bugs have been fixed, or where the processing has been improved&lt;br /&gt;
*# (For older releases only) A list of the main files that have been added or amended in the release (excluding &amp;quot;updates.txt&amp;quot; which is amended in each release)&lt;br /&gt;
*#* (Publishing a list of changed files has been discontinued, because people were updating selected files, and often missed crucial ones, like &#039;&#039;&#039;CumulusMX.cfg&#039;&#039;&#039;)&lt;br /&gt;
*Sometimes, a release announcement MAY contain&lt;br /&gt;
**Descriptions of one-off actions (like changing the schema if you use a database, or editing your web pages to take advantage of new web tags). &lt;br /&gt;
**Actual scripts to download and run to perform the necessary one-off actions.&lt;br /&gt;
*Be aware that it is worth while checking back on the release announcement for a few days after a release. &lt;br /&gt;
**It may have been edited because the original announcement forgot to mention something.&lt;br /&gt;
** It may have been edited to mention that some bugs have now been found&lt;br /&gt;
***That may mean you are advised to regress to an earlier version and use that&lt;br /&gt;
***It might mean that some supporting files in current version are wrong, and you only need to regress those named files&lt;br /&gt;
***There might be an emergency release to fix the bugs, and you need to upgrade to that emergency release&lt;br /&gt;
***Finally you might be given advice to avoid using certain parts of the functionality or take some other action until the next release is available.&lt;br /&gt;
&lt;br /&gt;
===Other places where you can find information about release content ===&lt;br /&gt;
&lt;br /&gt;
Although it is not always kept in step, a concise summary of all formal MX releases is available at [[Cumulus_MX_formal_release_versions]].&lt;br /&gt;
&lt;br /&gt;
You can also view the latest [https://github.com/cumulusmx/CumulusMX/blob/master/Updates.txt Updates.txt].&lt;br /&gt;
&lt;br /&gt;
===Deciding whether to upgrade to new release ===&lt;br /&gt;
&lt;br /&gt;
This has been covered earlier in this article, but I repeat here 2 critical considerations:&lt;br /&gt;
*Any new development or change in a new version of MX might cause problems for some users. You might want to stick with the version you are already using unless you really need any new functionality or the fixes gained by upgrading.&lt;br /&gt;
*Also remember that there are bugs in (almost) all versions of MX, this is a large and complicated package, and the current developer has not been able to test all the code with all possible settings and all possible weather stations.&lt;br /&gt;
&lt;br /&gt;
==Updating to a new minor build, skipping in-between minor builds==&lt;br /&gt;
&lt;br /&gt;
For a minor version build either the associated version number does not change or only the final section changes (3.x.y to 3.x.z).&lt;br /&gt;
&lt;br /&gt;
===Reading multiple release announcements===&lt;br /&gt;
&lt;br /&gt;
If you are skipping some intermediate builds, then you will need to read each of the formal release announcements for builds after the build you currently use.  &lt;br /&gt;
&lt;br /&gt;
The other sources of release information mentioned above may be consulted as an alternative and may highlight something useful, but the formal release announcement contains what the developer wants you to know.&lt;br /&gt;
&lt;br /&gt;
===Action to take when skipping minor intermediate builds===&lt;br /&gt;
&lt;br /&gt;
You need to apply the cumulative actions recommended (i.e. apply any actions in sequence as listed for each intermediate build). Unfortunately, for Cumulus MX, one cannot assume that minor builds have no one-off actions associated with them.   Luckily, most of the advice above for updating from immediately preceding build still applies.&lt;br /&gt;
&lt;br /&gt;
==Updating to a new major version==&lt;br /&gt;
&lt;br /&gt;
Generally, if the developer decides a new build warrants classification as a major version (i.e. 3.w.0) then the change being implemented is significant enough that updating might be more complex.&lt;br /&gt;
&lt;br /&gt;
=== Examples of what might be classified as a major change===&lt;br /&gt;
&lt;br /&gt;
*Additions to fields in log files (whilst older lines can continue to be read, you might want to consider [https://cumulus.hosiene.co.uk/viewtopic.php?f=18&amp;amp;t=18096 amending your standard data log] by populating the additional derivatives for older lines)&lt;br /&gt;
*Schema changes for database tables (if you don&#039;t use the standard tables, this might be irrelevant to you), the standard insert operations by MX can cope with extra columns in a table, but will fail if any column they try to update is missing&lt;br /&gt;
*Additions, changes, or removals, in configuration file (in general MX will ignore unrecognised parameters, but it does need correct values for those attributes it does recognise), see release announcements to discover if new lines in configuration file need you to add them manually or you need to use the admin interface to select the right setting for you &lt;br /&gt;
*New pages in Administrative Interface (additional pages require menu on every other page to be amended)&lt;br /&gt;
*Changes to existing pages in admin interface that involve changes to associated files (it is vital that all associated files are from same build)&lt;br /&gt;
*Catering for new weather station sensors, or new ways of communicating (this might not seem relevant to you)&lt;br /&gt;
*Any interface functionality changes (it may look the same, but what it does has changed)&lt;br /&gt;
*Additions to files being generated for web server (i.e. changes to template files, or additions to &#039;&#039;web&#039;&#039; or &#039;&#039;webfiles&#039;&#039; folders), even if you use your own versions of such files you may want to check the revisions&lt;br /&gt;
&lt;br /&gt;
=== What you need to read ===&lt;br /&gt;
&lt;br /&gt;
*Basically, check the corresponding release announcements for every version since the one you have been using before planning your upgrade. &lt;br /&gt;
**Make a note of any one-off actions required at particular in-between versions, remember these actions are only in forum release announcements.&lt;br /&gt;
**Although one-off actions will not be described in the Wiki (whether on the [[Software]] page or the [[Cumulus_MX_formal_release_versions]] page), the Wiki can give you an idea of what functionality has been improved to help you decide whether to upgrade.&lt;br /&gt;
*It is still worth reading all the points made above for updating from immediately preceding build.&lt;br /&gt;
&lt;br /&gt;
=== Doing the upgrade===&lt;br /&gt;
&lt;br /&gt;
# Download the release distribution&lt;br /&gt;
# Use &#039;&#039;&#039;control-c&#039;&#039;&#039; (or equivalent for MX running as service) to stop your existing MX software&lt;br /&gt;
# Backup your existing installation&lt;br /&gt;
# Do the on-off actions identified (e.g. changing schema of database tables, adding new configuration &lt;br /&gt;
# Unzip the distribution over existing one (alternative installation options listed later)&lt;br /&gt;
# Restart MX, considering whether to use &#039;&#039;&#039;-debug&#039;&#039;&#039; parameter in case the new release does not work for you&lt;br /&gt;
# Check the latest file in the MXDiags folder after an hour, to see if there have been any problems with reading from station, real-time uploads, standard uploads, or hourly uploads. (You may wish to recheck after an End of Day action has been done).&lt;br /&gt;
&lt;br /&gt;
==Updating from a very old version==&lt;br /&gt;
&lt;br /&gt;
Many people believe if it works, it don&#039;t need fixing. So they install whatever MX version is available when they start using MX and ignore all the bug fixing and new functionality being added, and stick with their existing installation.&lt;br /&gt;
&lt;br /&gt;
Suddenly they realise that perhaps their version does lack functionality that would be useful to them. Maybe their version does not have an editor for correcting rogue extreme records and they realise correcting log files is something that is hard for them to do.&lt;br /&gt;
&lt;br /&gt;
This section is therefore included to give advice on why you should not jump from an old version to the latest directly, but how it can be safely done in stages.&lt;br /&gt;
&lt;br /&gt;
===Recommendations for staged updating===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;This section will need to be updated, new contributors are needed to keep this advice current.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====If using 3.0.0 (the MX original beta)====&lt;br /&gt;
&lt;br /&gt;
Upgrade to 3.5.1 by downloading it at https://github.com/cumulusmx/CumulusMX/releases/tag/b3072.&lt;br /&gt;
&lt;br /&gt;
This gives you essential new functionality in the admin interface like editors for the log files and extreme records. But it also fixes multiple bugs in the beta you were using and adds some useful validation missing in the beta.&lt;br /&gt;
&lt;br /&gt;
It does not involve any updates to the fields in the log files nor to the columns in any database tables you use.&lt;br /&gt;
&lt;br /&gt;
It skips you past the problems in 3.5.0. It gives you benefits introduced in 3.1.x, 3.2.y, 3.3.z, and 3.4.w releases.&lt;br /&gt;
&lt;br /&gt;
Now follow instructions below, for &#039;&#039;If using a 3.5.x release&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====If using either 3.1.x, 3.2.y, 3.3.z, or 3.4.w releases====&lt;br /&gt;
&lt;br /&gt;
As above, update to 3.5.1 by downloading it at [[https://github.com/cumulusmx/CumulusMX/releases/tag/b3072 Mark&#039;s Github respository]]. The actual installation is done using the instructions above for simple next build upgrades. You can safely skip reading the intermediate release announcements, as there are no special one-off actions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you are happy running 3.5.1, then you should continue to upgrade, initially follow instructions in next sub-section.&lt;br /&gt;
&lt;br /&gt;
====If using a 3.5.x release ====&lt;br /&gt;
&lt;br /&gt;
My advice is to upgrade directly to 3.7.0 available at [https://github.com/cumulusmx/CumulusMX/releases Mark&#039;s Github repository].  &lt;br /&gt;
&lt;br /&gt;
You should skip the intermediate releases because several 3.6.y releases have bugs in them, and you want to avoid those problems (the bugs vary in severity between mistakes in calculations done by MX to particular functionality not working).&lt;br /&gt;
&lt;br /&gt;
But there may be additional actions you need to do when moving from 3.5.x to 3.7.y, depending on what features you use in MX:&lt;br /&gt;
*there are no additional actions if &#039;&#039;&#039;you use standard web pages and you do not use database tables&#039;&#039;&#039;, just enjoy the bug fixes and extra features after your update!&lt;br /&gt;
*&#039;&#039;&#039;If you use database tables&#039;&#039;&#039;, be aware that the schema (Column names that must be in a table) varies between 3.5.x versions and 3.7.y versions.&lt;br /&gt;
**The updating database table features in MX will only work if all the columns named in each such upload update &#039;&#039;already exist&#039;&#039; in the database table it is trying to update.&lt;br /&gt;
**Look at individual release announcements for both 3.6.0 and 3.7.0, to see the SQL provided for adding the columns added at particular versions.&lt;br /&gt;
***At 3.6.0 the SQL was provided as a separate attachment to the release announcement (read [https://cumulus.hosiene.co.uk/viewtopic.php?p=142085#p142085 UpdateMYSQL-b3076.zip])&lt;br /&gt;
***At 3.7.0 the SQL was provided as part of the main zip (read [https://cumulus.hosiene.co.uk/viewtopic.php?p=145048#p145048 AlterSQLTables3098.sql])&lt;br /&gt;
***In both cases, the SQL provided assumes you are using the default names for database tables, it does not read [[Cumulus.ini]] to see whether you have selected different names for the tables (unlike ExportMySQL.exe and standard CumulusMX.exe uploads which check what tables names you have selected for updates).&lt;br /&gt;
*&#039;&#039;&#039;If you have your own customised web pages&#039;&#039;&#039;, then there are changes to web tags that might lead to you needing to edit your web pages.&lt;br /&gt;
*&#039;&#039;&#039;If you use commas to separate integer and decimal parts of real numbers&#039;&#039;&#039;, then various releases from 3.6.0 to 3.7.0 add &amp;quot;rc=y&amp;quot; to various web tags, that option will replace the decimal commas you use by decimal points that are required for some script languages (like the JavaScript used by HighCharts), and that makes it easier if you want to customise your web site.&lt;br /&gt;
&lt;br /&gt;
When you are happy with running 3.7.0, then you should continue to upgrade, and the next sub-section describes what to do next.&lt;br /&gt;
&lt;br /&gt;
====if using a 3.7.y release ====&lt;br /&gt;
&lt;br /&gt;
If you are using 3.7.0 (there were no other builds in 3.7.y series), then you should upgrade directly to version 3.9.6 - build 3101.&lt;br /&gt;
&lt;br /&gt;
Only 3.7.0 was ever released, it introduced a lot of changes, so that is why staged upgrades recommend that this version is implemented, and run for a while, before continuing to upgrade.&lt;br /&gt;
&lt;br /&gt;
Version 3.8.0 was a major release, as it introduced the ability to run Cumulus MX as a service. However, there were bugs in the builds in all 3.8.z versions, and in some 3.9.x versions, so that is why you need to skip through intermediate builds below 3101.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039; one-off actions needed:&lt;br /&gt;
* There is a one-off change described in [https://cumulus.hosiene.co.uk/viewtopic.php?p=146957#p146957  v3.9.0 - b3095 release announcement] for those using RG-11 rain sensor. &lt;br /&gt;
* There is a further on-off change described in [https://cumulus.hosiene.co.uk/viewtopic.php?p=147329#p147329 release announcement for Patch release 3.9.1 - b3096] for those who use &#039;&#039;&#039;Mono&#039;&#039;&#039; to enable the executables to run.&lt;br /&gt;
&lt;br /&gt;
When you are happy with running version 3.9.6 build 3101, you can continue to upgrade, and that will be covered in subsequent sub-sections (assuming someone is bothered to keep this article up to date).&lt;br /&gt;
&lt;br /&gt;
====if using either 3.8.x or 3.9.y release====&lt;br /&gt;
&lt;br /&gt;
See previous entry, upgrade directly to 3.9.6, or any later build, within 3.9.x, without any major change.&lt;br /&gt;
&lt;br /&gt;
====From 3.9.y to 3.10.x====&lt;br /&gt;
&lt;br /&gt;
The major aspects that changes at 3.10.1 (3.10.0 was withdrawn) are:&lt;br /&gt;
* Changes to settings&lt;br /&gt;
** You need to open the [[MX Administrative Interface]] and work through all pages in the &#039;&#039;&#039;Settings&#039;&#039;&#039; menu.&lt;br /&gt;
*Changes to web files in &amp;lt;code&amp;gt;CumulusMX/web&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CumulusMX/webfiles&amp;lt;/code&amp;gt; and introduction of &amp;lt;code&amp;gt;CumulusMX/webfiles-legacy&amp;lt;/code&amp;gt;&lt;br /&gt;
**If you used the provided templates to produce web pages in earlier releases, or you had directly customised provided [[Customised templates|web templates]], these will no longer work&lt;br /&gt;
**Please see [[New Default Web Site Information|New Default Web Site Information page]] for further advice &lt;br /&gt;
&lt;br /&gt;
====From 3.10.x to 3.11.y====&lt;br /&gt;
&lt;br /&gt;
Treat like any other major version upgrade as described above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Knowing when a new release is available =&lt;br /&gt;
&lt;br /&gt;
== CREDIT ==&lt;br /&gt;
&lt;br /&gt;
Thanks to &#039;&#039;Billy&#039;&#039; on support forum for suggesting text for this section.&lt;br /&gt;
&lt;br /&gt;
== Using forum notifications ==&lt;br /&gt;
&lt;br /&gt;
As new releases are announced in [https://cumulus.hosiene.co.uk/viewtopic.php?f=40&amp;amp;t=17887 Cumulus MX Announcements and Download - PLEASE READ FIRST] topic, you can use the spanner tool to &#039;&#039;&#039;subscribe&#039;&#039;&#039; to this topic to receive notifications of a new post announcing a new release (or any other release-related announcement).&lt;br /&gt;
&lt;br /&gt;
== MX terminal message ==&lt;br /&gt;
&lt;br /&gt;
If ... &lt;br /&gt;
#...you have a monitor to see the terminal output from the Cumulus MX engine (Windows calls this either a command window, powershell window, or a terminal window depending on how you invoke it, for Unix-based implementations this is the output window when using the terminal functionality), AND&lt;br /&gt;
#...your device running MX is connected to internet, AND&lt;br /&gt;
#...your MONO (if not Windows) is not obsolete (SSL certificate out of date), AND&lt;br /&gt;
#...you restart MX&lt;br /&gt;
... then you will see a prompt when a new version of MX is available.&lt;br /&gt;
&lt;br /&gt;
It is worth stressing that if you leave MX running, then this feature will leave you blissfully unaware that an update is available; it only checks when MX is restarted.&lt;br /&gt;
&lt;br /&gt;
== MXDiags ==&lt;br /&gt;
&lt;br /&gt;
In addition ...&lt;br /&gt;
#...if you can view the MXdiags file for the current session of MX, AND&lt;br /&gt;
#... MX is running with connection to the internet, AND&lt;br /&gt;
#...you restart MX&lt;br /&gt;
... if a new version of MX is available, the MXDiags file will say so (the message is not easy to spot as there is a lot of output before it, and variation in what output appears before it). Anyway, here is one example, just one example as in my experience &#039;&#039;&#039;the message has appeared at different places for each of the recent upgrades&#039;&#039;&#039;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2020-05-27 04:18:48.326 Calculating sunrise and sunset times&lt;br /&gt;
2020-05-27 04:18:48.326 Sunrise: 04:58:11&lt;br /&gt;
2020-05-27 04:18:48.326 Sunset : 21:19:54&lt;br /&gt;
2020-05-27 04:18:48.326 Tomorrow sunrise: 04:57:08&lt;br /&gt;
2020-05-27 04:18:48.326 Tomorrow sunset : 21:21:11&lt;br /&gt;
2020-05-27 04:18:48.388 You are not running the latest version of CumulusMX, build 3080 is available.&lt;br /&gt;
2020-05-27 04:18:48.763 Station type:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is no message in whatever place it can appear ...&lt;br /&gt;
*... if you are using latest version, OR&lt;br /&gt;
* ... if you are not connected to the internet, OR&lt;br /&gt;
*... if you keep MX running all the time!&lt;br /&gt;
&lt;br /&gt;
== Start/Stop script ==&lt;br /&gt;
&lt;br /&gt;
When the &#039;&#039;&#039;Status&#039;&#039;&#039; option of this script is used, whenever a new release of MX is available, it will output a message.&lt;br /&gt;
&lt;br /&gt;
== Dashboard in MX Admin Interface ==&lt;br /&gt;
&lt;br /&gt;
In recent releases, one of the alarm indicators shown at the bottom of the dashboard page of the administrative interface, will flash red when you are not running latest build, and glow green when there is no newer release compared to the one you are running.&lt;br /&gt;
&lt;br /&gt;
== Web Tags ==&lt;br /&gt;
&lt;br /&gt;
Since 3.7.0 release of MX, two relevant web tags have become available:&lt;br /&gt;
* &amp;lt;#NewBuildAvailable&amp;gt; Returns a boolean value&lt;br /&gt;
**  0 - MX running the latest build available&lt;br /&gt;
**  1 - MX is running an earlier build than the latest public release&lt;br /&gt;
* &amp;lt;#NewBuildNumber&amp;gt;  Displays the latest public release build number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Recommended Actions when Updating =&lt;br /&gt;
&lt;br /&gt;
== Back-ups ==&lt;br /&gt;
&lt;br /&gt;
It is always best to take a backup of your existing MX installation before you do an upgrade, this allows you to regress back to the earlier version if either you mess up installing the new version, or the new version has a issue that prevents it working with the versions of other software (like MONO) that your installation uses.&lt;br /&gt;
&lt;br /&gt;
== The two approaches ==&lt;br /&gt;
&lt;br /&gt;
Contributors to this section are named in text.&lt;br /&gt;
&lt;br /&gt;
Some people upgrade by just copying in the files that the release announcement says have changed, others copy in all files from the downloaded zip. The first should only be used with caution, files like &#039;&#039;&#039;CumulusMX.exe.config&#039;&#039;&#039; can change between versions, but not be mentioned in a release announcement, and the developer will have been making edits to files since the previous release, and might forget exactly which files have been edited between releases. Also you may be upgrading from an earlier version and therefore be skipping several intermediate releases. &lt;br /&gt;
&lt;br /&gt;
You may be able to see the dates when files were changed within the zip and therefore be able to decide for yourself if you compare those dates with the previous release you were using if you have kept the download for the version you were using. However, do not assume that only files with later date are needed; in some releases the new build regresses one or more files and so a file with an older date is the correct one to retain.&lt;br /&gt;
&lt;br /&gt;
===The rename old approach===&lt;br /&gt;
&lt;br /&gt;
#The popular approach, recommended by many forum contributors, in many different posts (including at [https://cumulus.hosiene.co.uk/viewtopic.php?p=141763#p141763 this post by Mark Crossley for example] is to rename your current install directory, then unzip the new release, letting it create a new &#039;&#039;&#039;CumulusMX&#039;&#039;&#039; folder (or whatever name you prefer and specify in unzip options). &lt;br /&gt;
#However, you will find that this option is not being recommended any more, because it relies on you knowing which files (see next 2 points) you need to copy back.&lt;br /&gt;
#Copy across &#039;&#039;&#039;Cumulus.ini&#039;&#039;&#039; and (if you use it) &#039;&#039;&#039;string.ini&#039;&#039;&#039; into that new directory, and then copy the contents of the &#039;&#039;&#039;data&#039;&#039;&#039; and &#039;&#039;&#039;Reports&#039;&#039;&#039; directories from your &#039;&#039;current install&#039;&#039; to the new install.  &lt;br /&gt;
#Don&#039;t forget to copy any other set-up files across too. &lt;br /&gt;
#*The advantage (as Mark says) is that you ensure you do use all the files in the new release, and don&#039;t miss out any he may have forgotten to mention in his release announcement.&lt;br /&gt;
#* A key advantage is that you don&#039;t retain files that an old release migt have needed but the new release does not use.&lt;br /&gt;
#*Another advantage (as PaulMy says [https://cumulus.hosiene.co.uk/viewtopic.php?p=140262#p140262 here for example]) is that you retain your old set-up intact and can easily restore it should you have a problem with new release.&lt;br /&gt;
#Various people advise that you don&#039;t delete your old installation for a week or so; as you may notice something from the older version that you haven&#039;t copied across! &lt;br /&gt;
#Check again that you copied across (you may not have all of these files, but if you have them in old installation then you need them in new installation) &#039;&#039;&#039;strings.ini&#039;&#039;&#039;, &#039;&#039;&#039;twitter.txt&#039;&#039;&#039;, &#039;&#039;&#039;Cumulus.ini&#039;&#039;&#039;, and similar files in the same folder level as CumulusMX.exe, as well as all the files in the &#039;&#039;&#039;data&#039;&#039;&#039; and &#039;&#039;&#039;Reports&#039;&#039;&#039; sub-folders. Then, provided you are happy, you can delete the old release when you want to reduce clutter on your storage discs.&lt;br /&gt;
&lt;br /&gt;
===The overwrite approach===&lt;br /&gt;
&lt;br /&gt;
The general advice is that if you want custom pages for the administrative interface, or custom templates to process  to produce your web pages, then these custom files should be given different names (and ideally be placed in different folders) to the standard files included in the release distributions. If you follow this advice, the approach described in this sub-section is the best for you, if you don&#039;t follow this advice, see later section on dealing with customised files.&lt;br /&gt;
&lt;br /&gt;
#* if you have a lot of set-up files, or other custom files, (i.e. files with names that are not part of release), these won&#039;t be overwritten by files in the release distribution, but you do want to keep them; &lt;br /&gt;
#*or if you are downloading on a different computer, or on a different disc, to where you are running MX, it is easiest to keep your MX installation in the same place&lt;br /&gt;
#Note the forum administrator, David, [https://cumulus.hosiene.co.uk/viewtopic.php?p=140355#p140355 (see this post)] recommends this particular approach. &lt;br /&gt;
#After downloading a new release unzip it on the device/disc where you down load it. Next stop your existing Cumulus MX software and take a backup of your existing installation. After that, simply copy the files (optionally only those that have newer dates because they have changed) into the existing MX directory on the device where you run MX.  Then you know all your existing files are there, and your MX can be run as before.&lt;br /&gt;
#The great advantage of this approach, and the reason that it is widely recommended as best, is that you can&#039;t lose any data or configuration files (i.e. files that are not part of the release distribution).&lt;br /&gt;
#Provided you did the backup, &#039;&#039;&#039;the only problem with this approach is that in some releases files are removed from the distribution&#039;&#039;&#039;, yet unless you check carefully, this approach may &#039;&#039;leave files that are no longer required&#039;&#039; in your installation, and it is just possible you might continue to use the obsolete file instead of the intended alternative. Such a non-standard installation is difficult for others to support. So do check through file by file to ensure you only have files in the distribution you have just installed, not any from earlier distributions. The only files that you still want (that are not in distribution) will be those that either configure your system or contain your data in log files.&lt;br /&gt;
#*The updated files can be tracked by their modification date, some will be specified in the release notes (find them on [https://cumulus.hosiene.co.uk/viewtopic.php?f=40&amp;amp;t=17887 this forum]). There is a list indicating what files vary in [[Cumulus_MX_formal_release_versions|this Wiki article]].&lt;br /&gt;
#*In general, especially if updating a major release, it is best to overwrite with all files in zip, whether they are listed as changed or not.  This ensures you have a consistent set of files, and avoids any issues when the developer does not correctly list all the files that have changed, or a file might be regressed to an earlier version and not have a newer date than the file in your previous installation.&lt;br /&gt;
&lt;br /&gt;
====Example: downloading on PC and installing on pi ====&lt;br /&gt;
&lt;br /&gt;
#On your pc: Download zip either from  [[Software]] for latest version or from https://github.com/cumulusmx/CumulusMX/releases for earlier versions.&lt;br /&gt;
#On your pc: Use Filezilla (or similar file transfer program, or it might even be a copy over network depending on way set up) to transfer zip to pi  (e.g. &amp;lt;tt&amp;gt;FileZilla CumulusMXDist3089.zip to /home/pi&amp;lt;/tt&amp;gt;), but remember you might want to install to a different location (perhaps on an external USB drive, or SSD)&lt;br /&gt;
#Control C on pi to stop MX&lt;br /&gt;
#On pi go to directory where zip now is, for example it might be &amp;lt;tt&amp;gt;cd /home/pi&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Unzip the installation over your existing installation, by running on your Raspberry Pi this instruction: &amp;lt;tt&amp;gt;unzip -o CumulusMXDist3089.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Restart MX&lt;br /&gt;
# Remove any files that were needed by earlier releases but release announcement says are not needed by the release you are installing&lt;br /&gt;
&lt;br /&gt;
===The customised approach===&lt;br /&gt;
&lt;br /&gt;
If you edit a file that is included in the release distribution, you should give it a different name (e.g. I have placed an underline in front of original file name for some of the files I edited in the admin interface), and/or place it in a different folder (e.g. I place all the cumulus templates I have created in a folder called &#039;&#039;&#039;cumulus_Templates&#039;&#039;&#039;). If you follow this advice, then you won&#039;t lose your files by following the advice above, regardless of whether you overwrite or not.&lt;br /&gt;
&lt;br /&gt;
If you won&#039;t listen to best practice advice, and have decided to for example modify the provided Cumulus web templates without allocating new names, then installing the whole release distribution will overwrite your edited file(s) with the standard file content provided by the developer. Therefore you need to do a customised approach where you select which files from the distribution to copy into your installation. If you have changed one or more web templates, you might think it safe just to omit the relevant files in the zip within folder &#039;&#039;&#039;web&#039;&#039;&#039;, but some builds change the files in the &#039;&#039;&#039;webfiles&#039;&#039;&#039; folder too, and you need to retain consistency.&lt;br /&gt;
&lt;br /&gt;
==== Updating when files within release might overwrite your own edits ====&lt;br /&gt;
&lt;br /&gt;
To further explain the customised approach, here are some more examples.&lt;br /&gt;
&lt;br /&gt;
===== web site files =====&lt;br /&gt;
&lt;br /&gt;
If you have edited any files that sit on your &#039;&#039;&#039;web site&#039;&#039;&#039;, then these can remain on your web site. However, if those web pages are generated from templates that you expect MX to process and upload for you, you do need to take special action. Maybe you edited a template to give the look you desire, or the content you want (e.g. adding rain this month to this month page, or combining this month and this year page).&lt;br /&gt;
&lt;br /&gt;
The first step is to see if the release notice says that file has been revised, if it has not then it is easy to keep your edited file by not copying in the replacement file from within the zip.  If the release revises any file you previously edited, take a backup of your edited file, before you copy the new file into your folder. You can then use a file comparing tool to see what has changed in the release and what you changed and hopefully manage to merge to a new file that keeps any functionality change in a new release and keeps your customisation. Do think about changing name of the template file, or placing it in a different folder, and using the &#039;&#039;&#039;Extra Files&#039;&#039;&#039; settings. That will make it easier for you next time you do an upgrade to a new MX build.&lt;br /&gt;
&lt;br /&gt;
If you have done major customisation to the standard website then you probably have followed the guidance and stored your new web page templates in a different directory and you use &#039;&#039;&#039;Extra Files&#039;&#039;&#039; to specify where they are, so they cannot be overwritten, and the new MX will still find them. It might be that new web tags have been added since whatever build you were running before, and that you decide to edit your customised template file, but that can be done any time after you install the new MX build.&lt;br /&gt;
&lt;br /&gt;
===== admin interface files =====&lt;br /&gt;
&lt;br /&gt;
If you have done any customisation to the &#039;&#039;&#039;interface&#039;&#039;&#039; (perhaps you don&#039;t like seeing solar in the tables when you don&#039;t measure that) then again you can skip over these files when copying. Hopefully you will have copies of the files that you have customised of the &#039;&#039;interface folder&#039;&#039; so you have ability to copy them back into installation if you do overwrite with the release version.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You do have to be careful&#039;&#039;&#039;, as many releases change the interface in some way, even if the change is not in the file you have customised, it might be in an asociated file, and all the various components of the interface have to work together as a coherent unit. For instance when feels like was added to MX, the api used for sending data from the MX engine to the admin interface was updated. In some releases, a new web page is added to the admin interface, with the consequence that all the navigation menus were adjusted in all web pages. Any HTML page in the admin interface may be edited to refer to a different styling page (so it, and the .css file, must be updated together) or to a different script (so the .HTML, and the .js file, must be updated together).  The settings pages in the admin interface are dependent on the correct pair of json files to define the options or values that appear on that web page, so again all must be consistent.  &lt;br /&gt;
&lt;br /&gt;
To sum up, admin interface files are interdependent, and you cannot always update some, but not all, of the admin interface pages. &lt;br /&gt;
&lt;br /&gt;
Be prepared to go back to the standard file for whatever you customised if something it depends upon has changed, after all you must not lose any vital functionality.&lt;br /&gt;
&lt;br /&gt;
On my site, my own versions of interface files have a &amp;quot;_&amp;quot; (underline character) added to the start of the standard MX file name. This applies to both HTML pages, and JavaScript files that I have edited. I edit the menu items within my edited pages so those all go to my versions where I have a HTML customised page, leaving unchanged the menu items that can still go to a standard MX web page where I don&#039;t have my own version of the .HTML page.  This makes it easy for me to navigate between my pages, as all of them link to my other pages.  If I am on a standard MX page and want to go to one of my customised pages, I select the equivalent standard page, then edit the URL to add the underline and get easily to my page.  This naming means I can always use a standard page instead of my customised page when I need to, and I never miss out on any new features.&lt;br /&gt;
&lt;br /&gt;
== After an upgrade if you use the standard web template files ==&lt;br /&gt;
&lt;br /&gt;
If you do not use the example web template files, provided as standard, with a MX release, the remainder of this section can be ignored.&lt;br /&gt;
&lt;br /&gt;
If you use the third party [[CumulusMX and Cumulus1 UI style Multilingual Websites]] web pages, as maintained by BCJKiwi, follow any instructions in his package as to which of the files in this section are required and any announcements in his forum topic about when such files need to be upgraded.&lt;br /&gt;
&lt;br /&gt;
=== web folder from zip ===&lt;br /&gt;
&lt;br /&gt;
If you do use the example web templates to produce web pages for your web server, and you have copied all files from the release distribution ....&lt;br /&gt;
&lt;br /&gt;
....MX will find any new web template files in your &#039;&#039;&#039;web&#039;&#039;&#039; folder,  MX will process those template files, and upload the web pages produced, &#039;&#039;as before with no further action by you&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== webfiles folder from zip ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;PLEASE COULD SOMEONE USING LATEST MX RELEASE ENSURE THIS IS KEPT UP TO DATE&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You do need a further action, if any files in this folder have been updated.  The updated files must be uploaded to your web site.&lt;br /&gt;
&lt;br /&gt;
This may be easy to forget if you use the standard web templates, because you thought that upload was a one-off and maybe you cannot remember what you did. &lt;br /&gt;
&lt;br /&gt;
Certain third-party web-pages still use files from that folder, if one of the files they use has been updated, then ensure you have a backup of your web site before you upload the updated file, it should work, but it might not, and you might need to regress.&lt;br /&gt;
&lt;br /&gt;
Let me go through the files currently in webfiles folder:&lt;br /&gt;
*&#039;&#039;&#039;weatherstyle.css&#039;&#039;&#039; has not been updated since its last update by Steve Loft in 2009.&lt;br /&gt;
*subfolder &#039;&#039;&#039;images&#039;&#039;&#039; contains 2 pictures that have stayed same since MX launch&lt;br /&gt;
*subfolder &#039;&#039;&#039;js&#039;&#039;&#039; contains one file or two files (depending on which MX release you are using: &lt;br /&gt;
**The standard web page &#039;&#039;&#039;trends.htm&#039;&#039;&#039; will only work if the correct version of any file here has been uploaded to your web site, and placed in a sub-folder &amp;quot;js&amp;quot; of where &amp;quot;trends.htm&amp;quot; is installed. .&lt;br /&gt;
*** BCJKiwi&#039;s user interface &#039;&#039;&#039;charts.php&#039;&#039;&#039; also requires the same JavaScript file (or files?), so upload the file(s0 anytime there is a change in a MX release. &lt;br /&gt;
** The file &#039;&#039;&#039;\CumulusMX\webfiles\js\cumuluscharts.js&#039;&#039;&#039; has changed in a lot of releases, it is updated whenever there is a change in the JSON files used for providing data to the charts, and you must use the right upgrade.&lt;br /&gt;
** The file &#039;&#039;&#039;historiccharts.js&#039;&#039; (it was introduced from release 3.8.7) is similar to previous script, but drives the historic chart functionality on your web server&lt;br /&gt;
*subfolder &#039;&#039;&#039;lib&#039;&#039;&#039; currently contains 3 folders:&lt;br /&gt;
**&#039;&#039;&#039;highstock&#039;&#039;&#039; - this folder is no longer needed on your web site (and the most recent MX releases have emptied it)&lt;br /&gt;
**&#039;&#039;&#039;jquery&#039;&#039;&#039; - this folder is needed for &amp;quot;trends,htm&amp;quot; to work, but it has not been updated since 2014. Both the files included are obsolete packages, no longer officially available, and there are no plans to replace them.&lt;br /&gt;
**&#039;&#039;&#039;steelseries&#039;&#039;&#039; - this folder has 3 sub-folders, I can only think of 2 MX releases when anything was changed here, and I don&#039;t anticipate any further changes.&lt;br /&gt;
&lt;br /&gt;
= After upgrade - checking for bugs in MX or mistakes in your installation =&lt;br /&gt;
&lt;br /&gt;
Start the new installation of MX and watch out for any errors - If the device you run MX on has a monitor, then look in the terminal/command window. In all cases look at the latest file in the [[MXdiags_folder|MXdiags folder]] to see if any errors are reported. &lt;br /&gt;
&lt;br /&gt;
In newer releases of MX, also see [[ServiceConsoleLog.txt]]&lt;br /&gt;
&lt;br /&gt;
Also keep an eye on the support forum for first few days, some releases do have bugs, as developer cannot test all possible configurations.&lt;br /&gt;
&lt;br /&gt;
== Updating if you use a virus Checker ==&lt;br /&gt;
You may find that virus checkers such as Windows Defender reject your new version of MX. They need to be told it is safe.&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=MX_on_Linux&amp;diff=7739</id>
		<title>MX on Linux</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=MX_on_Linux&amp;diff=7739"/>
		<updated>2021-01-31T18:22:43Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Which Raspberry Pi to buy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Cumulus MX]]&lt;br /&gt;
=Using MX on UNIX-derived Operating Systems=&lt;br /&gt;
&lt;br /&gt;
MX runs on various UNIX-derived operating systems (OS), including those found on Apple Mac computers, and those found on devices running Linux.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: LemonChiffon;padding:5px; margin:2px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Crystal Clear info.png|40px]] This document is &#039;Work In Progress&#039; so content may not be complete or accurate!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==This article focuses on a computer called the Raspberry Pi==  &lt;br /&gt;
&lt;br /&gt;
Although the article focusses on one computer type, the Raspberry Pi, the idea is that this article will complement another article [[Moving from Cumulus 1 to MX|Running Cumulus MX on Windows]], so feel free to add more to this article to explain how it can be applied to another Unix-derived devices.&lt;br /&gt;
&lt;br /&gt;
In the Cumulus support forum, there are many posts from people who are struggling with using Windows PCs, and it seems a lot of them find &amp;quot;installing&amp;quot; MX difficult.&lt;br /&gt;
&lt;br /&gt;
The same forum reveals few posts from people struggling with setting up the Raspberry Pi, and several posts reporting success with using MX on this small computer.&lt;br /&gt;
&lt;br /&gt;
==Précis==&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
*The Raspberry Pi is a simple computer that is far easier to learn than a complicated machine like a Personal Computer (PC) running Windows.&lt;br /&gt;
*You can choose either to install the Windows operating system on your Raspberry Pi or to install the simpler Raspberry Pi operating system (based on debian Linux).&lt;br /&gt;
**This article focusses on the latter as another article covers Windows.&lt;br /&gt;
**You don&#039;t need to learn much Linux, but this article does cover some commands.&lt;br /&gt;
*The Raspberry Pi is ideal to run Cumulus MX&lt;br /&gt;
**The Raspberry Pi is a computer that is better for the environment, unlike a PC manufactured with lot of components, and a PC wastes a lot of electricity if left running.&lt;br /&gt;
**Downloading the release distribution, and unzipping the files, is the same on any device&lt;br /&gt;
**On Linux you need to (simply) manually install one extra component (Mono-complete), while the equivalent component (.NET) is automatically installed on Windows.&lt;br /&gt;
**Running MX is same on any device (precise command syntax to start it varies, but what MX does when running does not depend on device)&lt;br /&gt;
*It is simplest to connect keyboard and monitor to the Raspberry Pi so all actions are done directly on it.&lt;br /&gt;
*Some optional topics are also covered.&lt;br /&gt;
**One option covered is adding a web server and a database server&lt;br /&gt;
**Another option discussed is using a PC to control a &amp;quot;headless&amp;quot; Raspberry Pi (i.e. one without keyboard and without monitor).&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is a small board of electronics that can actually run Windows, Mac OS, Chrome OS, various Linux distributions, or the Raspberry Pi OS (based on Ubantu Linux). &lt;br /&gt;
&lt;br /&gt;
In this article, the focus is on the last OS, because that is easiest to install, so look elsewhere on the web for details of installing alternatives. The notes here will generally apply to any version of Linux, although the configuration editor described is only on the Pi. &lt;br /&gt;
&lt;br /&gt;
The Apple Mac runs its own version of Unix, and while standard Unix uses Line_Feed to terminate lines in files, the Mac uses Carriage_Return.  Hopefully someone will write an article about the Mac in this Wiki, but in meantime this is closest you can get.&lt;br /&gt;
&lt;br /&gt;
The article will give you some guidance on:&lt;br /&gt;
*Choosing a Pi model to buy&lt;br /&gt;
*Setting up a Raspberry Pi,&lt;br /&gt;
*Installing OS (the NOOBS described here can install various OS, you choose which one you want)&lt;br /&gt;
*Installing Mono (needed on any Linux based OS, but can even run on Windows!)&lt;br /&gt;
*Installing MX&lt;br /&gt;
*Running MX (these notes apply to any Linux OS, but some hints need consideration even in Windows)&lt;br /&gt;
&lt;br /&gt;
It also covers some optional extras!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Which Raspberry Pi to buy=&lt;br /&gt;
&lt;br /&gt;
A standard desktop computer consumes at least 200 Watts of power (that is when it is idle, it will increase depending on peripherals attached and any processing being done) all the time it is switched on. A Pi Zero W consumes half a Watt when idle, and up to 1.78 W when running tasks or connected to peripherals. A Pi model 4 B (the latest model at time of writing) consumes 2.85 to 80 W depending on whether it is idle or working hard. Although Cumulus MX does not need to run 24/7, derived values like highest, lowest, average, and so on, will be more accurately calculated if MX is left running. Although the Pi is not the only small computer model available, it is probably the most popular and the easiest one to use if you do want to run MX all the time and not wreck the planet!&lt;br /&gt;
&lt;br /&gt;
If you do a search on the support forum, you will find a lot of different opinions about which model you should buy, but in the end you decide! The following sections contain just suggestions on how to decide, there is no intention to force any single decision. This article focusses on those who buy a Raspberry Pi as a small computer, who might want to use it for other tasks like word processing, and for novices who feel happier to connect a screen and keyboard. This article is less useful if you want to own 2 computers and run your Pi headless by sending commands from your other computer, see [[Raspberry Pi Image]] article instead.&lt;br /&gt;
&lt;br /&gt;
==First make a list of what you need==&lt;br /&gt;
&lt;br /&gt;
*Do you want to use a mouse and key board so that you can use your Raspberry Pi as a computer for tasks like browsing the web and word processing, not just for CumulusMX?&lt;br /&gt;
** If so, a model with multiple USB sockets is advisable (like 3 B+ or 4)&lt;br /&gt;
** This also applies if you want to be able to plug in a USB stick (perhaps for holding/transferring files between devices, e.g. Cumulus configuration and data folder files; this will save wear on the micro-SD disc)&lt;br /&gt;
*Do you want a wired connection to your hub or router?&lt;br /&gt;
** Maybe you are going to update external sites, a wired connection may provide a faster and more dependable communication than a wireless link&lt;br /&gt;
** If so, a model including an Ethernet socket is advisable (like 3 B+ or 4)&lt;br /&gt;
** You can add a USB hub and Ethernet dongle to model Zero, but by the time you have done so would have been better to start with a 3 B+ or 4)&lt;br /&gt;
** Remember that if you are operating the pi in headless mode, a wired or wireless connection to your LAN is needed for your other device to communicate with the Pi&lt;br /&gt;
*Will your MX need to update a database, feed data to a web site, upload to external sites, or control other devices?&lt;br /&gt;
** If so, a model ZeroW will have to do each task in turn, and you will see some delay in information updates, plus you will need to use a larger time between updates&lt;br /&gt;
** If so, a model 3 B+ (or 4) will be noticeably faster, and support all options in MX, and can update external sites more frequently&lt;br /&gt;
* What interface does your weather station use?&lt;br /&gt;
** If your station communicates to MX via wireless, then you choose a model that supports wireless at the right frequency, all models support basic wireless&lt;br /&gt;
** If your station communicates via Ethernet, then either a wired, or wireless, connection is possible between router/hub and Pi as the station will be plugged into your hub or router&lt;br /&gt;
** If your station communicates to MX via USB, then choose between the model 0W with one USB socket, and the model 3 B+ with 4 USB sockets depending on whether you might want to use another USB socket ever&lt;br /&gt;
** If your station uses another communication port (such as serial interface), then you need the additional components that support that interface&lt;br /&gt;
&lt;br /&gt;
== Now research how the various models relate to your needs ==&lt;br /&gt;
&lt;br /&gt;
You can look up online what features are included in the various Pi models, and how they differ in power consumption, and cost. But your decision also needs to consider what you need. Here, I won&#039;t describe all the different models, but concentrate on just 2 (Pi Zero W and 3 B+) for simplicity. However, note that 3 B+ costs only pennies less than the much-more-powerful Model 4; it is probably about to become obsolete [Jan 2021]. Model 4 has all the same advantages as described for Model 3 B+, except that it may use more power.&lt;br /&gt;
&lt;br /&gt;
The model Zero W is appealing as it has very low power consumption, it is perfectly adequate for running MX (but has limited speed, it runs the various threads MX uses sequentially) especially if you only use standard MX functionality and don&#039;t ask MX to do all the optional extras, and has limited interfaces for wired peripherals. &lt;br /&gt;
&lt;br /&gt;
The model 3 B+ is appealing as it has medium power consumption, but can cope better with the multiple threads that MX starts, and has more physical interfaces built in, such as 4 USB 2.0 ports (useful if you want to connect a weather station using USB and connect a keyboard). &lt;br /&gt;
&lt;br /&gt;
While both models support WiFi and Bluetooth, the latter model also allows a wired Ethernet connection, and that may be useful if that is how you connect to your weather station (an  Ethernet connection is also advisable if your WiFi connection is not so good).  Having an Ethernet connection, as explained later, makes it possible to easily install the Windows Operating System on your Raspberry Pi on first boot.&lt;br /&gt;
&lt;br /&gt;
* Raspberry Pi Zero W&lt;br /&gt;
** Pi Zero W has WiFi, one micro USB port and an HDMI output. Because it has WiFi, it is good for headless running, and this leaves the micro USB port free to connect a USB weather station.&lt;br /&gt;
** If you need more physical connections than that&lt;br /&gt;
** Installing onto a faster Pi might speed parts of the installation process, but for actual ‘production’ running this slower, and simpler, Pi will be perfectly adequate.&lt;br /&gt;
** It could run a web server, but that might really slow it down.&lt;br /&gt;
** If you run this headless, all updates are done remotely, for example using an SSH terminal program like PuTTY and a file transfer program like FileZilla on your PC.&lt;br /&gt;
&lt;br /&gt;
* Raspberry Pi 3 B+ (or 4 B; considerations are very similar)&lt;br /&gt;
**  The faster speed of this Pi although NOT necessary for running Cumulus MX, will cope better if you are asking MX to do lots of processing (e.g. updating database tables or external sites as well as standard processing).&lt;br /&gt;
** Pi 3 B+ has a socket for an external power supply, Ethernet socket (supports wired link); a HDMI socket for audio/video to TV, or computer monitor; a standard jack audio socket for external headphone, or speaker; 4 standard USB type 2 sockets for weather station, mouse, keyboard, USB stick, or other storage device; plus other connections (e.g. camera).&lt;br /&gt;
** This might be better if you also want to run a web server, and if you want to do other tasks (e.g. word processing - &#039;&#039;&#039;Libre Office&#039;&#039;&#039; is installed as standard on a Pi) on the same Pi.&lt;br /&gt;
** Also consider this model if it is to be used on a remote site so when you visit it is useful to be able to plug in other peripherals, and to spend as little time on updating as possible.&lt;br /&gt;
&lt;br /&gt;
Other models are available, but you need to check their specification against your needs. For example, the current model 4 B has more capabilities, but may be less appealing as it also consumes more power.&lt;br /&gt;
&lt;br /&gt;
== What else to buy ==&lt;br /&gt;
&lt;br /&gt;
You can buy just the Pi, which is just a circuit board, or a kit that includes other components. &lt;br /&gt;
&lt;br /&gt;
Generally buying as a kit is cheaper than buying items individually.  A typical kit includes the Pi board with components and interfaces on it, a power supply (with a plug suitable for your mains sockets), a micro-SD card (see later sub-section), some connection leads, and a case that you can fit the board into to protect it.&lt;br /&gt;
&lt;br /&gt;
You may want to buy a case, that will protect your Pi from accidental damage.  A case specifically designed for your Pi model will have cut-outs in the right place for each interface connection, and will have sufficient ventilation for the electrical components to not over-heat. Some designs have additional holes for securing peripherals.&lt;br /&gt;
&lt;br /&gt;
You may need to buy a power supply. &lt;br /&gt;
* This could be an official Raspberry Pi power supply. &lt;br /&gt;
* Alternatively, other power supply units that have a micro USB connector will often suffice, as the power consumption of a Pi (whichever model) is fairly small, but it will be powered on 24/7, so a low power consumption ‘switched mode’ type is preferred – i.e. one that does not become warm when plugged in with nothing attached. &lt;br /&gt;
** You may have a suitable one left over from an earlier mobile phone. &lt;br /&gt;
** A Pi 3 B+ running other tasks may require a more powerful power supply. &lt;br /&gt;
** A Pi 4 needs more power and has a USB C connector.&lt;br /&gt;
&lt;br /&gt;
You may need to buy connection leads:  &lt;br /&gt;
* You may need a HDMI lead to connect your PI to your TV or a spare computer monitor. &lt;br /&gt;
* You may need a USB lead to connect to your weather station (the Pi model Zero requires a micro USB, the Pi model 3 requires a standard A end USB) and your station probably has a USB A end connection. &lt;br /&gt;
* If your weather station connects by Ethernet, you will need one lead to connect the station to the router and possibly another to connect the hub or router to the Pi.&lt;br /&gt;
&lt;br /&gt;
If you do choose a model 3 (or later), consider whether you do want to buy a USB mouse and USB keyboard to use with it.&lt;br /&gt;
 &lt;br /&gt;
Finally, you may wish to buy a second micro-SD unit as a spare, or some other USB connected (or network connected) storage for back-ups and extra storage needs.&lt;br /&gt;
&lt;br /&gt;
= Setting up your Pi =&lt;br /&gt;
&lt;br /&gt;
== Image alternative ==&lt;br /&gt;
&lt;br /&gt;
If you are never going to use a keyboard nor TV (or other monitor) with your Raspberry Pi, there is now an alternative to installing operating system, mono, and MX separately, a single &#039;&#039;&#039;image&#039;&#039;&#039; that contains all elements needed can be downloaded from the [[Software#Current_Release|Software page Current_Release section]], read about using it in [[Raspberry_Pi_Image]] article. I will just stress here, that following this alternative option, provided by developer, installs the &#039;&#039;&#039;Raspberry Pi Lite Operating System&#039;&#039;&#039;. Also with this option if you are migrating from another computer you still need to add [[Cumulus.ini]], [[strings.ini]], all files in [[:Category:Log Files|data folder]], and any files in the Reports folder by file transfer from your other device to the Pi.&lt;br /&gt;
&lt;br /&gt;
== Doing it manually ==&lt;br /&gt;
&lt;br /&gt;
You can find, online, instructions (and videos) about setting up a Pi, these describe all the necessary steps that are described below from buying a suitable micro-SD card, through installing the operating system, and adding additional software. If you use a search engine, then you can find a variety of different sets of instructions, including some that are very simple but basic; and others that are a little more complex so they can explain any options!&lt;br /&gt;
*The obvious place to look is [https://www.raspberrypi.org/documentation/setup/ the manufacturer&#039;s web site], the manufacturer actually also publishes the same documentation on [https://github.com/raspberrypi/documentation/blob/master/setup/README.md their github page]. &lt;br /&gt;
*If you have brought your Pi from a distributor, their web site (e.g. [http://www.okdo.com/gettingstarted &#039;getting started&#039; instructions provided by this distributor]) might have simple instructions tailored to their product,&lt;br /&gt;
* or you can find the details at many general forum type sites with &amp;quot;how to&amp;quot; advice. &lt;br /&gt;
&lt;br /&gt;
In this article, each step in installation is covered, in the sections that follow.  Obviously, this article is trying to balance the needs of a novice with the needs of someone who wants to plug holes in their existing knowledge, that need to be comprehensive means it might not seemed to be aimed exactly at what you need.  &#039;&#039;Anyone who feels able to improve this article is welcome to edit it&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Micro-SD card ===&lt;br /&gt;
&lt;br /&gt;
You will need a micro-SD card (preferably class 10, the class number indicates the relative speed of read/write compared to original design, so this class is 10 times faster).&lt;br /&gt;
&lt;br /&gt;
#A Pi will work with either a class 4 (only 4 times faster), or a class 10, micro-SD card. &lt;br /&gt;
#Just for the standard install you need a card with a &#039;&#039;&#039;minimum of 8 GB&#039;&#039;&#039;. &lt;br /&gt;
#Given we are going to add Mono and Cumulus MX to the card, I advise you buy a card with at least 16 GB (as the default operating system installation takes up almost half of that),&lt;br /&gt;
#* but you might prefer to buy a 32 GB or 64 GB (or add an external USB drive or USB memory stick) if you intend to keep a lot of data on the Pi.&lt;br /&gt;
&lt;br /&gt;
I won&#039;t mention manufacturer names here, but one well known brand (that uses descriptions like extreme) is the market leader, and does have greater reliability than cheaper cards from other manufacturers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Setting up a Pi is simpler&#039;&#039; &#039;&#039;&#039;if you buy a micro-SD card that is&#039;&#039;&#039;:&lt;br /&gt;
* either pre-installed with [https://github.com/raspberrypi/documentation/blob/master/installation/noobs.md NOOBS (Novel Out of Box Software)], &lt;br /&gt;
* or pre-installed with the Raspberry Pi operating system.&lt;br /&gt;
&lt;br /&gt;
NOOBS makes it easy to install (by default) Raspberry Pi operating system, as if you insert such a micro-SD card into a new Raspberry Pi computer, when you power up the Pi, the operating system will be installed during that first boot. If you have a Raspberry Pi model with an Ethernet connection, and you connect your Pi to your hub/router before you first switch it on, then at that first boot, NOOBS will offer you a choice of several operating systems, with Raspberry Pi as first choice.&lt;br /&gt;
&lt;br /&gt;
Various suppliers offer cards of 16 to 64 GB with NOOBS pre-installed ready for use in a Pi (I bought from a firm in Haverhill, Suffolk, UK). &lt;br /&gt;
&lt;br /&gt;
My advice is to buy your micro-SD card from a firm that specialises in selling Raspberry Pi computers and accessories. That should ensure you buy a card with the latest version of NOOBS (or Raspberry Pi Operating System) and that will make your life simpler than buying a blank micro-SD card and having to down load and add the operating system yourself.&lt;br /&gt;
&lt;br /&gt;
If you want to be able to use the micro-SD card in other devices (like your PC), you may need to also buy an adapter which allows the micro-SD card to be plugged into a standard SD socket. This may be included if you buy a micro-SD card not sold specifically for the Pi, or may be available with the Pi micro-SD under a special offer for buying two items together.&lt;br /&gt;
&lt;br /&gt;
=== The Operating System ===&lt;br /&gt;
&lt;br /&gt;
As said before, a number of operating systems can be installed on your Pi, even Windows.  &lt;br /&gt;
&lt;br /&gt;
To keep this article simple, I will assume you have bought a micro-SD card either pre-installed with an operating system (OS) so you are ready to go, or you used NOOBS (as described earlier) to install your chosen OS.&lt;br /&gt;
&lt;br /&gt;
If you do need to install any operating system you choose, normally the instructions will be found from where you download the system you have selected. If you have brought a card without NOOBS, you can download/install the Raspberry Operating System Buster yourself, following either instructions on the [https://www.raspberrypi.org/downloads/ Raspberry Pi download page], those at [https://thepihut.com/blogs/raspberry-pi-tutorials/the-raspberry-pi-tutorial-beginners-guide this supplier&#039;s tutorial guide], or [https://cumulus.hosiene.co.uk/viewtopic.php?p=139422#p139422 those in Cumulus support forum]. To save you looking any of those up, the next sub-section summarises what you need to do.&lt;br /&gt;
&lt;br /&gt;
==== How to add Raspberry Operating System to a card yourself ====&lt;br /&gt;
&lt;br /&gt;
*Decide whether you want &lt;br /&gt;
**the full version of the operating system that supports a graphical user interface (choose this if you want to connect a TV or other monitor to your Raspberry Pi), &lt;br /&gt;
**or the &#039;&#039;lite&#039;&#039; version of the operating system that only supports SSH or terminal mode (choose this if you will operate headless - explained at end of this article)&lt;br /&gt;
*Download the latest version of the Raspberry Pi operating system you have selected from https://www.raspberrypi.org/downloads. &lt;br /&gt;
*That imager is run on any device, say your pc, and then you select &#039;&#039;&#039;write&#039;&#039;&#039; to save it onto the micro-SD card (don&#039;t forget this overwrites anything already on the card). &lt;br /&gt;
*This should work without a need to format the card first, (but if you do need to format it, do so using a SD card formatter downloaded from https://www.sdcard.org/downloads/formatter_4/index.html, &#039;&#039;&#039;not&#039;&#039;&#039; for example Windows format tool). &lt;br /&gt;
*After this image has been stored it will have created two (or three) partitions on the micro-SD card (one the boot partition is a FAT partition that can be accessed by Windows, the larger Linux partition is invisible to Windows, the optional third partition uses up any space left on a larger micro-SD card and appears as &amp;quot;data&amp;quot; under &amp;quot;media&amp;quot; in the Linux file structure).&lt;br /&gt;
&lt;br /&gt;
==== Is the operating system obsolete or up to date?====&lt;br /&gt;
&lt;br /&gt;
It is important that your Raspberry Pi (or other device) has the latest operating system version installed.  If the Operating System installed is an obsolete one, then each package it includes (e.g. Libre Office), and each package you add (e.g. Mono or PHP), will also be obsolete versions. In the worst case scenario, any attempt to install a package might fail giving an error message that the relevant Raspberry Pi repository is archived.&lt;br /&gt;
&lt;br /&gt;
If you have a micro-SD card pre-installed with NOOBS, as described above, the first boot will install the operating system. It is the version of NOOBS that is included on the card that determines which Raspberry Pi Operating System version is set up:&lt;br /&gt;
*Wheezy (7) released in 2013&lt;br /&gt;
*Jessie (8) dating from 2015&lt;br /&gt;
*Stretch (9) released in 2017 (up to this called Raspbian Operating System)&lt;br /&gt;
*Buster (10) available from 2019 (the first to be called Raspberry Pi Operating System)&lt;br /&gt;
*Bullseye (11) under test in 2020&lt;br /&gt;
&lt;br /&gt;
Be aware that many such pre-loaded and pre-formatted cards include an obsolete version of NOOBS. &lt;br /&gt;
*You may find your card installs the obsolete Raspbian Jessie (version 8 of Debian from 2015), &lt;br /&gt;
*a few install the old Raspbian Stretch (Version 9 of Debian, dating from 2017), &lt;br /&gt;
*a good supplier sells a card that installs latest Raspberry Operating System Buster (Version 10 of Debian, released in 2019). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Wireless Network ===&lt;br /&gt;
&lt;br /&gt;
How this is set up depends on your Pi model, and the operating system that is loaded on it, &lt;br /&gt;
*it may on first boot ask you to enter your wireless network details, &lt;br /&gt;
*it may list the wireless networks it finds and ask you to choose from the listed SSID, &lt;br /&gt;
*it might not prompt you so you need to use the configuration tool (see next sub-section), &lt;br /&gt;
*or you might need to click on an icon with two red crosses.&lt;br /&gt;
&lt;br /&gt;
Note that there is also a Wi-Fi network country which must be set.&lt;br /&gt;
&lt;br /&gt;
If you have had to enter wireless details into a mobile phone, you will realise what is needed:&lt;br /&gt;
*The &#039;&#039;Service Set IDentifier&#039;&#039; (SSID) is the name that is used for your wireless network.&lt;br /&gt;
**As mentioned above, you may see a list of those that have been found.  &lt;br /&gt;
**You may have typed this into your mobile phone. &lt;br /&gt;
**It may be shown on a card that slips into a slot on your hub or router (you may have changed it from that initial setting). &lt;br /&gt;
**It can be up to 32 characters (letters, numbers, and symbols. &lt;br /&gt;
**Some routers come with a default SSID that is the manufacturer&#039;s name, if left unchanged it might conflict with a neighbour, so it is left to you to pick a SSID that is unique to you using up to 32 characters to personalise it. &lt;br /&gt;
*You also need to enter whatever Pre-Shared-Key (password) is used for your wireless network. &lt;br /&gt;
**You will have typed this into your mobile phone, so that can automatically connect to your network. &lt;br /&gt;
**You should have changed it (for security reasons) from whatever was shown as the initial password on the card that slips into a slot on your hub or router (possibly all you have done is add a prefix or suffix that means something to you).&lt;br /&gt;
*Most wireless networks will use Wi-Fi Protected Access (WPA) or (from 2006) Wi-Fi Protected Access II (WPA2) protocols, so &#039;&#039;&#039;WPA-PSK&#039;&#039;&#039; is correct for you. &lt;br /&gt;
**Note that your Pi is only able to use these protocols. &lt;br /&gt;
**The earlier Wired Equivalent Privacy (WEP) was officially withdrawn in 2004 as too easy to crack, so it is not supported on a new Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other configuration ===&lt;br /&gt;
&lt;br /&gt;
There are various other configurations you need to do on your PI.  &lt;br /&gt;
You need to use the raspbian configuration tool &#039;&#039;&#039;raspi-config&#039;&#039;&#039;,&lt;br /&gt;
*this can be accessed on your Pi either in a Graphical User Interface (GUI), &lt;br /&gt;
*or by running a command &amp;lt;tt&amp;gt;sudo raspi-config&amp;lt;/tt&amp;gt; in Terminal.&lt;br /&gt;
&lt;br /&gt;
==== Mandatory configurations ====&lt;br /&gt;
&lt;br /&gt;
Within the Raspberian configuration utility, you will see an option to change password. You will want to do this so nobody can hack into your Raspberry Pi computer.  You will need to enter the new password twice before it replaces the old one.&lt;br /&gt;
&lt;br /&gt;
The default network (host) name for your Pi is &#039;&#039;&#039;raspberrypi&#039;&#039;&#039;, obviously we need to replace that as well with a name that personalises it to you and does not make it easy for a hacker to know what device is represented by that network name. &lt;br /&gt;
*The name can most easily be changed within the Raspberian configuration utility, you will see a &#039;&#039;&#039;Network Options&#039;&#039;&#039; option, it is there that you change the network name.&lt;br /&gt;
*but it can also be edited by opening the file where it is stored using &amp;lt;tt&amp;gt;sudo nano /etc/hostname&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Network options can also be configured by clicking an icon on the Pi (this icon might be two red crosses if network settings are missing, two parallel arrows if the network settings are not correctly set, or the wireless symbol if your wireless network is working). &lt;br /&gt;
&lt;br /&gt;
==== Recommended configurations ====&lt;br /&gt;
&lt;br /&gt;
The default &#039;&#039;&#039;locale&#039;&#039;&#039; for a Pi is normally &#039;&#039;&#039;en_GB.UTF-8&#039;&#039;&#039;, as they are designed by a company based in UK. Within the configuration option, you can add additional locales (in most cases there is a UTF-8 option which is preferred and at least one other encoding), there are also a number of special alternative locales, but I am not going to explain all the options, look it up if the default locale is not acceptable.&lt;br /&gt;
*Whatever locale you use, if you have already been using Cumulus (1 or MX), you need to ensure the locale matches the one used for your log files. The versions of MX released from the middle of 2020 onwards are very fussy that all dates use the same delimiter (see [[Cumulus_MX_formal_release_versions]]), so you need to check the chosen locale continues to use the same date separator as before. The locale is affected by the version of Mono you install and whether you use the locale parameter when starting MX, so I cannot cover all options. &lt;br /&gt;
*Anyway, the default locale is fine if you are in the UK, you use decimal points for real numbers, you use commas for list separators, and you don&#039;t have dates with month first!&lt;br /&gt;
*To change the locale, enter &#039;&#039;&#039;Localisation Options&#039;&#039;&#039;.   &lt;br /&gt;
&lt;br /&gt;
In the same option area, there are &#039;&#039;&#039;some more options&#039;&#039;&#039;:&lt;br /&gt;
# Change Time-zone, by default UTC is used all year round. In the UK if your Cumulus MX is set to roll over at 10am in summer, you will wish to change the time-zone to UK time, because MX uses system time for many of its actions.&lt;br /&gt;
# Change Keyboard Layout if needed, keyboards can support different numbers of characters, and can have different currency symbols, so select whatever is relevant to you&lt;br /&gt;
&lt;br /&gt;
====To leave configuration====&lt;br /&gt;
&lt;br /&gt;
Select ‘Finish’.&lt;br /&gt;
&lt;br /&gt;
== Installing Mono ==&lt;br /&gt;
&lt;br /&gt;
Sponsored by Microsoft, Mono is an open source implementation of Microsoft&#039;s .NET Framework based on the ECMA standards for C# and the Common Language Runtime. &lt;br /&gt;
&lt;br /&gt;
=== Preparing for Mono installation ===&lt;br /&gt;
&lt;br /&gt;
Quite often when we try to install, or update, packages on our Pi we will see messages about dependencies, and in some cases error messages saying the installation has failed or been aborted. Before we can install Mono, there are other packages required and these vary depending upon the Raspberry operating system version we have installed, see [https://www.mono-project.com/download/stable/#download-lin-raspbian Mono download instructions for Raspberry Pi]. Here are the latest 2 options when this article was updated (if your Mono installation fails, then you selected wrong one):&lt;br /&gt;
&lt;br /&gt;
For Raspberry Operating System 9 (stretch):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install apt-transport-https dirmngr gnupg ca-certificates&lt;br /&gt;
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF&lt;br /&gt;
echo &amp;quot;deb https://download.mono-project.com/repo/debian stable-raspbianstretch main&amp;quot; | sudo tee /etc/apt/sources.list.d/mono-official-stable.list&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Raspberry Operating System 10 (buster):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install apt-transport-https dirmngr gnupg ca-certificates&lt;br /&gt;
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF&lt;br /&gt;
echo &amp;quot;deb https://download.mono-project.com/repo/debian stable-raspbianbuster main&amp;quot; | sudo tee /etc/apt/sources.list.d/mono-official-stable.list&lt;br /&gt;
sudo apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Checking all packages are up to date ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Either&#039;&#039;&#039; type:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;or&#039;&#039;&#039; to insert in single line type instead &amp;lt;tt&amp;gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Installing instruction ===&lt;br /&gt;
&lt;br /&gt;
With all the pre-requisites correct as in previous steps, you can install mono package by simply typing &amp;lt;tt&amp;gt;sudo apt-get install -y mono-complete&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
It is important to note that MX requires the &#039;&#039;complete&#039;&#039; edition of mono as there is also a cut-down developer edition of Mono that can be downloaded/installed. &lt;br /&gt;
&lt;br /&gt;
The &amp;quot;sudo&amp;quot; part of this gives us rights, &amp;quot;apt-get&amp;quot; is one of the ways to search the Raspberry repository for applications, &amp;quot;install&amp;quot; is the action we want to do, and &amp;quot;mono-complete&amp;quot; is the package we want.&lt;br /&gt;
&lt;br /&gt;
=== Completing Package Installation ===&lt;br /&gt;
&lt;br /&gt;
As the Pi does not know exactly which components are needed when multiple packages are installed with various dependencies, sometimes extra components are installed which in the end are not needed when you complete all your installations. &lt;br /&gt;
&lt;br /&gt;
To clear up, delete any components that are not included in dependencies by typing &amp;lt;tt&amp;gt;sudo apt autoremove&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Downloading and Unzipping MX Distribution ==&lt;br /&gt;
&lt;br /&gt;
For simplicity, MX is installed into standard Pi user&#039;s home directory here.  You might instead choose to install it on an external drive which has two significant advantages:&lt;br /&gt;
#there are certain files within MX that are updated very frequently, such constant rewriting can lead to a shorter life for your micro-SD card, by using an external drive for MX, MX files are less likely to be lost, and you are less likely to lose your operating system off your micro-SD card&lt;br /&gt;
#if you accidentally were to corrupt a critical file on your Raspberry Pi, you would need to rebuild the operating system image, and that deletes all existing files on the micro-SD card, including any related to MX, and you don&#039;t want to lose your precious data&lt;br /&gt;
&lt;br /&gt;
Both the optional &amp;quot;data&amp;quot; directory created by NOOBS and any external drive appear within &amp;quot;/media/&amp;quot; in the file structure, but the exact path depends on your set-up and can&#039;t be predicted here.&lt;br /&gt;
&lt;br /&gt;
The procedure is exactly same on your Raspberry Pi, as it would be on a Windows PC:&lt;br /&gt;
# It is recommended, you type &amp;lt;tt&amp;gt;sudo mkdir ~/CumulusMX&amp;lt;/tt&amp;gt; first, so you already have folder ready for MX, but the file can be created by unzipping the distribution.&lt;br /&gt;
#Run the browser you have available on your Raspberry Pi (the installed browser depends on what Operating System you installed)&lt;br /&gt;
#To find the link to latest release distribution zip in the Cumulus Wiki, open the [[Software#Current_Release|Software article in the Current_Release section]].&lt;br /&gt;
#Download the MX distribution from the link that appears there, Mark will update it for each release he makes.&lt;br /&gt;
&lt;br /&gt;
If the latest release has bugs (it is impossible for the developer to check all the ways in which versatile MX can be used), you can Download whatever older version of MX you have decided to install from [https://github.com/cumulusmx/CumulusMX/releases CumulusMX/releases].&lt;br /&gt;
&lt;br /&gt;
#If you are downloading the distribution on your Pi, the easiest option is to download into &#039;&#039;&#039;~/downloads&#039;&#039;&#039; folder.&lt;br /&gt;
#* Whether this location is the default, or you are asked to select location will depend on whether your browser&#039;s default settings have been changed. &lt;br /&gt;
#When download completes, use the mouse to click on the download file name, this should ask if you want to extract (unzip) it.&lt;br /&gt;
#Ensure the file unzips into your personal directory &amp;quot;/home/pi&amp;quot;, although you could place it elsewhere, this is the easiest place to find (because it can also be represented by &amp;quot;~&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== MX Back-up issues ===&lt;br /&gt;
&lt;br /&gt;
You should ensure that you backup the critical files ([[Cumulus.ini]], [[strings.ini]], all files in &#039;&#039;&#039;data&#039;&#039;&#039; folder, any files in &#039;&#039;&#039;Report&#039;&#039;&#039; folder) on a regular basis to another computer (or to your web site) and not rely on any back-ups that MX does.&lt;br /&gt;
&lt;br /&gt;
=== Configuration issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you have not used Cumulus before&#039;&#039;&#039;, there is useful guidance in various other articles that is not repeated here (it may seem a lot to read, but reading these instructions my save you from days of issues, just look at the support forum for examples of people struggling because they did not read up first and so missed key settings):&lt;br /&gt;
*To learn about what MX can do, please see [[About Cumulus]] article&lt;br /&gt;
*To learn about configuration, please see [[MX Administrative Interface]] and [[Cumulus.ini]] articles. &lt;br /&gt;
** It is important to see that whilst most settings can be done in the former, a few are read-only and must be done in latter&lt;br /&gt;
**Also note that some settings are related (e.g. you need to enable real-time before any real-time actions can be selected; equally you need to enable moon image generation before you can tick the upload option; these are just the 2 most common errors)&lt;br /&gt;
*For general advice relating to [[Cumulus MX]], follow that link&lt;br /&gt;
*For [[What to do when I have a problem with MX]], follow that link&lt;br /&gt;
*An article that needs someone to spend a lot of time improving it is [[Cumulus MX FAQ]], but the article could be useful&lt;br /&gt;
**The cumulus 1 [[FAQ]] might help (e.g. how to upload past data), but use with caution as Cumulus 1 and MX are very different in how they do many actions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you have used Cumulus before&#039;&#039;&#039;, but this is first installation on Pi, then you need to copy some files from old installation to your Pi, here are a couple but you may have further configuration files to copy across:&lt;br /&gt;
*Cumulus.ini&lt;br /&gt;
*strings.ini&lt;br /&gt;
&lt;br /&gt;
The two examples above are in same folder as Cumulus.exe or CumulusMX.exe. You also may have configuration files in a &#039;&#039;&#039;mqtt&#039;&#039;&#039; folder, or elsewhere (for example I store some batch files that Cumulus runs for me in a batch folder). Be aware that the characters terminating each line may need editing (see next sub-section).&lt;br /&gt;
&lt;br /&gt;
Remember as mentioned earlier, the configuration file [[Cumulus.ini]] may need editing to update port names, any command locations, and to update file locations.  Whilst you will find using the admin interface is easiest because it (in many cases) limits the selections to those that are valid; editing the Cumulus.ini file directly might be easier if you have moved from Windows and want to do repeat edits (e.g. changing multiple paths for files is easier using a repeat edit, than wading through all extra web file options in the interface). &lt;br /&gt;
*There is advice about port names at [[Cumulus.ini#Swapping_from_Cumulus_1_to_MX]].  &lt;br /&gt;
*For &#039;&#039;&#039;Extra Web Files&#039;&#039;&#039;, local file names will look like &#039;&#039;/home/pi/CumulusMX/web/trendsT.htm&#039;&#039; for the standard templates, or it might be something like &#039;&#039;&#039;/home/pi/cumulus_Templates/valuesRecentForDetailT.js&#039;&#039;&#039; if you have created your own templates. &lt;br /&gt;
**&#039;&#039;Please note&#039;&#039; that Cumulus MX program code DOES NOT recognise &amp;quot;&#039;&#039;&#039;~/&#039;&#039;&#039;&amp;quot; as shorthand for &#039;&#039;&#039;/home/pi/&#039;&#039;&#039;. &lt;br /&gt;
**Your remote file names, if you have a local server as set up in the notes in the optional sections later, will look like &#039;&#039;/var/www/html/weather/trends.html&#039;&#039; or &#039;&#039;&#039;/var/www/html/weather/js/valuesRecentForTrends.js&#039;&#039;&#039;, depending on your folder structure.  If you pay for a commercial web server, remote file names will be as specified by them and not dependent on what device MX is on. &lt;br /&gt;
**Remember &#039;&#039;if web site is on your Pi&#039;&#039;, MX needs full &#039;&#039;&#039;rw&#039;&#039;&#039; permissions to the HTML folder on your web site,  so give permissions recursively using &amp;lt;tt&amp;gt;sudo chmod -R ugo+rw /var/www/html&amp;lt;/tt&amp;gt; for Cumulus MX to successfully copy there.&lt;br /&gt;
&lt;br /&gt;
=== Keeping existing data and Reports files ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you have used Cumulus before&#039;&#039;&#039;, you will be seeking to keep your existing log files. If you have been using the Windows Operating System each line in each file will be terminated by two control characters (carriage_return and Line_feed). That is fine if you have installed Windows on your Raspberry Pi.  Assuming you have installed the Raspberry Pi Operating System or another Linux distribution, then ideally all your files should be edited so they simply use Line_feed to terminate all lines. This can be easily done in an editor like Notepad++ that is designed for computer files.&lt;br /&gt;
&lt;br /&gt;
The novice does not need to worry about changing end of line characters, it is advisable but not essential (as the Pi will treat the CR as a character it does not display)&lt;br /&gt;
&lt;br /&gt;
To get the entire content of your existing  &#039;&#039;&#039;data&#039;&#039;&#039; and &#039;&#039;&#039;Reports&#039;&#039;&#039; folder onto your Pi:&lt;br /&gt;
*you could copy them onto the micro-SD card (and move that between PC and Pi)&lt;br /&gt;
*you can transfer files across the wireless or Ethernet network using FileZilla Client (or an alternative file transfer tool). &lt;br /&gt;
&lt;br /&gt;
First of all you need to configure FileZilla Client, unless you have done that previously and saved the configuration:&lt;br /&gt;
*The quickest way is to fill out the &amp;quot;quick connect boxes&amp;quot;.&lt;br /&gt;
* Host - this is the IPv4 address of your Pi, I can&#039;t tell you what it is, but it is likely to be &#039;&#039;&#039;192.168.z.xy&#039;&#039;&#039; where the z is probably &amp;quot;1&amp;quot;, but it could be another single figure like 0, and the xy is two (or perhaps three) figures you can find out by looking for &amp;quot;pi&amp;quot; (or whatever host username you have set on your Pi) in the admin interface for your hub or router. (It can also be found out by typing &amp;lt;tt&amp;gt;hostname -I&amp;lt;/tt&amp;gt;). Most networks are setup in a way that the subnet range is from 192.168.1.0 to 192.168.1.255.&lt;br /&gt;
**If your Raspberry Pi has both Wireless and Ethernet connections, you will have two possible IPv4 addresses, choose either, the Ethernet one is likely to be quicker.&lt;br /&gt;
* Username - the default for this is &#039;&#039;&#039;raspberrypi&#039;&#039;&#039; (although on older Pi it might be &#039;&#039;&#039;Pi&#039;&#039;&#039;), but you can may have changed this (as described earlier). (It can be found by typing &amp;lt;tt&amp;gt;hostname&amp;lt;/tt&amp;gt;) or by looking at the contents of the file &#039;&#039;&#039;/etc/hostname&#039;&#039;&#039;.&lt;br /&gt;
* Password - again the default for this is &#039;&#039;&#039;raspberry&#039;&#039;&#039; but we changed it as one of the mandatory configurations earlier.&lt;br /&gt;
* Port - 22 is the default, and I have not said how you can change this!&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;QuickConnect&#039;&#039;&#039; and you should see the local files in the left frame and your Pi home files in the right frame. The easiest way is to find the folder called &#039;&#039;&#039;data&#039;&#039;&#039; in the distribution on the left and drag it to the correct position in the right hand frame. Then all you need to do is watch the progress until it successfully finishes.&lt;br /&gt;
&lt;br /&gt;
If you are going to continue using Filezilla, there are options to save the current configuration and to set up a number of alternative configurations (specifying in advanced tab different locations on your PC and different locations on your Pi).&lt;br /&gt;
&lt;br /&gt;
== Running Cumulus MX ==&lt;br /&gt;
&lt;br /&gt;
(When these notes were written, there were topics in the support forum about ways to use scripts for starting/stopping MX, but the distribution did not include any such controlling scripts. The latest MX version includes a script allowing MX to be run as a service, and perhaps someone would be kind enough to expand the first sub-section).&lt;br /&gt;
&lt;br /&gt;
=== Running as a service ===&lt;br /&gt;
&lt;br /&gt;
(awaiting someone to explain this)&lt;br /&gt;
&lt;br /&gt;
=== Running with a terminal session left open ===&lt;br /&gt;
&lt;br /&gt;
Whichever operating system you are using, to run MX requires an instruction that changes to the directory where it is installed (the instruction below is assuming it is in the standard Pi user home directory, the change directory command will be different if you have installed it elsewhere), and then starting the executable (using mono in the instruction below that applies to any non-Windows operating system). You may wish to add [[Cumulus_MX#Optional_parameters_to_add_to_the_instruction_to_run_the_MX_engine|Optional_parameters]].&lt;br /&gt;
&lt;br /&gt;
The simplest instruction to run Cumulus MX  is &amp;lt;tt&amp;gt;cd CumulusMX &amp;amp;&amp;amp; sudo mono CumulusMx.exe&amp;lt;/tt&amp;gt;.  Just in case it is not obvious .... if you start MX using this command in a terminal window on your Pi, you must leave that session running, then MX will continue to run. &lt;br /&gt;
&lt;br /&gt;
You can start it off directly on your Pi, and then&lt;br /&gt;
*optionally disconnect the keyboard, &lt;br /&gt;
*switch off monitor or TV attached to your Pi, &lt;br /&gt;
*Just ensure you leave Pi on so that terminal session continues running.&lt;br /&gt;
&lt;br /&gt;
== A very quick introduction to Linux ==&lt;br /&gt;
&lt;br /&gt;
This article is not the place to teach you Linux, you can find books and on-line articles for yourself, but I list here enough for you to understand the instructions used elsewhere in this article.&lt;br /&gt;
&lt;br /&gt;
If you have a Raspberry Pi with a monitor attached, you will see a raspberry icon that you can click to get access to many features including shutdown options.&lt;br /&gt;
&lt;br /&gt;
=== sudo ===&lt;br /&gt;
&lt;br /&gt;
Almost all instructions, given in this article, start with a &amp;quot;sudo&amp;quot;, it basically gives administrative rights to whatever follows, and therefore allows a standard Pi user to do tasks that otherwise only work for the root user.  You use it as a prefix to almost every command you type in terminal mode.  There are 3 system commands that in terminal mode will only ever work with this prefix (although if you have installed the version of the Raspberry Pi Operating System that supports a graphical user interface you can also select these actions from a menu):&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;sudo halt&#039;&#039;&#039; = stops any cpu functions, but leaves Pi running; used when you have reached the end of commands you want to do for now&lt;br /&gt;
*&#039;&#039;&#039;sudo poweroff&#039;&#039;&#039; = makes pi do a tidy shutdown and turn off its power; used when you will not be using your Pi for a while&lt;br /&gt;
*&#039;&#039;&#039;sudo reboot&#039;&#039;&#039; (or &amp;quot;sudo reboot -verbose&amp;quot; for diagnostic output during shutdown and reboot) = makes your Pi close down and then reboot; used when you change settings, and after you install new software, to ensure Pi starts with all applications running using the latest settings and latest already installed software&lt;br /&gt;
&lt;br /&gt;
=== ~ and / ===&lt;br /&gt;
&lt;br /&gt;
The tilde symbol &#039;&#039;&#039;~&#039;&#039;&#039; denotes the home directory for the current user.  Sub-directories within the current user&#039;s folder can be identified by &#039;&#039;&#039;~/documents&#039;&#039;&#039; or similar notation. To reference a folder in root or any other area, the prefix is always &#039;&#039;&#039;/&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To see what files and folders are in the current directory, type &amp;lt;tt&amp;gt;dir&amp;lt;/tt&amp;gt; for just names or &amp;lt;tt&amp;gt;ls&amp;lt;/tt&amp;gt; for details.&lt;br /&gt;
&lt;br /&gt;
To make a new folder in the current directory, type &amp;lt;tt&amp;gt;sudo mkdir folder_name&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
=== chmod ===&lt;br /&gt;
&lt;br /&gt;
When you are attempting any of the actions listed in this article that involve reading, creating, editing, or moving, files; you might see an error message generally because of a lack of write permissions on an existing file or folder.   Whilst &amp;lt;tt&amp;gt;rm filename&amp;lt;/tt&amp;gt; will remove a file even if it is write protected, for nano you need to change the file permissions with &amp;lt;tt&amp;gt;sudo chmod -R ugo+rw ~/CumulusMX&amp;lt;/tt&amp;gt; for full access to all files in your Cumulus installation (see the syntax below if you want to restrict access).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;chmod&#039;&#039;&#039; command to modify permissions&lt;br /&gt;
* the &#039;&#039;&#039;-R&#039;&#039;&#039; indicates recursive action (i.e. including not just the named folder, but all files within it and all sub-folders, and all files within sub-folders)&lt;br /&gt;
*letters indicating whose permission is being modified&lt;br /&gt;
** &#039;&#039;&#039;u&#039;&#039;&#039; = Owning user (sometimes the owner is the user root, sometimes the owner is the user Pi, for our web pages later we change ownership)&lt;br /&gt;
** &#039;&#039;&#039;g&#039;&#039;&#039; = Group (by default the owning user is also a group, but a group can be defined if you want to give multiple users (with different passwords) the same rights of access)&lt;br /&gt;
** &#039;&#039;&#039;o&#039;&#039;&#039; = Other users (write permission here is needed if for example you are using FTP to move a file from a PC to your Pi, or vice versa)&lt;br /&gt;
* sign for add or remove permissions&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; = add permission&lt;br /&gt;
* &#039;&#039;&#039;-&#039;&#039;&#039; = remove permission&lt;br /&gt;
*letters indicating what permission is being changed&lt;br /&gt;
** &#039;&#039;&#039;r&#039;&#039;&#039; = read [4]&lt;br /&gt;
** &#039;&#039;&#039;w&#039;&#039;&#039; = write [2]&lt;br /&gt;
** &#039;&#039;&#039;x&#039;&#039;&#039; = execute [1]&lt;br /&gt;
&lt;br /&gt;
Note that as an alternative shorter syntax you can use numbers e.g. &#039;&#039;&#039;666&#039;&#039;&#039; is equivalent to &#039;&#039;&#039;ugo+rw&#039;&#039;&#039;. The first digit in the number relates to &#039;&#039;u&#039;&#039;, the second to &#039;&#039;g&#039;&#039; and the last to &#039;&#039;o&#039;&#039;. The values in [] brackets in list of permissions above are added to derive each digit.  So if you are reading the Cumulus support forum and you see a reference to permissions which includes a string of 3 digits, now you can understand what is meant.&lt;br /&gt;
&lt;br /&gt;
=== nano ===&lt;br /&gt;
&lt;br /&gt;
There are various text editors available on a Pi, &#039;&#039;&#039;nano&#039;&#039;&#039; is a simple one. &lt;br /&gt;
&lt;br /&gt;
Like other text editors this can create a file when a file does not exist and edit (subject to file permissions) an existing file. &lt;br /&gt;
&lt;br /&gt;
Use prefix of &#039;sudo&#039; to give you access to any file, &#039;&#039;&#039;sudo&#039;&#039;&#039; does not change the actual file permissions, so you might find you can read a file, but not save it after you have done your edit.  &lt;br /&gt;
&lt;br /&gt;
When in nano you select to write out to a file, it allows you to change the file name shown. If you choose to save as another file, you will be asked if the new name is correct (again type &#039;&#039;&#039;Y&#039;&#039;&#039; to continue saving).  &lt;br /&gt;
&lt;br /&gt;
Do remember that file names are case sensitive, and when you open an existing file for editing look in case &amp;quot;new file&amp;quot; message appears because you have made a typo in the path/file name.&lt;br /&gt;
&lt;br /&gt;
The full syntax is &amp;lt;tt&amp;gt;sudo nano -B Path_file_name&amp;lt;/tt&amp;gt; where the &#039;&#039;&#039;-B&#039;&#039;&#039; means it will create a backup of how the file was before (this can be enabled while in the editor by pressing the control key down and typing B). Alternatively use &#039;&#039;&#039;-C&#039;&#039;&#039; which stores each version in a back-up directory.  If you want to edit from a particular line and column you can use &#039;&#039;&#039;+line.column&#039;&#039;&#039;, and also optionally use &#039;&#039;&#039;-l&#039;&#039;&#039; (lower-case &amp;quot;L&amp;quot;) to display line numbers which might be useful when trying to correct a problem with a log file like [[dayfile.txt]].  If you don&#039;t specify a file name, then nano will create a new file and you will need to specify where to save it before exit.&lt;br /&gt;
&lt;br /&gt;
You will probably find it useful to type &amp;lt;tt&amp;gt;sudo nano /etc/nanorc&amp;lt;/tt&amp;gt; as this puts you into the configuration file for nano where you can set back-up, line-numbering, and other options&lt;br /&gt;
&lt;br /&gt;
After typing the nano command you need to specify a filename (it might include a path, see earlier sub-section for use of &#039;&#039;&#039;/&#039;&#039;&#039; and &#039;&#039;&#039;~&#039;&#039;&#039;) and there are examples later in this article, but if you decide to &#039;&#039;host a web site on your Pi&#039;&#039; then you might want to edit its home page with (.html or .php) name like &amp;lt;tt&amp;gt;sudo nano /var/www/html/index.php&amp;lt;/tt&amp;gt;.  After you have made an alteration to the current contents of the file, various options are shown at the bottom. Here are two key ones:&lt;br /&gt;
*First is &#039;&#039;&#039;^O&#039;&#039;&#039; which is used to save the file whilst staying in the editor, to do this press the control key down and type O. Next it shows the current file name, if you press &#039;&#039;&#039;Enter&#039;&#039;&#039; then that file will be overwritten.&lt;br /&gt;
*Another is &#039;&#039;&#039;^X&#039;&#039;&#039; which means if you press the control key down and type X you get the exit dialogue. If you have not made any edits, or have already saved the file, this just exits the editor. If you have not used control and O to save the file, it asks whether you want to save the edited file (type &#039;&#039;&#039;Y&#039;&#039;&#039;), typing just the Y key lets save continue (any other key stroke exits without saving), then it shows the current file name, if you press &#039;&#039;&#039;Enter&#039;&#039;&#039; then that file will be overwritten.&lt;br /&gt;
&lt;br /&gt;
=== install ===&lt;br /&gt;
&lt;br /&gt;
This is used for installing packages, you will often see it used with a parameter &#039;&#039;&#039;-y&#039;&#039;&#039;; as without that parameter you have to type &#039;&#039;&#039;Y&#039;&#039;&#039; to continue at each step of an install.&lt;br /&gt;
&lt;br /&gt;
It is important to mention here that the version of packages installed may well be obsolete, this install is finding versions from a Raspberian repository, more recent versions may be available from the providers of each package. To keep this article simple, I accept the Operating System that is installed by NOOBS, even if it is not the latest available from the Raspberian web site, I accept the versions of Mono, Apache, PHP, MariaDB, and others, that are found at the time you issue the install command. The update and upgrade command that I use in multiple places in this article is still only finding the versions available in the repository, and is included just in case the repository is being updated after any install finishes.&lt;br /&gt;
&lt;br /&gt;
If you have more skill than the level of the person at which this article is aimed at, then you should know how to install the latest version from the appropriate web sites.&lt;br /&gt;
&lt;br /&gt;
=== removing an unwanted file ===&lt;br /&gt;
&lt;br /&gt;
You can remove a file or a folder with various commands, including &amp;lt;tt&amp;gt;sudo rm filename&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
I have created a section here, in case anyone wants to add any more instructions. Please feel free to rename it, or indeed add any clarification anywhere in this article.&lt;br /&gt;
&lt;br /&gt;
Meanwhile, look at either [https://raspberrytips.com/raspberry-pi-commands/ this web page] or [https://www.ubuntupit.com/useful-raspberry-pi-commands/ this one] for more commands.&lt;br /&gt;
&lt;br /&gt;
=Optional actions=&lt;br /&gt;
&lt;br /&gt;
An alternative way to load Cumulus MX onto a Raspberry Pi is by using docker (a package installation), it may not be kept up to date but there is such a package at [https://github.com/magimat/rpi-cumulusmx rpi-cumulusmx] and a very old one at [https://github.com/Apollorion/CumulusMX-Docker CumulusMX-Docker].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Any novice can stop reading now, as preceding sections have covered all you need to do to use a Raspberry Pi (or other Unix-based device) to run MX.&lt;br /&gt;
&lt;br /&gt;
However, some people want to do more, so various options are covered in the remainder of this article. If you are a novice, my advice is don&#039;t experiment with what is mentioned after this until you are happy that all you have done up to now works.  The rest of this article does get more technical, so it might be harder to understand and harder to implement. With that warning in mind, I must add that the remaining sections cover a number of items and it is very likely that some of them could be useful to you.&lt;br /&gt;
&lt;br /&gt;
There are lots of sub-sections, so you can skip over those that do not interest you, while carefully reading the ones that could benefit you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Standard action before adding any extra packages ==&lt;br /&gt;
&lt;br /&gt;
*We run &amp;lt;tt&amp;gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&amp;lt;/tt&amp;gt; to ensure all packages are up to date before we attempt to add another package. &lt;br /&gt;
*I remind you here that this does not update everything on your computer to the latest versions available for a Pi, that requires a different (more risky) command not taught here.  &lt;br /&gt;
*Instead, the instruction quoted above just updates your Pi to a consistent state; based on what is in the repository you are already using.&lt;br /&gt;
&lt;br /&gt;
This action is not repeated below, but potentially applies to all options below.&lt;br /&gt;
&lt;br /&gt;
==Databases built into Cumulus MX==&lt;br /&gt;
&lt;br /&gt;
You do not need to know what is in these databases to use MX.&lt;br /&gt;
&lt;br /&gt;
Cumulus MX includes two SQLite databases;&lt;br /&gt;
#The first database was added by Steve Loft, but he never documented what it is used for (see [[Cumulusmx.db]]) and in the support forum when someone asked, nobody was able to answer.&lt;br /&gt;
#*If you do find out what the first database is used for, please update the Wiki article on it!&lt;br /&gt;
#The second database is the Weather Diary [[Weather Diary|documented here]] added by Mark Crossley. Also see [https://cumulus.hosiene.co.uk/viewtopic.php?f=37&amp;amp;t=17919 in the support forum] for a topic comparing the differences between Cumulus 1 and Cumulus MX weather diaries. &lt;br /&gt;
#* The [[MX Administrative Interface|Admin Interface]] provides a page to view, or edit, a single date in the weather diary. You can install another tool that edits SQLite databases if you want (see next section).&lt;br /&gt;
&lt;br /&gt;
===Editing the Weather Diary===&lt;br /&gt;
&lt;br /&gt;
You can install phpLiteAdmin (the significant part of that name is in the middle) to read (you can display the whole table very easily) and edit (via a friendly GUI) either, or both, of those SQLite databases. &lt;br /&gt;
&lt;br /&gt;
Install it using &amp;lt;tt&amp;gt;sudo apt install phpliteadmin&amp;lt;/tt&amp;gt;. You will need to follow the instructions in &#039;&#039;&#039;/usr/share/phpliteadmin/phpliteadmin.php&#039;&#039;&#039; to change the password, and to define the path to the database you want to read, as both databases have the wrong extension to be found automatically. You may need to change file permissions.&lt;br /&gt;
&lt;br /&gt;
I find the admin interface is not reliable for updating the weather diary; it often fails to store an update, without giving any error either on the editing screen or in the MXDiags file. So, I prefer to use phpliteadmin for making changes to the Weather Diary database now. I can use it from a browser on any of my devices.&lt;br /&gt;
&lt;br /&gt;
== Adding a web server and a database server ==&lt;br /&gt;
&lt;br /&gt;
This is an option, and may not be useful to you, but is described here in case it is something that you want to do. &lt;br /&gt;
&lt;br /&gt;
This option is not needed if your MX simply updates to an external web service (several are listed in the options in the admin interface), so you do not use the web templates supplied with MX (nor any alternative web pages created by you or a third party).&lt;br /&gt;
&lt;br /&gt;
This option is not needed if you have subscribed to a commercial web server (and optionally database server).&lt;br /&gt;
&lt;br /&gt;
Now you have a Raspberry Pi (or another device than can be left running all the time without consuming a lot of electricity), you &#039;&#039;might&#039;&#039; want to add a web server and database server so you can make use of the web templates that Cumulus MX provides, and its ability to update database tables. &lt;br /&gt;
&lt;br /&gt;
You might want this option if you are creating your own web pages, and want to try them out without exposure to the public over the internet.&lt;br /&gt;
&lt;br /&gt;
You might select this option to save the subscription costs of a commercial web server (and optionally database server).&lt;br /&gt;
&lt;br /&gt;
=== Install Apache 2 (or another web server) ===&lt;br /&gt;
&lt;br /&gt;
I will mention 3 possible web servers:&lt;br /&gt;
#You might choose &#039;&#039;&#039;Apache 2&#039;&#039;&#039; as it is probably the most comprehensive, so if you have enough space on your Pi, install it using &amp;lt;tt&amp;gt;sudo apt install apache2 -y&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
#*You might want to add Fast CGI (if you don&#039;t know what that is, skip this) and therefore add &amp;lt;tt&amp;gt;sudo apt-get install libapache2-mod-fcgid&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#You might choose &#039;&#039;&#039;nginx&#039;&#039;&#039;, as it is quite popular for small computers like the Pi, install that web server with &amp;lt;tt&amp;gt;sudo apt-get install nginx -y&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#You might choose &#039;&#039;&#039;lighttpd&#039;&#039;&#039;, as it is designed to use as little space on your Pi as possible, install it with &amp;lt;tt&amp;gt;sudo apt-get install lighttpd -y&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Install PHP Hypertext Pre-processor ===&lt;br /&gt;
&lt;br /&gt;
*PHP is not the only script language available, but it is quite comprehensive &lt;br /&gt;
**being able to be used either in a fairly simple way by non-technical people &lt;br /&gt;
**or in an object-oriented way for those more technical to achieve success with more complex scripts.  &lt;br /&gt;
*The simplest instruction to install it is &amp;lt;tt&amp;gt;sudo apt install php -y&amp;lt;/tt&amp;gt;, which version you get depends on your Pi and its operating system. &lt;br /&gt;
*To check which PHP modules have been installed by the above command, type &amp;lt;tt&amp;gt;php -m&amp;lt;/tt&amp;gt;. &lt;br /&gt;
*If you later want to use a database (and a tool like PhpMyAdmin), then your php modules loaded must include at least &#039;&#039;&#039;mysqli&#039;&#039;&#039; and &#039;&#039;&#039;mbstring&#039;&#039;&#039;. &lt;br /&gt;
*I will explain how to find the .ini files later, but unwanted modules can be commented out in your .ini file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alternatively&#039;&#039;&#039;, you can install particular php modules, or a particular PHP version, by selecting components from a list. To do this type something like &amp;lt;tt&amp;gt;sudo apt install php7-fpm php7-cgi php7-cli php7-common php7.3-mbstring php7.3-mysql php7.3-curl php7.3-gd php7.3-zip -y&amp;lt;/tt&amp;gt;. Only use this approach to force a particular version (but you may find that is not available), or if you are short of space, and you are only going to use a minority of the php features available in the full set of modules. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To test that php is installed, type &amp;lt;tt&amp;gt;php -v&amp;lt;/tt&amp;gt; into terminal, and you will see the exact version that has been installed, a confirmation that it offers command line interface (cli), and a copyright notice.&lt;br /&gt;
&lt;br /&gt;
===Creating a Home web page on your web server===&lt;br /&gt;
&lt;br /&gt;
You may wish to create a index.php web page at /var/www/html which is the web server root for browsing, or of course you may wish to copy or FTP here all your existing web pages. To view a php web page, go into a browser and type in a url with the same IPv4 address as you use for the admin interface, omit the port (:8998) and instead type in your web page name (e.g. //192.168.1.&#039;&#039;&#039;xy&#039;&#039;&#039;/index.php, where you need to determine digits that replace &#039;&#039;&#039;xy&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
===Finding your PHP configuration file===&lt;br /&gt;
&lt;br /&gt;
For sake of simplicity in this article, from now on I will assume the web server you installed is &amp;quot;apache2&amp;quot;, change that segment (in the paths quoted below here), if you installed a different web server.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;web server&#039;&#039; main &#039;&#039;&#039;php.ini&#039;&#039;&#039; is found at &#039;&#039;/etc/php/7.n/apache2/php.ini&#039;&#039; (where &#039;n&#039; depends on your Raspberry OS version and therefore which PHP version was installed, that was found out in last sub-section). &lt;br /&gt;
&lt;br /&gt;
You may need to edit this file for example to specify where your include files are stored (if not in same folder as script with require/include). Replace &amp;quot;apache2&amp;quot; by &amp;quot;cli&amp;quot; in the path for the &#039;&#039;batch&#039;&#039; &#039;&#039;&#039;php.ini&#039;&#039;&#039; file that you may also need to edit.&lt;br /&gt;
&lt;br /&gt;
To run a php script in batch, type &amp;lt;tt&amp;gt;php - f &amp;lt;file_name&amp;gt;&amp;lt;/tt&amp;gt;. You can redirect the output by adding a greater than symbol and the destination file (i.e. &amp;gt; log_file) on the same terminal line.  &lt;br /&gt;
&lt;br /&gt;
If you want the MX external commands to run a PHP script for you, use something like &amp;quot;sh&amp;quot; as the program to run (i.e. run shell script); and in the parameters something like&lt;br /&gt;
&#039;&#039;&#039;/home/pi/CumulusMX/MXutils/autoEOD.sh&#039;&#039;&#039; will run a script &amp;quot;autoEOD.sh&amp;quot; you have added to the &amp;quot;MXutils&amp;quot; folder. In that script, you put something like (assuming you have added a folder &#039;batch&#039; with a subfolder &#039;log&#039;):&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# This MX batch command file is initiated automatically by Cumulus MX software during last stage of processing the end of a meteorological day&lt;br /&gt;
echo &amp;quot;It stores feedback in log file CumulusMXDailyBatch (file name ends with day of month)&amp;quot;&lt;br /&gt;
sudo php -f the_path_and_filename_goes_here.php &amp;gt; /home/pi/CumulusMX/batch/log/DailyBatch_Day$(date +%d).log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install Maria database ===&lt;br /&gt;
&lt;br /&gt;
MySQL database software is controlled by Oracle and not made available for inclusion in Raspberry Pi repository.&lt;br /&gt;
&lt;br /&gt;
Maria is an alternative that has largely similar command syntax so is likely to work with code (like MX) designed to work with MySQL. Since the MX developer (Mark Crossley) actually uses Maria DB, we can have plenty of confidence it is suitable. &lt;br /&gt;
&lt;br /&gt;
To install this database server, we type &amp;lt;tt&amp;gt;sudo apt install mariadb-server php-mysql -y&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Our database files will be stored at &#039;&#039;&#039;/var/lib/mysql&#039;&#039;&#039; by default. Our MariaDB configuration is stored at &#039;&#039;&#039;/etc/mysql/mariadb.conf.d/50-server.cnf&#039;&#039;&#039;, and it is the &#039;&#039;datadir=&#039;&#039; entry that controls where the database files are stored.&lt;br /&gt;
&lt;br /&gt;
=== Making your database secure ===&lt;br /&gt;
&lt;br /&gt;
We need to assign passwords to control access to the database by typing into terminal &amp;lt;tt&amp;gt;sudo mysql_secure_installation&amp;lt;/tt&amp;gt;.  That brings up a screen:&lt;br /&gt;
# where we are asked to type current password for the root (as no password has yet been set, simply press Enter),&lt;br /&gt;
# next type &#039;&#039;&#039;Y&#039;&#039;&#039; to signify we are going to set a new password for &#039;&#039;&#039;root&#039;&#039;&#039;,&lt;br /&gt;
# next type in a new password that you will not forget,&lt;br /&gt;
# next as explained on the screen we are going to say whether users must select a user name as well as a password, type &#039;&#039;&#039;Y&#039;&#039;&#039; to &#039;&#039;Remove anonymous users&#039;&#039;&lt;br /&gt;
# next we have to decide whether we will only be logging into the database on our Pi (using Localhost) or we might be logging in remotely; type Y or N respectively, but if you choose N remember someone other than you might guess there is a root user and might guess the password you set,&lt;br /&gt;
# next we have another option of whether to retain or delete a test database, answer N or Y respectively, I would keep the test database for now as you can play with it and then remove it later,&lt;br /&gt;
# finally you type in another Y as that will &#039;&#039;&#039;Reload the privilege tables&#039;&#039;&#039; and ensure all is set up for your access to the database later.&lt;br /&gt;
&lt;br /&gt;
The message, when the process successfully completes, is &amp;quot;Thanks for using MariDB&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Installing Adminer, or PhpMyAdmin ===&lt;br /&gt;
&lt;br /&gt;
ExportMySQL.exe and CumulusMX.exe (see [[Cumulus_MX#Executables]] for details) both create SQL for updating tables in a MySQL database, such as the one our MariaDB software package we have installed can create.&lt;br /&gt;
&lt;br /&gt;
However, there is nothing in the MX distribution that lets us back up and manipulate (e.g. delete rows with errors, or correct rogue numbers in a column) tables in this database. This option is about installing a package to do the tasks that go with operating a database.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PhpMyAdmin&#039;&#039;&#039; is one tool that can be used to manipulate your MySQL like database (that is the significance of the &amp;quot;My&amp;quot; bit in the middle of the tools&#039;s name).&lt;br /&gt;
&lt;br /&gt;
You may like &#039;&#039;&#039;PhpMyAdmin&#039;&#039;&#039; as this offers:&lt;br /&gt;
* a graphical approach (you see a table on screen and navigate to the row or cell you want to work on)&lt;br /&gt;
* a SQL approach (you can try out any SQL here, before adding it to a script that you might use in a web page)&lt;br /&gt;
* a selection approach (you select a database, then select a table, then select an action)&lt;br /&gt;
&lt;br /&gt;
#Start the install with &amp;lt;tt&amp;gt;sudo apt install phpmyadmin -y&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
#The PhpMyAdmin installer will ask some questions. &lt;br /&gt;
#Use your tab key to select &amp;lt;Yes&amp;gt; when it asks whether you want to configure with &#039;&#039;&#039;dbconfig-common&#039;&#039;&#039;. &lt;br /&gt;
#The version of phpmyadmin in the repository is not compatible with PHP7.2 and above, so follow the instructions at https://devanswers.co/manually-upgrade-phpmyadmin/ to upgrade it to latest phpmyadmin (you might substitute &amp;quot;english&amp;quot; for &amp;quot;all-languages&amp;quot; if you only need the one language).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may prefer to install a different tool, perhaps &#039;&#039;&#039;adminer&#039;&#039;&#039; that works using a drill down approach. A drill down approach is when you select the database, then select the table, then select the row, then select the column, then select the action.  This logical step by step approach is a popular approach, but does not suit everyone. &lt;br /&gt;
&lt;br /&gt;
Install this drill down package with &amp;lt;tt&amp;gt;sudo apt install adminer&amp;lt;/tt&amp;gt; (I leave you to work out the commands needed after that).&lt;br /&gt;
&lt;br /&gt;
===Getting web and database servers ready for use===&lt;br /&gt;
&lt;br /&gt;
We need to create a user for PhpMyAdmin (or adMiner or whatever) to access our database and another for Cumulus to use to access the database tables. At the moment our database access has the single root@localhost user we created when we installed MariaDB.  The initial password was set then, and we need to use it to get access to MariDB monitor where we can insert some SQL commands to create these two users. &lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin on first start up will ask for username (here I choose &amp;quot;admin&amp;quot;) and password, thereafter it will use same log-in (by default you see log-in screen each time you restart or if it is left idle for a long time), let us create a user called &#039;admin&#039; for it. &lt;br /&gt;
&lt;br /&gt;
The database name  (here I choose &amp;quot;cumulus&amp;quot; for the data base name), user name (here I choose &amp;quot;weather&amp;quot; for the user name), and password, must all match those set in MX using the [[MX_Administrative_Interface#MySQL_settings|MySQL_settings]] in the admin interface. You could of course use PhpMyAdmin  (or AdMiner) to create additional user names, and to create the database, but I assume all is done in the following bit of SQL.  Remember, the Windows operating system is not case sensitive, but all Linux based operating systems are case sensitive (so whatever pattern of capitals and lowercase you choose must be used every time.  Also all names must start with a letter, can contain only letters or digits (no punctuation), and must not be a reserved word (&amp;quot;password&amp;quot; is a reserved word, so you cannot use that for a password, nor for a column name).&lt;br /&gt;
&lt;br /&gt;
Obviously, these names might not be what you use, but you can amend commands below accordingly. For each line with SQL, it must end with a semicolon (;) as shown.  After you press &amp;quot;Enter&amp;quot; key you will get a response saying &amp;quot;OK&amp;quot; if you have remembered the semi-colon. You can actually use  &amp;quot;\G&amp;quot; or &amp;quot;\g&amp;quot; instead of a semi-colon, but here we will keep it simple and stick to semi-colon.&lt;br /&gt;
&lt;br /&gt;
The SQL lines have a prompt of a greater than symbol (&amp;gt;) while the command lines have a prompt showing current path. Note that &amp;quot;identified by&amp;quot; is followed by a password enclosed in single quotes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mysql --user=root --password=InitialPassword&lt;br /&gt;
create user admin@localhost identified by &#039;PhpMyAdminPassword&#039;;&lt;br /&gt;
create user weather@localhost identified by &#039;MXPassword&#039;;&lt;br /&gt;
grant all privileges on *.* to admin@localhost;&lt;br /&gt;
grant all privileges on *.* to weather@localhost;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
create database cumulus;&lt;br /&gt;
exit;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As I type this, Cumulus MX has no exception handling if the username and password defined in the settings do not exist in the database, therefore in this situation it will crash out (with message press Enter to close).&lt;br /&gt;
&lt;br /&gt;
=== Commands to ensure PhpMyAdmin will work ===&lt;br /&gt;
&lt;br /&gt;
The following sequence of commands will&lt;br /&gt;
* add the mysqli module to our php install, &lt;br /&gt;
*will restart apache, &lt;br /&gt;
*will create a symbolic link for the phpadmin installation to the server web root so it can be seen (and used) in our browser, &lt;br /&gt;
*will give the standard user (pi) ownership of the database files and the web pages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo phpenmod mysqli&lt;br /&gt;
sudo service apache2 restart&lt;br /&gt;
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin&lt;br /&gt;
sudo  chown -R pi:www-data /var/www/html/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Viewing web pages on our new web server===&lt;br /&gt;
&lt;br /&gt;
You can view any index.php or PHPMyAdmin web page in your browser by prefixing the address with your Pi IPv4 address e.g. a URL like  &#039;&#039;&#039;http://192.168.1.xyz/phpmyadmin&#039;&#039;&#039; where &#039;&#039;xyz&#039;&#039; is 2 or 3 digits you look up as mentioned before where FTP was described.  If your Pi has both Ethernet and wireless connection, there will be two different values of &#039;&#039;xyz&#039;&#039; for you to choose one from.  On first run of PhpMyAdmin, as already mentioned, you will see a &#039;&#039;&#039;PHP MyAdmin log-on page&#039;&#039;&#039; where you type username and password we have just set up.&lt;br /&gt;
&lt;br /&gt;
===Populating your database tables on your Pi===&lt;br /&gt;
&lt;br /&gt;
Cumulus MX has functionality to update database tables at one of 3 intervals:&lt;br /&gt;
#real-time&lt;br /&gt;
#standard interval&lt;br /&gt;
#end of day&lt;br /&gt;
&lt;br /&gt;
The database tables can use the column names in the schemas pre-defined by Cumulus MX or in a custom schema (where you specify the column names).  The settings are all in [[MX_Administrative_Interface#MySQL_settings]], so read that section to find out more.&lt;br /&gt;
&lt;br /&gt;
You might have started using MX before you set up your database.  There is a option in that part of the admin interface to create database tables (as required) for each of the 3 updating intervals.  For example, the default name for the table updated at the standard interval is &amp;quot;monthly&amp;quot;, but you could give it a name of &amp;quot;standard&amp;quot; or whatever you like.&lt;br /&gt;
&lt;br /&gt;
The MX release distribution includes another executable.  Type &amp;lt;tt&amp;gt;cd CumulusMX &amp;amp;&amp;amp; sudo mono ExportMySQL.exe monthly&amp;lt;/tt&amp;gt; to run the executable. The first parameter is &amp;quot;monthly&amp;quot; even if the table has a different name. &lt;br /&gt;
#if the table name is defined in the admin interface, and the table already exists in the database with the correct columns defined, then the executable will use that table.&lt;br /&gt;
#There is an optional second parameter that specifies the log file name to read.&lt;br /&gt;
#*if the second parameter is not specified, this executable will look at every log file (in &amp;quot;data&amp;quot; folder and with file name that starts with month, then has &amp;quot;log.txt&amp;quot;), &lt;br /&gt;
# for each line in the log file the executable will try to insert a row in the database table&lt;br /&gt;
#*the SQL syntax used is &amp;quot;insert ignore&amp;quot;, so if the row for that log file line already exists in the table, it will skip onto next line of log file.&lt;br /&gt;
&lt;br /&gt;
Similar instructions apply for the end of day table, although as there is only one daily summary log file, there is no optional second parameter, just type &amp;lt;tt&amp;gt;cd CumulusMX &amp;amp;&amp;amp; sudo mono ExportMySQL.exe dayfile&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There is no way to use this executable for insert of past rows into the real-time table.&lt;br /&gt;
&lt;br /&gt;
If you have been running Cumulus on another device previously and already have database tables, the next section explains how you can create SQL to export your old database and use that SQL to populate the new table.&lt;br /&gt;
&lt;br /&gt;
===Transferring database tables to your Pi===  &lt;br /&gt;
&lt;br /&gt;
If you have been using Cumulus before (and already have a database) then you can use PhpMyAdmin on your old device to &#039;&#039;&#039;export&#039;&#039;&#039; out all the &#039;&#039;&#039;Cumulus tables as SQL&#039;&#039;&#039; in a zip file, FTP that zip file across to your Pi, then use PhpMyAdmin on your Pi to &#039;&#039;&#039;import&#039;&#039;&#039; that zip file.  &lt;br /&gt;
&lt;br /&gt;
Providing you selected the right options for what SQL you created in your export, the import will contain SQL to create the tables and to insert all the rows into each Cumulus table on your Pi. Please note that there is a limit of around 1000 rows that can be imported in one action, so for your bigger tables, you will only create the table once, but you will do several &#039;&#039;&#039;Replace&#039;&#039;&#039; row actions (export from old device, then import to Pi) each transferring just one thousand rows, until the whole table is on the Pi. You may prefer to use &amp;quot;ExportMySQL.exe&amp;quot; as described in previous section to recreate your bigger tables from the Cumulus log files.&lt;br /&gt;
&lt;br /&gt;
You might want to also &#039;&#039;&#039;export/import the tables in the PhpMyAdmin database&#039;&#039;&#039; (as they contain your preferences for each of your tables) in a separate zip, although these might need some extra transformations, as they are specific to a particular version of the database server (and the old database server version may not match the MariaDB version on your Pi). Some PhpMyAdmin tables do change for different versions of the tool, so that too may make export/import of its tables more complicated.&lt;br /&gt;
&lt;br /&gt;
=== Restarting Web Server ===&lt;br /&gt;
&lt;br /&gt;
After all these installs, we need to restart Apache (so it loads the PHP and MariaDB), by typing &amp;lt;tt&amp;gt;sudo service apache2 restart&amp;lt;/tt&amp;gt; or  (if we just want the Apache configuration reloaded) by typing &amp;lt;tt&amp;gt;sudo systemctl reload apache2&amp;lt;/tt&amp;gt;.  Similar commands apply for other web servers.&lt;br /&gt;
&lt;br /&gt;
We will need to restart Apache (or whichever web server we installed) any time we change our php.ini files, database passwords, and anything else that is checked when the web server starts.&lt;br /&gt;
&lt;br /&gt;
== Operating your Raspberry Pi in headless mode ==&lt;br /&gt;
&lt;br /&gt;
The terminology &amp;quot;headless&amp;quot; means using another device to send commands to a Pi via a wired or wireless network, instead of connecting a keyboard and monitor (or TV) directly to the Pi so you make all selections directly on it.&lt;br /&gt;
&lt;br /&gt;
For a novice, the easiest way to set up your Pi (as described above) requires (at least temporary) a keyboard and a monitor (can be a TV) to be connected to it. You might also want to connect a mouse. Depending on the Raspberry Pi you bought, and whether you bought a keyboard (or can borrow one from any PC you have), the ease of making these connections will vary. Once your Pi is set up, and you have started MX running, you can disconnect these peripherals, and leave your Pi running.&lt;br /&gt;
&lt;br /&gt;
The options described in the rest of this article cover all aspects of using a PC to do actions on your Pi, including how to change some settings on your Pi without ever connecting a keyboard and monitor to the Pi. For a novice, there are lots of opportunities to make errors in the following options, so remember the cricketer who said &amp;quot;If at first you do not succeed, try and try again, if you continue to fail, give up&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Remote access ===&lt;br /&gt;
&lt;br /&gt;
There are various different ways that another device can access the Pi over networks. The most popular lets a Terminal mode on your other device connect to your Raspberry Pi using Secure Shell Home, and the commands you type in on your other device are just the same ones you would type directly into the Raspberry Pi terminal mode. The responses you get are also the same. What is likely to be different is &lt;br /&gt;
*any control sequences, &lt;br /&gt;
*any copy and paste operations, &lt;br /&gt;
*and any other actions that are specific to the terminal mode on the other device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use the browser on your PC to connect to the web server created by the MX engine to run the admin interface (all that needs is that the Pi and the PC are both connected to your hub or router, so they are on the same local network):&lt;br /&gt;
* to change settings &lt;br /&gt;
*or to look at the web pages provided in that interface. &lt;br /&gt;
&lt;br /&gt;
Your PC can be used (as well as your Pi) to look at any web pages updated by MX (all that needs is your device to be able to connect to whatever web server runs your web pages).&lt;br /&gt;
&lt;br /&gt;
====Ways of using PC to do what can be done on a Pi====&lt;br /&gt;
&lt;br /&gt;
On your Pi, there are various applications that you can run with graphical interfaces, these let you achieve what you want by on screen selections, without having to learn what Linux commands to type in. You might wish to use these when you are operating your Pi in a headless state (without keyboard or monitor), so you want to see these graphical interfaces on your PC. See [https://thepihut.com/blogs/raspberry-pi-tutorials/remotely-accessing-the-raspberry-pi-via-rdp-gui-mode this tutorial] for one way to do this. Although this article does not cover such options that let you see graphical user interfaces, these let your other device see selection screens, browsing screens, and similar, just as you would see them if you had a monitor connected to your Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An alternative way to work on your Pi is its its terminal mode. This lets you use &#039;&#039;&#039;sudo&#039;&#039;&#039; to overcome the fact that the default user does not have &#039;&#039;&#039;root&#039;&#039;&#039; rights, and can therefore allow you to achieve tasks where a graphical interface fails because of the ownership of the part of the file structure where your action is taking place. The commands you type into a terminal screen on a Pi can also be typed into a terminal screen on your PC, and you will see the same responses. For this to work, you need to switch Secure Shell Home (SSH) on as that is what controls access over a network. This article explains most aspects of SSH in the next few sub-sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== What is Secure Shell Home?====&lt;br /&gt;
&lt;br /&gt;
Secure Shell Home (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. If you have two devices (your Pi and another computer), SSH will allow the two devices to exchange commands and responses between a terminal and a computer over the wireless or Ethernet (or mixture) network that connects them.  &lt;br /&gt;
&lt;br /&gt;
You may be too young to remember when communication with a computer was often done (remotely) using a Teletype (or similar device) acting in terminal mode. Just 4 decades ago this would have been a familiar experience for anyone working with computers, now it may seem strange for you. &lt;br /&gt;
&lt;br /&gt;
It is possible you have remote connection from home to a computer at your work (although that probably uses a different protocol as the network is likely to be better secured as it passes over the internet).&lt;br /&gt;
&lt;br /&gt;
SSH is switched off by default on a standard Raspberry Pi set up. &lt;br /&gt;
&lt;br /&gt;
You can if you have a keyboard and screen attached to your Pi, go into the configuration screen it offers and switch SSH on. The easiest way is using the &#039;&#039;&#039;Raspi-config&#039;&#039;&#039; tool, either from the main menu (raspberry Pi icon inside a square) or in terminal mode with &#039;&#039;&#039;sudo raspi-config&#039;&#039;&#039; (choose option 5 = &#039;&#039;Interfacing Options&#039;&#039;, look for SSH).  This will enable you to later access your Pi from your PC and might be useful later on. While you are in the configuration tool choose option 1 = &#039;&#039;Change User Password&#039;&#039;, and set the password you will use for your SSH session; the default password  is &#039;&#039;&#039;raspberry&#039;&#039;&#039;, but you don&#039;t want to let hackers into your Pi, so you will choose something hard to guess. &lt;br /&gt;
&lt;br /&gt;
The next sub-section describes how you can switch SSH on during the first boot, by creating a file on the micro-SD card before you insert it into your Pi, the file is removed as part of the boot process, so this only works once.&lt;br /&gt;
&lt;br /&gt;
====Pre-configuring the Pi for headless operation====&lt;br /&gt;
&lt;br /&gt;
If you want to set up your Pi headless (without monitor, keyboard, mouse), then you must ensure SSH (which is off by default) is switched on as your Pi boots up.  Otherwise you have no access to do any setting up, and you cannot even close down the Pi tidily! The only way to achieve this, is by adding a file &#039;&#039;&#039;SSH&#039;&#039;&#039; to the boot partition before the micro-SD card is put into the Pi. If you don&#039;t do this you cannot get headless operation, and you will need to move a monitor or TV, mouse, and keyboard, across to the Pi.&lt;br /&gt;
&lt;br /&gt;
The file, you add to the boot partition (there is a second partition that may be invisible), must be named &amp;quot;SSH&amp;quot; with those three letters in capitals, but with no file extension. You can create the file with whatever text editor you have available. &lt;br /&gt;
*On a Windows PC, if you right click (while viewing the boot directory on the card) there is an option called &#039;&#039;&#039;New&#039;&#039;&#039;  and if you select &#039;&#039;a text file&#039;&#039; it will create an empty file with the extension &#039;&#039;&#039;.txt&#039;&#039;&#039;. (In windows there is an option to hide extensions which is on by default, so you may need to deselect this option [&#039;&#039;&#039;New&#039;&#039;&#039; menu -&amp;gt; &#039;&#039;Options&#039;&#039;] to see this extension).  On Windows you can open the file using Notepad to verify it is empty, if you gave accidentally created a file of another type like word processing it will be full of characters some of which do not display. Anyway, you must remove any extension from the file name so it is really just &#039;&#039;&#039;SSH&#039;&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
Type into the file &amp;lt;tt&amp;gt;touch ssh&amp;lt;/tt&amp;gt;, but nothing else, no empty lines, no end of line characters.&lt;br /&gt;
&lt;br /&gt;
When the card is inserted into your Pi, on boot this file will be removed and the SSH option will be enabled. The default password is &#039;&#039;&#039;raspberry&#039;&#039;&#039;, once you have successfully got SSH working. You should then use &#039;&#039;&#039;sudo raspi-config&#039;&#039;&#039; (choose option 1 = &#039;&#039;Change User Password&#039;&#039;, and set the new password you will use for your SSH session next time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How to use SSH?====&lt;br /&gt;
&lt;br /&gt;
If you have a Windows PC, this will allow you to open a &#039;&#039;&#039;Command&#039;&#039;&#039; prompt, &#039;&#039;&#039;Power Shell&#039;&#039;&#039;, or &#039;&#039;&#039;Terminal&#039;&#039;&#039; window (the selection you have available depends on certain settings). &lt;br /&gt;
&lt;br /&gt;
If you have a Linux or Mac device, open &#039;&#039;&#039;Terminal&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Next, (assuming your Pi is running, and that your other device is on the same local network), type &amp;lt;tt&amp;gt;ssh pi@raspberrypi&amp;lt;/tt&amp;gt; to get access to default user in your Pi.  &lt;br /&gt;
&lt;br /&gt;
(As an alternative for Windows operating system, you can install PuTTY, this has the advantage that you can enter the connection settings into it, and configure various other options, and these are remembered, so might make it easier to use. &#039;&#039;&#039;PuTTY&#039;&#039;&#039; software (an SSH client for Windows) can be downloaded from &amp;lt;tt&amp;gt;https://www.putty.org/&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
When you are using a terminal, it is a sequential device, each line is either something you type in or something sent back in reply. The action that result from any key combinations depend on your terminal application, not just whatever you are running on your Pi.  Your mouse can&#039;t affect cursor location, but the mouse might be needed to select text, the left click might copy what is selected, and the right click might paste (what is in your PC&#039;s clipboard) at current cursor position.&lt;br /&gt;
&lt;br /&gt;
You can use SSH access from your PC:&lt;br /&gt;
* when you need to edit a file on your Pi, &lt;br /&gt;
*or do a file transfer between Pi and PC or vice versa. &lt;br /&gt;
&lt;br /&gt;
=== Running MX from your PC ===&lt;br /&gt;
&lt;br /&gt;
If you choose to use the simple &amp;lt;tt&amp;gt;sudo mono CumulusMX.exe&amp;lt;/tt&amp;gt; command in a terminal (or command window or Powershell) session on your PC, remember MX will detect if that session is ended and will shut down MX. This means if you want to keep MX running you need to keep your session on your PC running and you loose the advantage of saving electricity by running MX on a PI because your PC remains on.  &lt;br /&gt;
&lt;br /&gt;
As I type this a new release 3.8.0 is to allow MX to run as a service, and a future release is planned to change the associated script, so anything I write here might become obsolete, and the next sub-section gives you some links to the support forum about alternatives to the new feature.  Hopefully, someone will edit this article, when instructions have settled down and won&#039;t change on next release.  Basically, the ability to run MX as a service,  means that MX actually runs independent of the session that starts or stops the service; and therefore implies you can shut down your PC without stopping MX.  &lt;br /&gt;
&lt;br /&gt;
Hopefully someone will add notes to this article about the running as service option. I have not tried it, so I cannot add such notes.&lt;br /&gt;
&lt;br /&gt;
=== Older information about using a PC and a PI ===&lt;br /&gt;
&lt;br /&gt;
In the Cumulus Support forum, there are articles about a [https://cumulus.hosiene.co.uk/viewtopic.php?p=139779#p139779 stop/start routine], a [https://cumulus.hosiene.co.uk/viewtopic.php?p=141514#p141514 backup routine], and [https://cumulus.hosiene.co.uk/viewtopic.php?p=146028#p146028 how to run MX as a service]. I will let you hunt for and read the relevant topics, as you may find details in more than one place. This article currently avoids describing these to try to keep content simple.  Here is just a list of some alternatives to having to leave your terminal session running:&lt;br /&gt;
# Use &#039;&#039;&#039;start/stop routine&#039;&#039;&#039; (see earlier link), this effectively starts a separate session for MX to run in and leaves the standard terminal session free.&lt;br /&gt;
# Run MX as an &#039;&#039;&#039;init service&#039;&#039;&#039; (see the earlier post in the service link above), be aware that this is a new feature in the new release of MX 3.8.0, again this starts MX outside your terminal session&lt;br /&gt;
# Use &#039;&#039;&#039;Screen&#039;&#039;&#039; software to start up a separate session that you can log off from without MX stopping (see [https://cumulus.hosiene.co.uk/viewtopic.php?p=146203#p146203 how to run using screen]}&lt;br /&gt;
#  Run MX as a &#039;&#039;&#039;systemd service&#039;&#039;&#039; (see the more recent posts in the service link above), be aware that at time of typing this is planned to be incorporated in a future release but the MX developer has no knowledge in this area&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Headless Wireless Network set up===&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t connect a keyboard and monitor to your Raspberry Pi, you can&#039;t set up the wireless network configuration on your Pi using one of the provided configuration tools as described in the earlier wireless network sub-section. &lt;br /&gt;
&lt;br /&gt;
You can use the SSH approach described immediately above to access the &#039;&#039;&#039;Raspi-config&#039;&#039;&#039; tool and in that do the necessary configuration.  &lt;br /&gt;
&lt;br /&gt;
There is one further, complicated, way to set up the wireless configuration so that the wireless network will work when you first boot up your Raspberry Pi. If you have brought the Zero model, that does not allow Ethernet connection, you might decide to follow this complex approach that involves creating a text file in the boot partition of your micro-SD card, and store it in the boot directory on your micro-SD card with a file name &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; before you insert that card in your Pi and do its first boot.&lt;br /&gt;
&lt;br /&gt;
A note of caution here, it is easy to make mistakes, and you may find this does not work. It is presented here just to cover all options, to use this does require some technical skill, a novice will be better off avoiding this.&lt;br /&gt;
&lt;br /&gt;
Ensuring you are using a text editor that won&#039;t add any unwanted control characters, add the following text using UTF-8 encoding:&lt;br /&gt;
&amp;lt;pre&amp;gt;ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev&lt;br /&gt;
update_config=1&lt;br /&gt;
country=GB&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
    ssid=&amp;quot;YourNetwork&amp;quot;&lt;br /&gt;
    psk=&amp;quot;YourNetworkPassword&amp;quot;&lt;br /&gt;
    key_mgmt=WPA-PSK&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Obviously, if you are not in United Kingdom, you will replace &#039;&#039;&#039;GB&#039;&#039;&#039; by the country code that applies to you.&lt;br /&gt;
*Within the first set of quotes, replace &#039;&#039;&#039;YourNetwork&#039;&#039;&#039; by whatever &#039;&#039;Service Set IDentifier&#039;&#039; (SSID) is used for your wireless network.  &lt;br /&gt;
**You may have typed this into your mobile phone. &lt;br /&gt;
**It may be shown on a card that slips into a slot on your hub or router, but you may have changed it from that initial setting. &lt;br /&gt;
**Whatever it is, and it can be up to 32 characters (letters, numbers, and symbols), type it within the double quotes. &lt;br /&gt;
**Some routers come with a default SSID that is the manufacturer&#039;s name, if left unchanged it might conflict with a neighbour, so it is left to you to pick a SSID that is unique to you using up to 32 characters to personalise it. &lt;br /&gt;
*Within the next set of quotes, which relate to the key (or password) that protects access to your network, replace &#039;&#039;&#039;YourNetworkPassword&#039;&#039;&#039; by whatever Pre-Shared-Key (password) is used for your wireless network. &lt;br /&gt;
**You will have typed this into your mobile phone, so that can automatically connect to your network. &lt;br /&gt;
**In this case, you should have changed it (for security reasons) from whatever was shown as the initial password on the card that slips into a slot on your hub or router (possibly all you have done is add a prefix or suffix that means something to you).&lt;br /&gt;
*Most wireless networks will use Wi-Fi Protected Access (WPA) or (from 2006) Wi-Fi Protected Access II (WPA2) protocols, so &#039;&#039;&#039;WPA-PSK&#039;&#039;&#039; is correct for you. &lt;br /&gt;
**Note that your Pi is only able to use these protocols. &lt;br /&gt;
**The earlier Wired Equivalent Privacy (WEP) was officially withdrawn in 2004 as too easy to crack, so it is not supported on a new Pi.&lt;br /&gt;
&lt;br /&gt;
Should you wish to set up your Pi with several network definitions, please see [https://cumulus.hosiene.co.uk/viewtopic.php?p=139422#p139422 Notes by ExperiMentor] (a contributor, in Switzerland, to the Cumulus support forum).&lt;br /&gt;
&lt;br /&gt;
===Downloading MX distribution on PC===&lt;br /&gt;
&lt;br /&gt;
If you download MX on your PC, then you will probably unzip the distribution there, and use a tool like FileZilla to copy the installation to your Pi.&lt;br /&gt;
First of all you need to configure FileZilla Client, unless you have done that previously and saved the configuration:&lt;br /&gt;
*The quickest way is to fill out the &amp;quot;quick connect boxes&amp;quot;.&lt;br /&gt;
* Host - this is the IPv4 address of your Pi, I can&#039;t tell you what it is, but it is likely to be &#039;&#039;&#039;192.168.z.xy&#039;&#039;&#039; where the z is probably &amp;quot;1&amp;quot;, but it could be another single figure like 0, and the xy is two (or perhaps three) figures you can find out by looking for &amp;quot;pi&amp;quot; (or whatever host username you have set on your Pi) in the admin interface for your hub or router. (It can also be found out by typing &amp;lt;tt&amp;gt;hostname -I&amp;lt;/tt&amp;gt;). Most networks are setup in a way that the subnet range is from 192.168.1.0 to 192.168.1.255.&lt;br /&gt;
* Username - the default for this is &#039;&#039;&#039;raspberrypi&#039;&#039;&#039; (although on older Pi it might be &#039;&#039;&#039;Pi&#039;&#039;&#039;), but you can may have changed this (as described earlier). (It can be found by typing &amp;lt;tt&amp;gt;hostname&amp;lt;/tt&amp;gt;) or by looking at the contents of the file &#039;&#039;&#039;/etc/hostname&#039;&#039;&#039;.&lt;br /&gt;
* Password - again the default for this is &#039;&#039;&#039;raspberry&#039;&#039;&#039; but we changed it as one of the mandatory configurations earlier.&lt;br /&gt;
* Port - 22 is the default, and I have not said how you can change this!&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;QuickConnect&#039;&#039;&#039; and you should see the local files in the left frame and your Pi home files in the right frame. The easiest way is to find the folder called &#039;&#039;&#039;CumulusMX&#039;&#039;&#039; in the distribution on the left and drag it to the correct position in the right hand frame. Then all you need to do is watch the progress until it successfully finishes.&lt;br /&gt;
&lt;br /&gt;
If you are going to continue using Filezilla, there are options to save the current configuration and to set up a number of alternative configurations (specifying in advanced tab different locations on your PC and different locations on your Pi).&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=MX_on_Linux&amp;diff=7738</id>
		<title>MX on Linux</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=MX_on_Linux&amp;diff=7738"/>
		<updated>2021-01-31T17:56:25Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* First make a list of what you need */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Cumulus MX]]&lt;br /&gt;
=Using MX on UNIX-derived Operating Systems=&lt;br /&gt;
&lt;br /&gt;
MX runs on various UNIX-derived operating systems (OS), including those found on Apple Mac computers, and those found on devices running Linux.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: LemonChiffon;padding:5px; margin:2px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Crystal Clear info.png|40px]] This document is &#039;Work In Progress&#039; so content may not be complete or accurate!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==This article focuses on a computer called the Raspberry Pi==  &lt;br /&gt;
&lt;br /&gt;
Although the article focusses on one computer type, the Raspberry Pi, the idea is that this article will complement another article [[Moving from Cumulus 1 to MX|Running Cumulus MX on Windows]], so feel free to add more to this article to explain how it can be applied to another Unix-derived devices.&lt;br /&gt;
&lt;br /&gt;
In the Cumulus support forum, there are many posts from people who are struggling with using Windows PCs, and it seems a lot of them find &amp;quot;installing&amp;quot; MX difficult.&lt;br /&gt;
&lt;br /&gt;
The same forum reveals few posts from people struggling with setting up the Raspberry Pi, and several posts reporting success with using MX on this small computer.&lt;br /&gt;
&lt;br /&gt;
==Précis==&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
*The Raspberry Pi is a simple computer that is far easier to learn than a complicated machine like a Personal Computer (PC) running Windows.&lt;br /&gt;
*You can choose either to install the Windows operating system on your Raspberry Pi or to install the simpler Raspberry Pi operating system (based on debian Linux).&lt;br /&gt;
**This article focusses on the latter as another article covers Windows.&lt;br /&gt;
**You don&#039;t need to learn much Linux, but this article does cover some commands.&lt;br /&gt;
*The Raspberry Pi is ideal to run Cumulus MX&lt;br /&gt;
**The Raspberry Pi is a computer that is better for the environment, unlike a PC manufactured with lot of components, and a PC wastes a lot of electricity if left running.&lt;br /&gt;
**Downloading the release distribution, and unzipping the files, is the same on any device&lt;br /&gt;
**On Linux you need to (simply) manually install one extra component (Mono-complete), while the equivalent component (.NET) is automatically installed on Windows.&lt;br /&gt;
**Running MX is same on any device (precise command syntax to start it varies, but what MX does when running does not depend on device)&lt;br /&gt;
*It is simplest to connect keyboard and monitor to the Raspberry Pi so all actions are done directly on it.&lt;br /&gt;
*Some optional topics are also covered.&lt;br /&gt;
**One option covered is adding a web server and a database server&lt;br /&gt;
**Another option discussed is using a PC to control a &amp;quot;headless&amp;quot; Raspberry Pi (i.e. one without keyboard and without monitor).&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is a small board of electronics that can actually run Windows, Mac OS, Chrome OS, various Linux distributions, or the Raspberry Pi OS (based on Ubantu Linux). &lt;br /&gt;
&lt;br /&gt;
In this article, the focus is on the last OS, because that is easiest to install, so look elsewhere on the web for details of installing alternatives. The notes here will generally apply to any version of Linux, although the configuration editor described is only on the Pi. &lt;br /&gt;
&lt;br /&gt;
The Apple Mac runs its own version of Unix, and while standard Unix uses Line_Feed to terminate lines in files, the Mac uses Carriage_Return.  Hopefully someone will write an article about the Mac in this Wiki, but in meantime this is closest you can get.&lt;br /&gt;
&lt;br /&gt;
The article will give you some guidance on:&lt;br /&gt;
*Choosing a Pi model to buy&lt;br /&gt;
*Setting up a Raspberry Pi,&lt;br /&gt;
*Installing OS (the NOOBS described here can install various OS, you choose which one you want)&lt;br /&gt;
*Installing Mono (needed on any Linux based OS, but can even run on Windows!)&lt;br /&gt;
*Installing MX&lt;br /&gt;
*Running MX (these notes apply to any Linux OS, but some hints need consideration even in Windows)&lt;br /&gt;
&lt;br /&gt;
It also covers some optional extras!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Which Raspberry Pi to buy=&lt;br /&gt;
&lt;br /&gt;
A standard desktop computer consumes at least 200 Watts of power (that is when it is idle, it will increase depending on peripherals attached and any processing being done) all the time it is switched on. A Pi Zero W consumes half a Watt when idle, and up to 1.78 Watt when running tasks or connected to peripherals. A Pi model 4 B (the latest model at time of writing) consumes 2.85 to 80 Watt depending on whether it is idle or working hard. Although Cumulus MX does not need to run 24/7, derived values like highest, lowest, average, and so on, will be more accurately calculated if MX is left running. Although the Pi is not the only small computer model available, it is probably the most popular and the easiest one to use if you do want to run MX all the time and not wreck the planet!&lt;br /&gt;
&lt;br /&gt;
If you do a search on the support forum, you will find a lot of different opinions about which model you should buy, but in the end you decide! The following sections contain just suggestions on how to decide, there is no intention to force any single decision. This article focusses on those who buy a Raspberry Pi as a small computer, who might want to use it for other tasks like word processing, and for novices who feel happier to connect a screen and keyboard. This article is less useful if you want to own 2 computers and run your Pi headless by sending commands from your other computer, see [[Raspberry Pi Image]] article instead.&lt;br /&gt;
&lt;br /&gt;
==First make a list of what you need==&lt;br /&gt;
&lt;br /&gt;
*Do you want to use a mouse and key board so that you can use your Raspberry Pi as a computer for tasks like browsing the web and word processing, not just for CumulusMX?&lt;br /&gt;
** If so, a model with multiple USB sockets is advisable (like 3 B+ or 4)&lt;br /&gt;
** This also applies if you want to be able to plug in a USB stick (perhaps for holding/transferring files between devices, e.g. Cumulus configuration and data folder files; this will save wear on the micro-SD disc)&lt;br /&gt;
*Do you want a wired connection to your hub or router?&lt;br /&gt;
** Maybe you are going to update external sites, a wired connection may provide a faster and more dependable communication than a wireless link&lt;br /&gt;
** If so, a model including an Ethernet socket is advisable (like 3 B+ or 4)&lt;br /&gt;
** You can add a USB hub and Ethernet dongle to model Zero, but by the time you have done so would have been better to start with a 3 B+ or 4)&lt;br /&gt;
** Remember that if you are operating the pi in headless mode, a wired or wireless connection to your LAN is needed for your other device to communicate with the Pi&lt;br /&gt;
*Will your MX need to update a database, feed data to a web site, upload to external sites, or control other devices?&lt;br /&gt;
** If so, a model ZeroW will have to do each task in turn, and you will see some delay in information updates, plus you will need to use a larger time between updates&lt;br /&gt;
** If so, a model 3 B+ (or 4) will be noticeably faster, and support all options in MX, and can update external sites more frequently&lt;br /&gt;
* What interface does your weather station use?&lt;br /&gt;
** If your station communicates to MX via wireless, then you choose a model that supports wireless at the right frequency, all models support basic wireless&lt;br /&gt;
** If your station communicates via Ethernet, then either a wired, or wireless, connection is possible between router/hub and Pi as the station will be plugged into your hub or router&lt;br /&gt;
** If your station communicates to MX via USB, then choose between the model 0W with one USB socket, and the model 3 B+ with 4 USB sockets depending on whether you might want to use another USB socket ever&lt;br /&gt;
** If your station uses another communication port (such as serial interface), then you need the additional components that support that interface&lt;br /&gt;
&lt;br /&gt;
== Now research how the various models relate to your needs ==&lt;br /&gt;
&lt;br /&gt;
You can look up online what features are included in the various Pi models, and how they differ in power consumption, and cost. But your decision also needs to consider what you need. Here, I won&#039;t describe all the different models, but concentrate on just 2 for simplicity. &lt;br /&gt;
&lt;br /&gt;
The model Zero W is appealing as it has low power consumption, it is perfectly adequate for running MX (but has limited speed, it runs the various threads MX uses sequentially) especially if you only use standard MX functionality and don&#039;t ask MX to do all the optional extras, and has limited interfaces for peripherals. &lt;br /&gt;
&lt;br /&gt;
The model 3 B+ is appealing as it has medium power consumption, but can cope better with the multiple threads that MX starts, and has more interfaces built in, such as 4 USB 2 ports (useful if you want to connect a weather station using USB and connect a keyboard). &lt;br /&gt;
&lt;br /&gt;
While both models support wireless links and Bluetooth, the latter model also allows a wired Ethernet connection, and that may be useful if that is how you connect to your weather station (an  Ethernet connection is also advisable if you want to install a web server, on your Pi).  Having an Ethernet connection, as explained later, makes it possible to easily install the Windows Operating System on your Raspberry Pi on first boot.&lt;br /&gt;
&lt;br /&gt;
* Raspberry Pi Zero W&lt;br /&gt;
** Pi Zero W has WiFi and one micro-USB port which is all that is needed for headless running.&lt;br /&gt;
** Installing onto a faster Pi might speed parts of the installation process, but for actual ‘production’ running this slower, and simpler, Pi will be perfectly adequate.&lt;br /&gt;
** It could run a web server, but that might really slow it down.&lt;br /&gt;
** If you run this headless, all updates are done remotely, so the connectivity and speed of the actual Pi are less important&lt;br /&gt;
* Raspberry Pi Three B Plus&lt;br /&gt;
**  The faster speed of this Pi although NOT necessary for running Cumulus MX, will cope better if you are asking MX to do lots of processing (e.g. updating database tables or external sites as well as standard processing).&lt;br /&gt;
** Pi Three B Plus has a socket for an external power supply, Ethernet socket (supports wired link); a HDMI socket for audio/video to TV, or computer monitor; a standard jack audio socket for external headphone, or speaker; 4 standard USB type 2 sockets for weather station, mouse, keyboard, USB stick, or other storage device; plus other connections (e.g. camera).&lt;br /&gt;
** This might be better if you also want to run a web server, and if you want to do other tasks (e.g. word processing - &#039;&#039;&#039;Libre Office&#039;&#039;&#039; is installed as standard on a Pi) on the same Pi.&lt;br /&gt;
** Also consider this model if it is to be used on a remote site so when you visit it is useful to be able to plug in a monitor and other peripherals, and to spend as little time on updating as possible.&lt;br /&gt;
&lt;br /&gt;
Other models are available, but you need to check their specification against your needs. For example, the current model Four has more capabilities, but may be less appealing as it also consumes more power.&lt;br /&gt;
&lt;br /&gt;
== What else to buy ==&lt;br /&gt;
&lt;br /&gt;
You can buy just the Pi, which is just a circuit board, or a kit that includes other components. &lt;br /&gt;
&lt;br /&gt;
Generally buying as a kit is cheaper than buying items individually.  A typical kit includes the Pi board with components and interfaces on it, a power supply (with a plug suitable for your mains sockets), a micro-SD card (see later sub-section), some connection leads, and a case that you can fit the board into to protect it.&lt;br /&gt;
&lt;br /&gt;
You may want to buy a case, that will protect your Pi from accidental damage.  A case specifically designed for your Pi model will have cut-outs in the right place for each interface connection, and will have sufficient ventilation for the electrical components to not over-heat. Some designs have additional holes for securing peripherals.&lt;br /&gt;
&lt;br /&gt;
You may need a power supply. &lt;br /&gt;
*This could be an official Raspberry Pi power supply. &lt;br /&gt;
*Alternatively, any power supply unit that has a micro USB connector will do, the power consumption of a Pi (whichever model) is fairly small, but it will be powered on 24/7, so a low power consumption ‘switched mode’ type is preferred – i.e. one that does not become warm when plugged in with nothing attached. &lt;br /&gt;
**You may have a suitable one left over from an earlier mobile phone. &lt;br /&gt;
&lt;br /&gt;
You may need to buy connection leads:  &lt;br /&gt;
*You may need a HDMI lead to connect your PI to your TV or a spare computer monitor. &lt;br /&gt;
*You may need a USB lead to connect to your weather station (the Pi model Zero requires a micro USB, the Pi model 3 requires a standard A end USB) and your station probably has a USB A end connection. &lt;br /&gt;
*If your weather station connects by Ethernet, you will need one lead to connect the station to the router and possibly another to connect the hub or router to the Pi.&lt;br /&gt;
&lt;br /&gt;
If you do choose a model 3 (or later), consider whether you do want to buy a USB mouse and USB keyboard to use with it.&lt;br /&gt;
 &lt;br /&gt;
Finally, you may wish to buy a second micro-SD unit as a spare, or some other USB connected (or network connected) storage for back-ups and extra storage needs.&lt;br /&gt;
&lt;br /&gt;
= Setting up your Pi =&lt;br /&gt;
&lt;br /&gt;
== Image alternative ==&lt;br /&gt;
&lt;br /&gt;
If you are never going to use a keyboard nor TV (or other monitor) with your Raspberry Pi, there is now an alternative to installing operating system, mono, and MX separately, a single &#039;&#039;&#039;image&#039;&#039;&#039; that contains all elements needed can be downloaded from the [[Software#Current_Release|Software page Current_Release section]], read about using it in [[Raspberry_Pi_Image]] article. I will just stress here, that following this alternative option, provided by developer, installs the &#039;&#039;&#039;Raspberry Pi Lite Operating System&#039;&#039;&#039;. Also with this option if you are migrating from another computer you still need to add [[Cumulus.ini]], [[strings.ini]], all files in [[:Category:Log Files|data folder]], and any files in the Reports folder by file transfer from your other device to the Pi.&lt;br /&gt;
&lt;br /&gt;
== Doing it manually ==&lt;br /&gt;
&lt;br /&gt;
You can find, online, instructions (and videos) about setting up a Pi, these describe all the necessary steps that are described below from buying a suitable micro-SD card, through installing the operating system, and adding additional software. If you use a search engine, then you can find a variety of different sets of instructions, including some that are very simple but basic; and others that are a little more complex so they can explain any options!&lt;br /&gt;
*The obvious place to look is [https://www.raspberrypi.org/documentation/setup/ the manufacturer&#039;s web site], the manufacturer actually also publishes the same documentation on [https://github.com/raspberrypi/documentation/blob/master/setup/README.md their github page]. &lt;br /&gt;
*If you have brought your Pi from a distributor, their web site (e.g. [http://www.okdo.com/gettingstarted &#039;getting started&#039; instructions provided by this distributor]) might have simple instructions tailored to their product,&lt;br /&gt;
* or you can find the details at many general forum type sites with &amp;quot;how to&amp;quot; advice. &lt;br /&gt;
&lt;br /&gt;
In this article, each step in installation is covered, in the sections that follow.  Obviously, this article is trying to balance the needs of a novice with the needs of someone who wants to plug holes in their existing knowledge, that need to be comprehensive means it might not seemed to be aimed exactly at what you need.  &#039;&#039;Anyone who feels able to improve this article is welcome to edit it&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Micro-SD card ===&lt;br /&gt;
&lt;br /&gt;
You will need a micro-SD card (preferably class 10, the class number indicates the relative speed of read/write compared to original design, so this class is 10 times faster).&lt;br /&gt;
&lt;br /&gt;
#A Pi will work with either a class 4 (only 4 times faster), or a class 10, micro-SD card. &lt;br /&gt;
#Just for the standard install you need a card with a &#039;&#039;&#039;minimum of 8 GB&#039;&#039;&#039;. &lt;br /&gt;
#Given we are going to add Mono and Cumulus MX to the card, I advise you buy a card with at least 16 GB (as the default operating system installation takes up almost half of that),&lt;br /&gt;
#* but you might prefer to buy a 32 GB or 64 GB (or add an external USB drive or USB memory stick) if you intend to keep a lot of data on the Pi.&lt;br /&gt;
&lt;br /&gt;
I won&#039;t mention manufacturer names here, but one well known brand (that uses descriptions like extreme) is the market leader, and does have greater reliability than cheaper cards from other manufacturers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Setting up a Pi is simpler&#039;&#039; &#039;&#039;&#039;if you buy a micro-SD card that is&#039;&#039;&#039;:&lt;br /&gt;
* either pre-installed with [https://github.com/raspberrypi/documentation/blob/master/installation/noobs.md NOOBS (Novel Out of Box Software)], &lt;br /&gt;
* or pre-installed with the Raspberry Pi operating system.&lt;br /&gt;
&lt;br /&gt;
NOOBS makes it easy to install (by default) Raspberry Pi operating system, as if you insert such a micro-SD card into a new Raspberry Pi computer, when you power up the Pi, the operating system will be installed during that first boot. If you have a Raspberry Pi model with an Ethernet connection, and you connect your Pi to your hub/router before you first switch it on, then at that first boot, NOOBS will offer you a choice of several operating systems, with Raspberry Pi as first choice.&lt;br /&gt;
&lt;br /&gt;
Various suppliers offer cards of 16 to 64 GB with NOOBS pre-installed ready for use in a Pi (I bought from a firm in Haverhill, Suffolk, UK). &lt;br /&gt;
&lt;br /&gt;
My advice is to buy your micro-SD card from a firm that specialises in selling Raspberry Pi computers and accessories. That should ensure you buy a card with the latest version of NOOBS (or Raspberry Pi Operating System) and that will make your life simpler than buying a blank micro-SD card and having to down load and add the operating system yourself.&lt;br /&gt;
&lt;br /&gt;
If you want to be able to use the micro-SD card in other devices (like your PC), you may need to also buy an adapter which allows the micro-SD card to be plugged into a standard SD socket. This may be included if you buy a micro-SD card not sold specifically for the Pi, or may be available with the Pi micro-SD under a special offer for buying two items together.&lt;br /&gt;
&lt;br /&gt;
=== The Operating System ===&lt;br /&gt;
&lt;br /&gt;
As said before, a number of operating systems can be installed on your Pi, even Windows.  &lt;br /&gt;
&lt;br /&gt;
To keep this article simple, I will assume you have bought a micro-SD card either pre-installed with an operating system (OS) so you are ready to go, or you used NOOBS (as described earlier) to install your chosen OS.&lt;br /&gt;
&lt;br /&gt;
If you do need to install any operating system you choose, normally the instructions will be found from where you download the system you have selected. If you have brought a card without NOOBS, you can download/install the Raspberry Operating System Buster yourself, following either instructions on the [https://www.raspberrypi.org/downloads/ Raspberry Pi download page], those at [https://thepihut.com/blogs/raspberry-pi-tutorials/the-raspberry-pi-tutorial-beginners-guide this supplier&#039;s tutorial guide], or [https://cumulus.hosiene.co.uk/viewtopic.php?p=139422#p139422 those in Cumulus support forum]. To save you looking any of those up, the next sub-section summarises what you need to do.&lt;br /&gt;
&lt;br /&gt;
==== How to add Raspberry Operating System to a card yourself ====&lt;br /&gt;
&lt;br /&gt;
*Decide whether you want &lt;br /&gt;
**the full version of the operating system that supports a graphical user interface (choose this if you want to connect a TV or other monitor to your Raspberry Pi), &lt;br /&gt;
**or the &#039;&#039;lite&#039;&#039; version of the operating system that only supports SSH or terminal mode (choose this if you will operate headless - explained at end of this article)&lt;br /&gt;
*Download the latest version of the Raspberry Pi operating system you have selected from https://www.raspberrypi.org/downloads. &lt;br /&gt;
*That imager is run on any device, say your pc, and then you select &#039;&#039;&#039;write&#039;&#039;&#039; to save it onto the micro-SD card (don&#039;t forget this overwrites anything already on the card). &lt;br /&gt;
*This should work without a need to format the card first, (but if you do need to format it, do so using a SD card formatter downloaded from https://www.sdcard.org/downloads/formatter_4/index.html, &#039;&#039;&#039;not&#039;&#039;&#039; for example Windows format tool). &lt;br /&gt;
*After this image has been stored it will have created two (or three) partitions on the micro-SD card (one the boot partition is a FAT partition that can be accessed by Windows, the larger Linux partition is invisible to Windows, the optional third partition uses up any space left on a larger micro-SD card and appears as &amp;quot;data&amp;quot; under &amp;quot;media&amp;quot; in the Linux file structure).&lt;br /&gt;
&lt;br /&gt;
==== Is the operating system obsolete or up to date?====&lt;br /&gt;
&lt;br /&gt;
It is important that your Raspberry Pi (or other device) has the latest operating system version installed.  If the Operating System installed is an obsolete one, then each package it includes (e.g. Libre Office), and each package you add (e.g. Mono or PHP), will also be obsolete versions. In the worst case scenario, any attempt to install a package might fail giving an error message that the relevant Raspberry Pi repository is archived.&lt;br /&gt;
&lt;br /&gt;
If you have a micro-SD card pre-installed with NOOBS, as described above, the first boot will install the operating system. It is the version of NOOBS that is included on the card that determines which Raspberry Pi Operating System version is set up:&lt;br /&gt;
*Wheezy (7) released in 2013&lt;br /&gt;
*Jessie (8) dating from 2015&lt;br /&gt;
*Stretch (9) released in 2017 (up to this called Raspbian Operating System)&lt;br /&gt;
*Buster (10) available from 2019 (the first to be called Raspberry Pi Operating System)&lt;br /&gt;
*Bullseye (11) under test in 2020&lt;br /&gt;
&lt;br /&gt;
Be aware that many such pre-loaded and pre-formatted cards include an obsolete version of NOOBS. &lt;br /&gt;
*You may find your card installs the obsolete Raspbian Jessie (version 8 of Debian from 2015), &lt;br /&gt;
*a few install the old Raspbian Stretch (Version 9 of Debian, dating from 2017), &lt;br /&gt;
*a good supplier sells a card that installs latest Raspberry Operating System Buster (Version 10 of Debian, released in 2019). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Wireless Network ===&lt;br /&gt;
&lt;br /&gt;
How this is set up depends on your Pi model, and the operating system that is loaded on it, &lt;br /&gt;
*it may on first boot ask you to enter your wireless network details, &lt;br /&gt;
*it may list the wireless networks it finds and ask you to choose from the listed SSID, &lt;br /&gt;
*it might not prompt you so you need to use the configuration tool (see next sub-section), &lt;br /&gt;
*or you might need to click on an icon with two red crosses.&lt;br /&gt;
&lt;br /&gt;
Note that there is also a Wi-Fi network country which must be set.&lt;br /&gt;
&lt;br /&gt;
If you have had to enter wireless details into a mobile phone, you will realise what is needed:&lt;br /&gt;
*The &#039;&#039;Service Set IDentifier&#039;&#039; (SSID) is the name that is used for your wireless network.&lt;br /&gt;
**As mentioned above, you may see a list of those that have been found.  &lt;br /&gt;
**You may have typed this into your mobile phone. &lt;br /&gt;
**It may be shown on a card that slips into a slot on your hub or router (you may have changed it from that initial setting). &lt;br /&gt;
**It can be up to 32 characters (letters, numbers, and symbols. &lt;br /&gt;
**Some routers come with a default SSID that is the manufacturer&#039;s name, if left unchanged it might conflict with a neighbour, so it is left to you to pick a SSID that is unique to you using up to 32 characters to personalise it. &lt;br /&gt;
*You also need to enter whatever Pre-Shared-Key (password) is used for your wireless network. &lt;br /&gt;
**You will have typed this into your mobile phone, so that can automatically connect to your network. &lt;br /&gt;
**You should have changed it (for security reasons) from whatever was shown as the initial password on the card that slips into a slot on your hub or router (possibly all you have done is add a prefix or suffix that means something to you).&lt;br /&gt;
*Most wireless networks will use Wi-Fi Protected Access (WPA) or (from 2006) Wi-Fi Protected Access II (WPA2) protocols, so &#039;&#039;&#039;WPA-PSK&#039;&#039;&#039; is correct for you. &lt;br /&gt;
**Note that your Pi is only able to use these protocols. &lt;br /&gt;
**The earlier Wired Equivalent Privacy (WEP) was officially withdrawn in 2004 as too easy to crack, so it is not supported on a new Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other configuration ===&lt;br /&gt;
&lt;br /&gt;
There are various other configurations you need to do on your PI.  &lt;br /&gt;
You need to use the raspbian configuration tool &#039;&#039;&#039;raspi-config&#039;&#039;&#039;,&lt;br /&gt;
*this can be accessed on your Pi either in a Graphical User Interface (GUI), &lt;br /&gt;
*or by running a command &amp;lt;tt&amp;gt;sudo raspi-config&amp;lt;/tt&amp;gt; in Terminal.&lt;br /&gt;
&lt;br /&gt;
==== Mandatory configurations ====&lt;br /&gt;
&lt;br /&gt;
Within the Raspberian configuration utility, you will see an option to change password. You will want to do this so nobody can hack into your Raspberry Pi computer.  You will need to enter the new password twice before it replaces the old one.&lt;br /&gt;
&lt;br /&gt;
The default network (host) name for your Pi is &#039;&#039;&#039;raspberrypi&#039;&#039;&#039;, obviously we need to replace that as well with a name that personalises it to you and does not make it easy for a hacker to know what device is represented by that network name. &lt;br /&gt;
*The name can most easily be changed within the Raspberian configuration utility, you will see a &#039;&#039;&#039;Network Options&#039;&#039;&#039; option, it is there that you change the network name.&lt;br /&gt;
*but it can also be edited by opening the file where it is stored using &amp;lt;tt&amp;gt;sudo nano /etc/hostname&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Network options can also be configured by clicking an icon on the Pi (this icon might be two red crosses if network settings are missing, two parallel arrows if the network settings are not correctly set, or the wireless symbol if your wireless network is working). &lt;br /&gt;
&lt;br /&gt;
==== Recommended configurations ====&lt;br /&gt;
&lt;br /&gt;
The default &#039;&#039;&#039;locale&#039;&#039;&#039; for a Pi is normally &#039;&#039;&#039;en_GB.UTF-8&#039;&#039;&#039;, as they are designed by a company based in UK. Within the configuration option, you can add additional locales (in most cases there is a UTF-8 option which is preferred and at least one other encoding), there are also a number of special alternative locales, but I am not going to explain all the options, look it up if the default locale is not acceptable.&lt;br /&gt;
*Whatever locale you use, if you have already been using Cumulus (1 or MX), you need to ensure the locale matches the one used for your log files. The versions of MX released from the middle of 2020 onwards are very fussy that all dates use the same delimiter (see [[Cumulus_MX_formal_release_versions]]), so you need to check the chosen locale continues to use the same date separator as before. The locale is affected by the version of Mono you install and whether you use the locale parameter when starting MX, so I cannot cover all options. &lt;br /&gt;
*Anyway, the default locale is fine if you are in the UK, you use decimal points for real numbers, you use commas for list separators, and you don&#039;t have dates with month first!&lt;br /&gt;
*To change the locale, enter &#039;&#039;&#039;Localisation Options&#039;&#039;&#039;.   &lt;br /&gt;
&lt;br /&gt;
In the same option area, there are &#039;&#039;&#039;some more options&#039;&#039;&#039;:&lt;br /&gt;
# Change Time-zone, by default UTC is used all year round. In the UK if your Cumulus MX is set to roll over at 10am in summer, you will wish to change the time-zone to UK time, because MX uses system time for many of its actions.&lt;br /&gt;
# Change Keyboard Layout if needed, keyboards can support different numbers of characters, and can have different currency symbols, so select whatever is relevant to you&lt;br /&gt;
&lt;br /&gt;
====To leave configuration====&lt;br /&gt;
&lt;br /&gt;
Select ‘Finish’.&lt;br /&gt;
&lt;br /&gt;
== Installing Mono ==&lt;br /&gt;
&lt;br /&gt;
Sponsored by Microsoft, Mono is an open source implementation of Microsoft&#039;s .NET Framework based on the ECMA standards for C# and the Common Language Runtime. &lt;br /&gt;
&lt;br /&gt;
=== Preparing for Mono installation ===&lt;br /&gt;
&lt;br /&gt;
Quite often when we try to install, or update, packages on our Pi we will see messages about dependencies, and in some cases error messages saying the installation has failed or been aborted. Before we can install Mono, there are other packages required and these vary depending upon the Raspberry operating system version we have installed, see [https://www.mono-project.com/download/stable/#download-lin-raspbian Mono download instructions for Raspberry Pi]. Here are the latest 2 options when this article was updated (if your Mono installation fails, then you selected wrong one):&lt;br /&gt;
&lt;br /&gt;
For Raspberry Operating System 9 (stretch):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install apt-transport-https dirmngr gnupg ca-certificates&lt;br /&gt;
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF&lt;br /&gt;
echo &amp;quot;deb https://download.mono-project.com/repo/debian stable-raspbianstretch main&amp;quot; | sudo tee /etc/apt/sources.list.d/mono-official-stable.list&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Raspberry Operating System 10 (buster):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install apt-transport-https dirmngr gnupg ca-certificates&lt;br /&gt;
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF&lt;br /&gt;
echo &amp;quot;deb https://download.mono-project.com/repo/debian stable-raspbianbuster main&amp;quot; | sudo tee /etc/apt/sources.list.d/mono-official-stable.list&lt;br /&gt;
sudo apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Checking all packages are up to date ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Either&#039;&#039;&#039; type:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;or&#039;&#039;&#039; to insert in single line type instead &amp;lt;tt&amp;gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Installing instruction ===&lt;br /&gt;
&lt;br /&gt;
With all the pre-requisites correct as in previous steps, you can install mono package by simply typing &amp;lt;tt&amp;gt;sudo apt-get install -y mono-complete&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
It is important to note that MX requires the &#039;&#039;complete&#039;&#039; edition of mono as there is also a cut-down developer edition of Mono that can be downloaded/installed. &lt;br /&gt;
&lt;br /&gt;
The &amp;quot;sudo&amp;quot; part of this gives us rights, &amp;quot;apt-get&amp;quot; is one of the ways to search the Raspberry repository for applications, &amp;quot;install&amp;quot; is the action we want to do, and &amp;quot;mono-complete&amp;quot; is the package we want.&lt;br /&gt;
&lt;br /&gt;
=== Completing Package Installation ===&lt;br /&gt;
&lt;br /&gt;
As the Pi does not know exactly which components are needed when multiple packages are installed with various dependencies, sometimes extra components are installed which in the end are not needed when you complete all your installations. &lt;br /&gt;
&lt;br /&gt;
To clear up, delete any components that are not included in dependencies by typing &amp;lt;tt&amp;gt;sudo apt autoremove&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Downloading and Unzipping MX Distribution ==&lt;br /&gt;
&lt;br /&gt;
For simplicity, MX is installed into standard Pi user&#039;s home directory here.  You might instead choose to install it on an external drive which has two significant advantages:&lt;br /&gt;
#there are certain files within MX that are updated very frequently, such constant rewriting can lead to a shorter life for your micro-SD card, by using an external drive for MX, MX files are less likely to be lost, and you are less likely to lose your operating system off your micro-SD card&lt;br /&gt;
#if you accidentally were to corrupt a critical file on your Raspberry Pi, you would need to rebuild the operating system image, and that deletes all existing files on the micro-SD card, including any related to MX, and you don&#039;t want to lose your precious data&lt;br /&gt;
&lt;br /&gt;
Both the optional &amp;quot;data&amp;quot; directory created by NOOBS and any external drive appear within &amp;quot;/media/&amp;quot; in the file structure, but the exact path depends on your set-up and can&#039;t be predicted here.&lt;br /&gt;
&lt;br /&gt;
The procedure is exactly same on your Raspberry Pi, as it would be on a Windows PC:&lt;br /&gt;
# It is recommended, you type &amp;lt;tt&amp;gt;sudo mkdir ~/CumulusMX&amp;lt;/tt&amp;gt; first, so you already have folder ready for MX, but the file can be created by unzipping the distribution.&lt;br /&gt;
#Run the browser you have available on your Raspberry Pi (the installed browser depends on what Operating System you installed)&lt;br /&gt;
#To find the link to latest release distribution zip in the Cumulus Wiki, open the [[Software#Current_Release|Software article in the Current_Release section]].&lt;br /&gt;
#Download the MX distribution from the link that appears there, Mark will update it for each release he makes.&lt;br /&gt;
&lt;br /&gt;
If the latest release has bugs (it is impossible for the developer to check all the ways in which versatile MX can be used), you can Download whatever older version of MX you have decided to install from [https://github.com/cumulusmx/CumulusMX/releases CumulusMX/releases].&lt;br /&gt;
&lt;br /&gt;
#If you are downloading the distribution on your Pi, the easiest option is to download into &#039;&#039;&#039;~/downloads&#039;&#039;&#039; folder.&lt;br /&gt;
#* Whether this location is the default, or you are asked to select location will depend on whether your browser&#039;s default settings have been changed. &lt;br /&gt;
#When download completes, use the mouse to click on the download file name, this should ask if you want to extract (unzip) it.&lt;br /&gt;
#Ensure the file unzips into your personal directory &amp;quot;/home/pi&amp;quot;, although you could place it elsewhere, this is the easiest place to find (because it can also be represented by &amp;quot;~&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== MX Back-up issues ===&lt;br /&gt;
&lt;br /&gt;
You should ensure that you backup the critical files ([[Cumulus.ini]], [[strings.ini]], all files in &#039;&#039;&#039;data&#039;&#039;&#039; folder, any files in &#039;&#039;&#039;Report&#039;&#039;&#039; folder) on a regular basis to another computer (or to your web site) and not rely on any back-ups that MX does.&lt;br /&gt;
&lt;br /&gt;
=== Configuration issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you have not used Cumulus before&#039;&#039;&#039;, there is useful guidance in various other articles that is not repeated here (it may seem a lot to read, but reading these instructions my save you from days of issues, just look at the support forum for examples of people struggling because they did not read up first and so missed key settings):&lt;br /&gt;
*To learn about what MX can do, please see [[About Cumulus]] article&lt;br /&gt;
*To learn about configuration, please see [[MX Administrative Interface]] and [[Cumulus.ini]] articles. &lt;br /&gt;
** It is important to see that whilst most settings can be done in the former, a few are read-only and must be done in latter&lt;br /&gt;
**Also note that some settings are related (e.g. you need to enable real-time before any real-time actions can be selected; equally you need to enable moon image generation before you can tick the upload option; these are just the 2 most common errors)&lt;br /&gt;
*For general advice relating to [[Cumulus MX]], follow that link&lt;br /&gt;
*For [[What to do when I have a problem with MX]], follow that link&lt;br /&gt;
*An article that needs someone to spend a lot of time improving it is [[Cumulus MX FAQ]], but the article could be useful&lt;br /&gt;
**The cumulus 1 [[FAQ]] might help (e.g. how to upload past data), but use with caution as Cumulus 1 and MX are very different in how they do many actions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you have used Cumulus before&#039;&#039;&#039;, but this is first installation on Pi, then you need to copy some files from old installation to your Pi, here are a couple but you may have further configuration files to copy across:&lt;br /&gt;
*Cumulus.ini&lt;br /&gt;
*strings.ini&lt;br /&gt;
&lt;br /&gt;
The two examples above are in same folder as Cumulus.exe or CumulusMX.exe. You also may have configuration files in a &#039;&#039;&#039;mqtt&#039;&#039;&#039; folder, or elsewhere (for example I store some batch files that Cumulus runs for me in a batch folder). Be aware that the characters terminating each line may need editing (see next sub-section).&lt;br /&gt;
&lt;br /&gt;
Remember as mentioned earlier, the configuration file [[Cumulus.ini]] may need editing to update port names, any command locations, and to update file locations.  Whilst you will find using the admin interface is easiest because it (in many cases) limits the selections to those that are valid; editing the Cumulus.ini file directly might be easier if you have moved from Windows and want to do repeat edits (e.g. changing multiple paths for files is easier using a repeat edit, than wading through all extra web file options in the interface). &lt;br /&gt;
*There is advice about port names at [[Cumulus.ini#Swapping_from_Cumulus_1_to_MX]].  &lt;br /&gt;
*For &#039;&#039;&#039;Extra Web Files&#039;&#039;&#039;, local file names will look like &#039;&#039;/home/pi/CumulusMX/web/trendsT.htm&#039;&#039; for the standard templates, or it might be something like &#039;&#039;&#039;/home/pi/cumulus_Templates/valuesRecentForDetailT.js&#039;&#039;&#039; if you have created your own templates. &lt;br /&gt;
**&#039;&#039;Please note&#039;&#039; that Cumulus MX program code DOES NOT recognise &amp;quot;&#039;&#039;&#039;~/&#039;&#039;&#039;&amp;quot; as shorthand for &#039;&#039;&#039;/home/pi/&#039;&#039;&#039;. &lt;br /&gt;
**Your remote file names, if you have a local server as set up in the notes in the optional sections later, will look like &#039;&#039;/var/www/html/weather/trends.html&#039;&#039; or &#039;&#039;&#039;/var/www/html/weather/js/valuesRecentForTrends.js&#039;&#039;&#039;, depending on your folder structure.  If you pay for a commercial web server, remote file names will be as specified by them and not dependent on what device MX is on. &lt;br /&gt;
**Remember &#039;&#039;if web site is on your Pi&#039;&#039;, MX needs full &#039;&#039;&#039;rw&#039;&#039;&#039; permissions to the HTML folder on your web site,  so give permissions recursively using &amp;lt;tt&amp;gt;sudo chmod -R ugo+rw /var/www/html&amp;lt;/tt&amp;gt; for Cumulus MX to successfully copy there.&lt;br /&gt;
&lt;br /&gt;
=== Keeping existing data and Reports files ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you have used Cumulus before&#039;&#039;&#039;, you will be seeking to keep your existing log files. If you have been using the Windows Operating System each line in each file will be terminated by two control characters (carriage_return and Line_feed). That is fine if you have installed Windows on your Raspberry Pi.  Assuming you have installed the Raspberry Pi Operating System or another Linux distribution, then ideally all your files should be edited so they simply use Line_feed to terminate all lines. This can be easily done in an editor like Notepad++ that is designed for computer files.&lt;br /&gt;
&lt;br /&gt;
The novice does not need to worry about changing end of line characters, it is advisable but not essential (as the Pi will treat the CR as a character it does not display)&lt;br /&gt;
&lt;br /&gt;
To get the entire content of your existing  &#039;&#039;&#039;data&#039;&#039;&#039; and &#039;&#039;&#039;Reports&#039;&#039;&#039; folder onto your Pi:&lt;br /&gt;
*you could copy them onto the micro-SD card (and move that between PC and Pi)&lt;br /&gt;
*you can transfer files across the wireless or Ethernet network using FileZilla Client (or an alternative file transfer tool). &lt;br /&gt;
&lt;br /&gt;
First of all you need to configure FileZilla Client, unless you have done that previously and saved the configuration:&lt;br /&gt;
*The quickest way is to fill out the &amp;quot;quick connect boxes&amp;quot;.&lt;br /&gt;
* Host - this is the IPv4 address of your Pi, I can&#039;t tell you what it is, but it is likely to be &#039;&#039;&#039;192.168.z.xy&#039;&#039;&#039; where the z is probably &amp;quot;1&amp;quot;, but it could be another single figure like 0, and the xy is two (or perhaps three) figures you can find out by looking for &amp;quot;pi&amp;quot; (or whatever host username you have set on your Pi) in the admin interface for your hub or router. (It can also be found out by typing &amp;lt;tt&amp;gt;hostname -I&amp;lt;/tt&amp;gt;). Most networks are setup in a way that the subnet range is from 192.168.1.0 to 192.168.1.255.&lt;br /&gt;
**If your Raspberry Pi has both Wireless and Ethernet connections, you will have two possible IPv4 addresses, choose either, the Ethernet one is likely to be quicker.&lt;br /&gt;
* Username - the default for this is &#039;&#039;&#039;raspberrypi&#039;&#039;&#039; (although on older Pi it might be &#039;&#039;&#039;Pi&#039;&#039;&#039;), but you can may have changed this (as described earlier). (It can be found by typing &amp;lt;tt&amp;gt;hostname&amp;lt;/tt&amp;gt;) or by looking at the contents of the file &#039;&#039;&#039;/etc/hostname&#039;&#039;&#039;.&lt;br /&gt;
* Password - again the default for this is &#039;&#039;&#039;raspberry&#039;&#039;&#039; but we changed it as one of the mandatory configurations earlier.&lt;br /&gt;
* Port - 22 is the default, and I have not said how you can change this!&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;QuickConnect&#039;&#039;&#039; and you should see the local files in the left frame and your Pi home files in the right frame. The easiest way is to find the folder called &#039;&#039;&#039;data&#039;&#039;&#039; in the distribution on the left and drag it to the correct position in the right hand frame. Then all you need to do is watch the progress until it successfully finishes.&lt;br /&gt;
&lt;br /&gt;
If you are going to continue using Filezilla, there are options to save the current configuration and to set up a number of alternative configurations (specifying in advanced tab different locations on your PC and different locations on your Pi).&lt;br /&gt;
&lt;br /&gt;
== Running Cumulus MX ==&lt;br /&gt;
&lt;br /&gt;
(When these notes were written, there were topics in the support forum about ways to use scripts for starting/stopping MX, but the distribution did not include any such controlling scripts. The latest MX version includes a script allowing MX to be run as a service, and perhaps someone would be kind enough to expand the first sub-section).&lt;br /&gt;
&lt;br /&gt;
=== Running as a service ===&lt;br /&gt;
&lt;br /&gt;
(awaiting someone to explain this)&lt;br /&gt;
&lt;br /&gt;
=== Running with a terminal session left open ===&lt;br /&gt;
&lt;br /&gt;
Whichever operating system you are using, to run MX requires an instruction that changes to the directory where it is installed (the instruction below is assuming it is in the standard Pi user home directory, the change directory command will be different if you have installed it elsewhere), and then starting the executable (using mono in the instruction below that applies to any non-Windows operating system). You may wish to add [[Cumulus_MX#Optional_parameters_to_add_to_the_instruction_to_run_the_MX_engine|Optional_parameters]].&lt;br /&gt;
&lt;br /&gt;
The simplest instruction to run Cumulus MX  is &amp;lt;tt&amp;gt;cd CumulusMX &amp;amp;&amp;amp; sudo mono CumulusMx.exe&amp;lt;/tt&amp;gt;.  Just in case it is not obvious .... if you start MX using this command in a terminal window on your Pi, you must leave that session running, then MX will continue to run. &lt;br /&gt;
&lt;br /&gt;
You can start it off directly on your Pi, and then&lt;br /&gt;
*optionally disconnect the keyboard, &lt;br /&gt;
*switch off monitor or TV attached to your Pi, &lt;br /&gt;
*Just ensure you leave Pi on so that terminal session continues running.&lt;br /&gt;
&lt;br /&gt;
== A very quick introduction to Linux ==&lt;br /&gt;
&lt;br /&gt;
This article is not the place to teach you Linux, you can find books and on-line articles for yourself, but I list here enough for you to understand the instructions used elsewhere in this article.&lt;br /&gt;
&lt;br /&gt;
If you have a Raspberry Pi with a monitor attached, you will see a raspberry icon that you can click to get access to many features including shutdown options.&lt;br /&gt;
&lt;br /&gt;
=== sudo ===&lt;br /&gt;
&lt;br /&gt;
Almost all instructions, given in this article, start with a &amp;quot;sudo&amp;quot;, it basically gives administrative rights to whatever follows, and therefore allows a standard Pi user to do tasks that otherwise only work for the root user.  You use it as a prefix to almost every command you type in terminal mode.  There are 3 system commands that in terminal mode will only ever work with this prefix (although if you have installed the version of the Raspberry Pi Operating System that supports a graphical user interface you can also select these actions from a menu):&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;sudo halt&#039;&#039;&#039; = stops any cpu functions, but leaves Pi running; used when you have reached the end of commands you want to do for now&lt;br /&gt;
*&#039;&#039;&#039;sudo poweroff&#039;&#039;&#039; = makes pi do a tidy shutdown and turn off its power; used when you will not be using your Pi for a while&lt;br /&gt;
*&#039;&#039;&#039;sudo reboot&#039;&#039;&#039; (or &amp;quot;sudo reboot -verbose&amp;quot; for diagnostic output during shutdown and reboot) = makes your Pi close down and then reboot; used when you change settings, and after you install new software, to ensure Pi starts with all applications running using the latest settings and latest already installed software&lt;br /&gt;
&lt;br /&gt;
=== ~ and / ===&lt;br /&gt;
&lt;br /&gt;
The tilde symbol &#039;&#039;&#039;~&#039;&#039;&#039; denotes the home directory for the current user.  Sub-directories within the current user&#039;s folder can be identified by &#039;&#039;&#039;~/documents&#039;&#039;&#039; or similar notation. To reference a folder in root or any other area, the prefix is always &#039;&#039;&#039;/&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To see what files and folders are in the current directory, type &amp;lt;tt&amp;gt;dir&amp;lt;/tt&amp;gt; for just names or &amp;lt;tt&amp;gt;ls&amp;lt;/tt&amp;gt; for details.&lt;br /&gt;
&lt;br /&gt;
To make a new folder in the current directory, type &amp;lt;tt&amp;gt;sudo mkdir folder_name&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
=== chmod ===&lt;br /&gt;
&lt;br /&gt;
When you are attempting any of the actions listed in this article that involve reading, creating, editing, or moving, files; you might see an error message generally because of a lack of write permissions on an existing file or folder.   Whilst &amp;lt;tt&amp;gt;rm filename&amp;lt;/tt&amp;gt; will remove a file even if it is write protected, for nano you need to change the file permissions with &amp;lt;tt&amp;gt;sudo chmod -R ugo+rw ~/CumulusMX&amp;lt;/tt&amp;gt; for full access to all files in your Cumulus installation (see the syntax below if you want to restrict access).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;chmod&#039;&#039;&#039; command to modify permissions&lt;br /&gt;
* the &#039;&#039;&#039;-R&#039;&#039;&#039; indicates recursive action (i.e. including not just the named folder, but all files within it and all sub-folders, and all files within sub-folders)&lt;br /&gt;
*letters indicating whose permission is being modified&lt;br /&gt;
** &#039;&#039;&#039;u&#039;&#039;&#039; = Owning user (sometimes the owner is the user root, sometimes the owner is the user Pi, for our web pages later we change ownership)&lt;br /&gt;
** &#039;&#039;&#039;g&#039;&#039;&#039; = Group (by default the owning user is also a group, but a group can be defined if you want to give multiple users (with different passwords) the same rights of access)&lt;br /&gt;
** &#039;&#039;&#039;o&#039;&#039;&#039; = Other users (write permission here is needed if for example you are using FTP to move a file from a PC to your Pi, or vice versa)&lt;br /&gt;
* sign for add or remove permissions&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; = add permission&lt;br /&gt;
* &#039;&#039;&#039;-&#039;&#039;&#039; = remove permission&lt;br /&gt;
*letters indicating what permission is being changed&lt;br /&gt;
** &#039;&#039;&#039;r&#039;&#039;&#039; = read [4]&lt;br /&gt;
** &#039;&#039;&#039;w&#039;&#039;&#039; = write [2]&lt;br /&gt;
** &#039;&#039;&#039;x&#039;&#039;&#039; = execute [1]&lt;br /&gt;
&lt;br /&gt;
Note that as an alternative shorter syntax you can use numbers e.g. &#039;&#039;&#039;666&#039;&#039;&#039; is equivalent to &#039;&#039;&#039;ugo+rw&#039;&#039;&#039;. The first digit in the number relates to &#039;&#039;u&#039;&#039;, the second to &#039;&#039;g&#039;&#039; and the last to &#039;&#039;o&#039;&#039;. The values in [] brackets in list of permissions above are added to derive each digit.  So if you are reading the Cumulus support forum and you see a reference to permissions which includes a string of 3 digits, now you can understand what is meant.&lt;br /&gt;
&lt;br /&gt;
=== nano ===&lt;br /&gt;
&lt;br /&gt;
There are various text editors available on a Pi, &#039;&#039;&#039;nano&#039;&#039;&#039; is a simple one. &lt;br /&gt;
&lt;br /&gt;
Like other text editors this can create a file when a file does not exist and edit (subject to file permissions) an existing file. &lt;br /&gt;
&lt;br /&gt;
Use prefix of &#039;sudo&#039; to give you access to any file, &#039;&#039;&#039;sudo&#039;&#039;&#039; does not change the actual file permissions, so you might find you can read a file, but not save it after you have done your edit.  &lt;br /&gt;
&lt;br /&gt;
When in nano you select to write out to a file, it allows you to change the file name shown. If you choose to save as another file, you will be asked if the new name is correct (again type &#039;&#039;&#039;Y&#039;&#039;&#039; to continue saving).  &lt;br /&gt;
&lt;br /&gt;
Do remember that file names are case sensitive, and when you open an existing file for editing look in case &amp;quot;new file&amp;quot; message appears because you have made a typo in the path/file name.&lt;br /&gt;
&lt;br /&gt;
The full syntax is &amp;lt;tt&amp;gt;sudo nano -B Path_file_name&amp;lt;/tt&amp;gt; where the &#039;&#039;&#039;-B&#039;&#039;&#039; means it will create a backup of how the file was before (this can be enabled while in the editor by pressing the control key down and typing B). Alternatively use &#039;&#039;&#039;-C&#039;&#039;&#039; which stores each version in a back-up directory.  If you want to edit from a particular line and column you can use &#039;&#039;&#039;+line.column&#039;&#039;&#039;, and also optionally use &#039;&#039;&#039;-l&#039;&#039;&#039; (lower-case &amp;quot;L&amp;quot;) to display line numbers which might be useful when trying to correct a problem with a log file like [[dayfile.txt]].  If you don&#039;t specify a file name, then nano will create a new file and you will need to specify where to save it before exit.&lt;br /&gt;
&lt;br /&gt;
You will probably find it useful to type &amp;lt;tt&amp;gt;sudo nano /etc/nanorc&amp;lt;/tt&amp;gt; as this puts you into the configuration file for nano where you can set back-up, line-numbering, and other options&lt;br /&gt;
&lt;br /&gt;
After typing the nano command you need to specify a filename (it might include a path, see earlier sub-section for use of &#039;&#039;&#039;/&#039;&#039;&#039; and &#039;&#039;&#039;~&#039;&#039;&#039;) and there are examples later in this article, but if you decide to &#039;&#039;host a web site on your Pi&#039;&#039; then you might want to edit its home page with (.html or .php) name like &amp;lt;tt&amp;gt;sudo nano /var/www/html/index.php&amp;lt;/tt&amp;gt;.  After you have made an alteration to the current contents of the file, various options are shown at the bottom. Here are two key ones:&lt;br /&gt;
*First is &#039;&#039;&#039;^O&#039;&#039;&#039; which is used to save the file whilst staying in the editor, to do this press the control key down and type O. Next it shows the current file name, if you press &#039;&#039;&#039;Enter&#039;&#039;&#039; then that file will be overwritten.&lt;br /&gt;
*Another is &#039;&#039;&#039;^X&#039;&#039;&#039; which means if you press the control key down and type X you get the exit dialogue. If you have not made any edits, or have already saved the file, this just exits the editor. If you have not used control and O to save the file, it asks whether you want to save the edited file (type &#039;&#039;&#039;Y&#039;&#039;&#039;), typing just the Y key lets save continue (any other key stroke exits without saving), then it shows the current file name, if you press &#039;&#039;&#039;Enter&#039;&#039;&#039; then that file will be overwritten.&lt;br /&gt;
&lt;br /&gt;
=== install ===&lt;br /&gt;
&lt;br /&gt;
This is used for installing packages, you will often see it used with a parameter &#039;&#039;&#039;-y&#039;&#039;&#039;; as without that parameter you have to type &#039;&#039;&#039;Y&#039;&#039;&#039; to continue at each step of an install.&lt;br /&gt;
&lt;br /&gt;
It is important to mention here that the version of packages installed may well be obsolete, this install is finding versions from a Raspberian repository, more recent versions may be available from the providers of each package. To keep this article simple, I accept the Operating System that is installed by NOOBS, even if it is not the latest available from the Raspberian web site, I accept the versions of Mono, Apache, PHP, MariaDB, and others, that are found at the time you issue the install command. The update and upgrade command that I use in multiple places in this article is still only finding the versions available in the repository, and is included just in case the repository is being updated after any install finishes.&lt;br /&gt;
&lt;br /&gt;
If you have more skill than the level of the person at which this article is aimed at, then you should know how to install the latest version from the appropriate web sites.&lt;br /&gt;
&lt;br /&gt;
=== removing an unwanted file ===&lt;br /&gt;
&lt;br /&gt;
You can remove a file or a folder with various commands, including &amp;lt;tt&amp;gt;sudo rm filename&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
I have created a section here, in case anyone wants to add any more instructions. Please feel free to rename it, or indeed add any clarification anywhere in this article.&lt;br /&gt;
&lt;br /&gt;
Meanwhile, look at either [https://raspberrytips.com/raspberry-pi-commands/ this web page] or [https://www.ubuntupit.com/useful-raspberry-pi-commands/ this one] for more commands.&lt;br /&gt;
&lt;br /&gt;
=Optional actions=&lt;br /&gt;
&lt;br /&gt;
An alternative way to load Cumulus MX onto a Raspberry Pi is by using docker (a package installation), it may not be kept up to date but there is such a package at [https://github.com/magimat/rpi-cumulusmx rpi-cumulusmx] and a very old one at [https://github.com/Apollorion/CumulusMX-Docker CumulusMX-Docker].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Any novice can stop reading now, as preceding sections have covered all you need to do to use a Raspberry Pi (or other Unix-based device) to run MX.&lt;br /&gt;
&lt;br /&gt;
However, some people want to do more, so various options are covered in the remainder of this article. If you are a novice, my advice is don&#039;t experiment with what is mentioned after this until you are happy that all you have done up to now works.  The rest of this article does get more technical, so it might be harder to understand and harder to implement. With that warning in mind, I must add that the remaining sections cover a number of items and it is very likely that some of them could be useful to you.&lt;br /&gt;
&lt;br /&gt;
There are lots of sub-sections, so you can skip over those that do not interest you, while carefully reading the ones that could benefit you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Standard action before adding any extra packages ==&lt;br /&gt;
&lt;br /&gt;
*We run &amp;lt;tt&amp;gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&amp;lt;/tt&amp;gt; to ensure all packages are up to date before we attempt to add another package. &lt;br /&gt;
*I remind you here that this does not update everything on your computer to the latest versions available for a Pi, that requires a different (more risky) command not taught here.  &lt;br /&gt;
*Instead, the instruction quoted above just updates your Pi to a consistent state; based on what is in the repository you are already using.&lt;br /&gt;
&lt;br /&gt;
This action is not repeated below, but potentially applies to all options below.&lt;br /&gt;
&lt;br /&gt;
==Databases built into Cumulus MX==&lt;br /&gt;
&lt;br /&gt;
You do not need to know what is in these databases to use MX.&lt;br /&gt;
&lt;br /&gt;
Cumulus MX includes two SQLite databases;&lt;br /&gt;
#The first database was added by Steve Loft, but he never documented what it is used for (see [[Cumulusmx.db]]) and in the support forum when someone asked, nobody was able to answer.&lt;br /&gt;
#*If you do find out what the first database is used for, please update the Wiki article on it!&lt;br /&gt;
#The second database is the Weather Diary [[Weather Diary|documented here]] added by Mark Crossley. Also see [https://cumulus.hosiene.co.uk/viewtopic.php?f=37&amp;amp;t=17919 in the support forum] for a topic comparing the differences between Cumulus 1 and Cumulus MX weather diaries. &lt;br /&gt;
#* The [[MX Administrative Interface|Admin Interface]] provides a page to view, or edit, a single date in the weather diary. You can install another tool that edits SQLite databases if you want (see next section).&lt;br /&gt;
&lt;br /&gt;
===Editing the Weather Diary===&lt;br /&gt;
&lt;br /&gt;
You can install phpLiteAdmin (the significant part of that name is in the middle) to read (you can display the whole table very easily) and edit (via a friendly GUI) either, or both, of those SQLite databases. &lt;br /&gt;
&lt;br /&gt;
Install it using &amp;lt;tt&amp;gt;sudo apt install phpliteadmin&amp;lt;/tt&amp;gt;. You will need to follow the instructions in &#039;&#039;&#039;/usr/share/phpliteadmin/phpliteadmin.php&#039;&#039;&#039; to change the password, and to define the path to the database you want to read, as both databases have the wrong extension to be found automatically. You may need to change file permissions.&lt;br /&gt;
&lt;br /&gt;
I find the admin interface is not reliable for updating the weather diary; it often fails to store an update, without giving any error either on the editing screen or in the MXDiags file. So, I prefer to use phpliteadmin for making changes to the Weather Diary database now. I can use it from a browser on any of my devices.&lt;br /&gt;
&lt;br /&gt;
== Adding a web server and a database server ==&lt;br /&gt;
&lt;br /&gt;
This is an option, and may not be useful to you, but is described here in case it is something that you want to do. &lt;br /&gt;
&lt;br /&gt;
This option is not needed if your MX simply updates to an external web service (several are listed in the options in the admin interface), so you do not use the web templates supplied with MX (nor any alternative web pages created by you or a third party).&lt;br /&gt;
&lt;br /&gt;
This option is not needed if you have subscribed to a commercial web server (and optionally database server).&lt;br /&gt;
&lt;br /&gt;
Now you have a Raspberry Pi (or another device than can be left running all the time without consuming a lot of electricity), you &#039;&#039;might&#039;&#039; want to add a web server and database server so you can make use of the web templates that Cumulus MX provides, and its ability to update database tables. &lt;br /&gt;
&lt;br /&gt;
You might want this option if you are creating your own web pages, and want to try them out without exposure to the public over the internet.&lt;br /&gt;
&lt;br /&gt;
You might select this option to save the subscription costs of a commercial web server (and optionally database server).&lt;br /&gt;
&lt;br /&gt;
=== Install Apache 2 (or another web server) ===&lt;br /&gt;
&lt;br /&gt;
I will mention 3 possible web servers:&lt;br /&gt;
#You might choose &#039;&#039;&#039;Apache 2&#039;&#039;&#039; as it is probably the most comprehensive, so if you have enough space on your Pi, install it using &amp;lt;tt&amp;gt;sudo apt install apache2 -y&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
#*You might want to add Fast CGI (if you don&#039;t know what that is, skip this) and therefore add &amp;lt;tt&amp;gt;sudo apt-get install libapache2-mod-fcgid&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#You might choose &#039;&#039;&#039;nginx&#039;&#039;&#039;, as it is quite popular for small computers like the Pi, install that web server with &amp;lt;tt&amp;gt;sudo apt-get install nginx -y&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#You might choose &#039;&#039;&#039;lighttpd&#039;&#039;&#039;, as it is designed to use as little space on your Pi as possible, install it with &amp;lt;tt&amp;gt;sudo apt-get install lighttpd -y&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Install PHP Hypertext Pre-processor ===&lt;br /&gt;
&lt;br /&gt;
*PHP is not the only script language available, but it is quite comprehensive &lt;br /&gt;
**being able to be used either in a fairly simple way by non-technical people &lt;br /&gt;
**or in an object-oriented way for those more technical to achieve success with more complex scripts.  &lt;br /&gt;
*The simplest instruction to install it is &amp;lt;tt&amp;gt;sudo apt install php -y&amp;lt;/tt&amp;gt;, which version you get depends on your Pi and its operating system. &lt;br /&gt;
*To check which PHP modules have been installed by the above command, type &amp;lt;tt&amp;gt;php -m&amp;lt;/tt&amp;gt;. &lt;br /&gt;
*If you later want to use a database (and a tool like PhpMyAdmin), then your php modules loaded must include at least &#039;&#039;&#039;mysqli&#039;&#039;&#039; and &#039;&#039;&#039;mbstring&#039;&#039;&#039;. &lt;br /&gt;
*I will explain how to find the .ini files later, but unwanted modules can be commented out in your .ini file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alternatively&#039;&#039;&#039;, you can install particular php modules, or a particular PHP version, by selecting components from a list. To do this type something like &amp;lt;tt&amp;gt;sudo apt install php7-fpm php7-cgi php7-cli php7-common php7.3-mbstring php7.3-mysql php7.3-curl php7.3-gd php7.3-zip -y&amp;lt;/tt&amp;gt;. Only use this approach to force a particular version (but you may find that is not available), or if you are short of space, and you are only going to use a minority of the php features available in the full set of modules. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To test that php is installed, type &amp;lt;tt&amp;gt;php -v&amp;lt;/tt&amp;gt; into terminal, and you will see the exact version that has been installed, a confirmation that it offers command line interface (cli), and a copyright notice.&lt;br /&gt;
&lt;br /&gt;
===Creating a Home web page on your web server===&lt;br /&gt;
&lt;br /&gt;
You may wish to create a index.php web page at /var/www/html which is the web server root for browsing, or of course you may wish to copy or FTP here all your existing web pages. To view a php web page, go into a browser and type in a url with the same IPv4 address as you use for the admin interface, omit the port (:8998) and instead type in your web page name (e.g. //192.168.1.&#039;&#039;&#039;xy&#039;&#039;&#039;/index.php, where you need to determine digits that replace &#039;&#039;&#039;xy&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
===Finding your PHP configuration file===&lt;br /&gt;
&lt;br /&gt;
For sake of simplicity in this article, from now on I will assume the web server you installed is &amp;quot;apache2&amp;quot;, change that segment (in the paths quoted below here), if you installed a different web server.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;web server&#039;&#039; main &#039;&#039;&#039;php.ini&#039;&#039;&#039; is found at &#039;&#039;/etc/php/7.n/apache2/php.ini&#039;&#039; (where &#039;n&#039; depends on your Raspberry OS version and therefore which PHP version was installed, that was found out in last sub-section). &lt;br /&gt;
&lt;br /&gt;
You may need to edit this file for example to specify where your include files are stored (if not in same folder as script with require/include). Replace &amp;quot;apache2&amp;quot; by &amp;quot;cli&amp;quot; in the path for the &#039;&#039;batch&#039;&#039; &#039;&#039;&#039;php.ini&#039;&#039;&#039; file that you may also need to edit.&lt;br /&gt;
&lt;br /&gt;
To run a php script in batch, type &amp;lt;tt&amp;gt;php - f &amp;lt;file_name&amp;gt;&amp;lt;/tt&amp;gt;. You can redirect the output by adding a greater than symbol and the destination file (i.e. &amp;gt; log_file) on the same terminal line.  &lt;br /&gt;
&lt;br /&gt;
If you want the MX external commands to run a PHP script for you, use something like &amp;quot;sh&amp;quot; as the program to run (i.e. run shell script); and in the parameters something like&lt;br /&gt;
&#039;&#039;&#039;/home/pi/CumulusMX/MXutils/autoEOD.sh&#039;&#039;&#039; will run a script &amp;quot;autoEOD.sh&amp;quot; you have added to the &amp;quot;MXutils&amp;quot; folder. In that script, you put something like (assuming you have added a folder &#039;batch&#039; with a subfolder &#039;log&#039;):&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# This MX batch command file is initiated automatically by Cumulus MX software during last stage of processing the end of a meteorological day&lt;br /&gt;
echo &amp;quot;It stores feedback in log file CumulusMXDailyBatch (file name ends with day of month)&amp;quot;&lt;br /&gt;
sudo php -f the_path_and_filename_goes_here.php &amp;gt; /home/pi/CumulusMX/batch/log/DailyBatch_Day$(date +%d).log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install Maria database ===&lt;br /&gt;
&lt;br /&gt;
MySQL database software is controlled by Oracle and not made available for inclusion in Raspberry Pi repository.&lt;br /&gt;
&lt;br /&gt;
Maria is an alternative that has largely similar command syntax so is likely to work with code (like MX) designed to work with MySQL. Since the MX developer (Mark Crossley) actually uses Maria DB, we can have plenty of confidence it is suitable. &lt;br /&gt;
&lt;br /&gt;
To install this database server, we type &amp;lt;tt&amp;gt;sudo apt install mariadb-server php-mysql -y&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Our database files will be stored at &#039;&#039;&#039;/var/lib/mysql&#039;&#039;&#039; by default. Our MariaDB configuration is stored at &#039;&#039;&#039;/etc/mysql/mariadb.conf.d/50-server.cnf&#039;&#039;&#039;, and it is the &#039;&#039;datadir=&#039;&#039; entry that controls where the database files are stored.&lt;br /&gt;
&lt;br /&gt;
=== Making your database secure ===&lt;br /&gt;
&lt;br /&gt;
We need to assign passwords to control access to the database by typing into terminal &amp;lt;tt&amp;gt;sudo mysql_secure_installation&amp;lt;/tt&amp;gt;.  That brings up a screen:&lt;br /&gt;
# where we are asked to type current password for the root (as no password has yet been set, simply press Enter),&lt;br /&gt;
# next type &#039;&#039;&#039;Y&#039;&#039;&#039; to signify we are going to set a new password for &#039;&#039;&#039;root&#039;&#039;&#039;,&lt;br /&gt;
# next type in a new password that you will not forget,&lt;br /&gt;
# next as explained on the screen we are going to say whether users must select a user name as well as a password, type &#039;&#039;&#039;Y&#039;&#039;&#039; to &#039;&#039;Remove anonymous users&#039;&#039;&lt;br /&gt;
# next we have to decide whether we will only be logging into the database on our Pi (using Localhost) or we might be logging in remotely; type Y or N respectively, but if you choose N remember someone other than you might guess there is a root user and might guess the password you set,&lt;br /&gt;
# next we have another option of whether to retain or delete a test database, answer N or Y respectively, I would keep the test database for now as you can play with it and then remove it later,&lt;br /&gt;
# finally you type in another Y as that will &#039;&#039;&#039;Reload the privilege tables&#039;&#039;&#039; and ensure all is set up for your access to the database later.&lt;br /&gt;
&lt;br /&gt;
The message, when the process successfully completes, is &amp;quot;Thanks for using MariDB&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Installing Adminer, or PhpMyAdmin ===&lt;br /&gt;
&lt;br /&gt;
ExportMySQL.exe and CumulusMX.exe (see [[Cumulus_MX#Executables]] for details) both create SQL for updating tables in a MySQL database, such as the one our MariaDB software package we have installed can create.&lt;br /&gt;
&lt;br /&gt;
However, there is nothing in the MX distribution that lets us back up and manipulate (e.g. delete rows with errors, or correct rogue numbers in a column) tables in this database. This option is about installing a package to do the tasks that go with operating a database.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PhpMyAdmin&#039;&#039;&#039; is one tool that can be used to manipulate your MySQL like database (that is the significance of the &amp;quot;My&amp;quot; bit in the middle of the tools&#039;s name).&lt;br /&gt;
&lt;br /&gt;
You may like &#039;&#039;&#039;PhpMyAdmin&#039;&#039;&#039; as this offers:&lt;br /&gt;
* a graphical approach (you see a table on screen and navigate to the row or cell you want to work on)&lt;br /&gt;
* a SQL approach (you can try out any SQL here, before adding it to a script that you might use in a web page)&lt;br /&gt;
* a selection approach (you select a database, then select a table, then select an action)&lt;br /&gt;
&lt;br /&gt;
#Start the install with &amp;lt;tt&amp;gt;sudo apt install phpmyadmin -y&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
#The PhpMyAdmin installer will ask some questions. &lt;br /&gt;
#Use your tab key to select &amp;lt;Yes&amp;gt; when it asks whether you want to configure with &#039;&#039;&#039;dbconfig-common&#039;&#039;&#039;. &lt;br /&gt;
#The version of phpmyadmin in the repository is not compatible with PHP7.2 and above, so follow the instructions at https://devanswers.co/manually-upgrade-phpmyadmin/ to upgrade it to latest phpmyadmin (you might substitute &amp;quot;english&amp;quot; for &amp;quot;all-languages&amp;quot; if you only need the one language).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may prefer to install a different tool, perhaps &#039;&#039;&#039;adminer&#039;&#039;&#039; that works using a drill down approach. A drill down approach is when you select the database, then select the table, then select the row, then select the column, then select the action.  This logical step by step approach is a popular approach, but does not suit everyone. &lt;br /&gt;
&lt;br /&gt;
Install this drill down package with &amp;lt;tt&amp;gt;sudo apt install adminer&amp;lt;/tt&amp;gt; (I leave you to work out the commands needed after that).&lt;br /&gt;
&lt;br /&gt;
===Getting web and database servers ready for use===&lt;br /&gt;
&lt;br /&gt;
We need to create a user for PhpMyAdmin (or adMiner or whatever) to access our database and another for Cumulus to use to access the database tables. At the moment our database access has the single root@localhost user we created when we installed MariaDB.  The initial password was set then, and we need to use it to get access to MariDB monitor where we can insert some SQL commands to create these two users. &lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin on first start up will ask for username (here I choose &amp;quot;admin&amp;quot;) and password, thereafter it will use same log-in (by default you see log-in screen each time you restart or if it is left idle for a long time), let us create a user called &#039;admin&#039; for it. &lt;br /&gt;
&lt;br /&gt;
The database name  (here I choose &amp;quot;cumulus&amp;quot; for the data base name), user name (here I choose &amp;quot;weather&amp;quot; for the user name), and password, must all match those set in MX using the [[MX_Administrative_Interface#MySQL_settings|MySQL_settings]] in the admin interface. You could of course use PhpMyAdmin  (or AdMiner) to create additional user names, and to create the database, but I assume all is done in the following bit of SQL.  Remember, the Windows operating system is not case sensitive, but all Linux based operating systems are case sensitive (so whatever pattern of capitals and lowercase you choose must be used every time.  Also all names must start with a letter, can contain only letters or digits (no punctuation), and must not be a reserved word (&amp;quot;password&amp;quot; is a reserved word, so you cannot use that for a password, nor for a column name).&lt;br /&gt;
&lt;br /&gt;
Obviously, these names might not be what you use, but you can amend commands below accordingly. For each line with SQL, it must end with a semicolon (;) as shown.  After you press &amp;quot;Enter&amp;quot; key you will get a response saying &amp;quot;OK&amp;quot; if you have remembered the semi-colon. You can actually use  &amp;quot;\G&amp;quot; or &amp;quot;\g&amp;quot; instead of a semi-colon, but here we will keep it simple and stick to semi-colon.&lt;br /&gt;
&lt;br /&gt;
The SQL lines have a prompt of a greater than symbol (&amp;gt;) while the command lines have a prompt showing current path. Note that &amp;quot;identified by&amp;quot; is followed by a password enclosed in single quotes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mysql --user=root --password=InitialPassword&lt;br /&gt;
create user admin@localhost identified by &#039;PhpMyAdminPassword&#039;;&lt;br /&gt;
create user weather@localhost identified by &#039;MXPassword&#039;;&lt;br /&gt;
grant all privileges on *.* to admin@localhost;&lt;br /&gt;
grant all privileges on *.* to weather@localhost;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
create database cumulus;&lt;br /&gt;
exit;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As I type this, Cumulus MX has no exception handling if the username and password defined in the settings do not exist in the database, therefore in this situation it will crash out (with message press Enter to close).&lt;br /&gt;
&lt;br /&gt;
=== Commands to ensure PhpMyAdmin will work ===&lt;br /&gt;
&lt;br /&gt;
The following sequence of commands will&lt;br /&gt;
* add the mysqli module to our php install, &lt;br /&gt;
*will restart apache, &lt;br /&gt;
*will create a symbolic link for the phpadmin installation to the server web root so it can be seen (and used) in our browser, &lt;br /&gt;
*will give the standard user (pi) ownership of the database files and the web pages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo phpenmod mysqli&lt;br /&gt;
sudo service apache2 restart&lt;br /&gt;
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin&lt;br /&gt;
sudo  chown -R pi:www-data /var/www/html/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Viewing web pages on our new web server===&lt;br /&gt;
&lt;br /&gt;
You can view any index.php or PHPMyAdmin web page in your browser by prefixing the address with your Pi IPv4 address e.g. a URL like  &#039;&#039;&#039;http://192.168.1.xyz/phpmyadmin&#039;&#039;&#039; where &#039;&#039;xyz&#039;&#039; is 2 or 3 digits you look up as mentioned before where FTP was described.  If your Pi has both Ethernet and wireless connection, there will be two different values of &#039;&#039;xyz&#039;&#039; for you to choose one from.  On first run of PhpMyAdmin, as already mentioned, you will see a &#039;&#039;&#039;PHP MyAdmin log-on page&#039;&#039;&#039; where you type username and password we have just set up.&lt;br /&gt;
&lt;br /&gt;
===Populating your database tables on your Pi===&lt;br /&gt;
&lt;br /&gt;
Cumulus MX has functionality to update database tables at one of 3 intervals:&lt;br /&gt;
#real-time&lt;br /&gt;
#standard interval&lt;br /&gt;
#end of day&lt;br /&gt;
&lt;br /&gt;
The database tables can use the column names in the schemas pre-defined by Cumulus MX or in a custom schema (where you specify the column names).  The settings are all in [[MX_Administrative_Interface#MySQL_settings]], so read that section to find out more.&lt;br /&gt;
&lt;br /&gt;
You might have started using MX before you set up your database.  There is a option in that part of the admin interface to create database tables (as required) for each of the 3 updating intervals.  For example, the default name for the table updated at the standard interval is &amp;quot;monthly&amp;quot;, but you could give it a name of &amp;quot;standard&amp;quot; or whatever you like.&lt;br /&gt;
&lt;br /&gt;
The MX release distribution includes another executable.  Type &amp;lt;tt&amp;gt;cd CumulusMX &amp;amp;&amp;amp; sudo mono ExportMySQL.exe monthly&amp;lt;/tt&amp;gt; to run the executable. The first parameter is &amp;quot;monthly&amp;quot; even if the table has a different name. &lt;br /&gt;
#if the table name is defined in the admin interface, and the table already exists in the database with the correct columns defined, then the executable will use that table.&lt;br /&gt;
#There is an optional second parameter that specifies the log file name to read.&lt;br /&gt;
#*if the second parameter is not specified, this executable will look at every log file (in &amp;quot;data&amp;quot; folder and with file name that starts with month, then has &amp;quot;log.txt&amp;quot;), &lt;br /&gt;
# for each line in the log file the executable will try to insert a row in the database table&lt;br /&gt;
#*the SQL syntax used is &amp;quot;insert ignore&amp;quot;, so if the row for that log file line already exists in the table, it will skip onto next line of log file.&lt;br /&gt;
&lt;br /&gt;
Similar instructions apply for the end of day table, although as there is only one daily summary log file, there is no optional second parameter, just type &amp;lt;tt&amp;gt;cd CumulusMX &amp;amp;&amp;amp; sudo mono ExportMySQL.exe dayfile&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There is no way to use this executable for insert of past rows into the real-time table.&lt;br /&gt;
&lt;br /&gt;
If you have been running Cumulus on another device previously and already have database tables, the next section explains how you can create SQL to export your old database and use that SQL to populate the new table.&lt;br /&gt;
&lt;br /&gt;
===Transferring database tables to your Pi===  &lt;br /&gt;
&lt;br /&gt;
If you have been using Cumulus before (and already have a database) then you can use PhpMyAdmin on your old device to &#039;&#039;&#039;export&#039;&#039;&#039; out all the &#039;&#039;&#039;Cumulus tables as SQL&#039;&#039;&#039; in a zip file, FTP that zip file across to your Pi, then use PhpMyAdmin on your Pi to &#039;&#039;&#039;import&#039;&#039;&#039; that zip file.  &lt;br /&gt;
&lt;br /&gt;
Providing you selected the right options for what SQL you created in your export, the import will contain SQL to create the tables and to insert all the rows into each Cumulus table on your Pi. Please note that there is a limit of around 1000 rows that can be imported in one action, so for your bigger tables, you will only create the table once, but you will do several &#039;&#039;&#039;Replace&#039;&#039;&#039; row actions (export from old device, then import to Pi) each transferring just one thousand rows, until the whole table is on the Pi. You may prefer to use &amp;quot;ExportMySQL.exe&amp;quot; as described in previous section to recreate your bigger tables from the Cumulus log files.&lt;br /&gt;
&lt;br /&gt;
You might want to also &#039;&#039;&#039;export/import the tables in the PhpMyAdmin database&#039;&#039;&#039; (as they contain your preferences for each of your tables) in a separate zip, although these might need some extra transformations, as they are specific to a particular version of the database server (and the old database server version may not match the MariaDB version on your Pi). Some PhpMyAdmin tables do change for different versions of the tool, so that too may make export/import of its tables more complicated.&lt;br /&gt;
&lt;br /&gt;
=== Restarting Web Server ===&lt;br /&gt;
&lt;br /&gt;
After all these installs, we need to restart Apache (so it loads the PHP and MariaDB), by typing &amp;lt;tt&amp;gt;sudo service apache2 restart&amp;lt;/tt&amp;gt; or  (if we just want the Apache configuration reloaded) by typing &amp;lt;tt&amp;gt;sudo systemctl reload apache2&amp;lt;/tt&amp;gt;.  Similar commands apply for other web servers.&lt;br /&gt;
&lt;br /&gt;
We will need to restart Apache (or whichever web server we installed) any time we change our php.ini files, database passwords, and anything else that is checked when the web server starts.&lt;br /&gt;
&lt;br /&gt;
== Operating your Raspberry Pi in headless mode ==&lt;br /&gt;
&lt;br /&gt;
The terminology &amp;quot;headless&amp;quot; means using another device to send commands to a Pi via a wired or wireless network, instead of connecting a keyboard and monitor (or TV) directly to the Pi so you make all selections directly on it.&lt;br /&gt;
&lt;br /&gt;
For a novice, the easiest way to set up your Pi (as described above) requires (at least temporary) a keyboard and a monitor (can be a TV) to be connected to it. You might also want to connect a mouse. Depending on the Raspberry Pi you bought, and whether you bought a keyboard (or can borrow one from any PC you have), the ease of making these connections will vary. Once your Pi is set up, and you have started MX running, you can disconnect these peripherals, and leave your Pi running.&lt;br /&gt;
&lt;br /&gt;
The options described in the rest of this article cover all aspects of using a PC to do actions on your Pi, including how to change some settings on your Pi without ever connecting a keyboard and monitor to the Pi. For a novice, there are lots of opportunities to make errors in the following options, so remember the cricketer who said &amp;quot;If at first you do not succeed, try and try again, if you continue to fail, give up&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Remote access ===&lt;br /&gt;
&lt;br /&gt;
There are various different ways that another device can access the Pi over networks. The most popular lets a Terminal mode on your other device connect to your Raspberry Pi using Secure Shell Home, and the commands you type in on your other device are just the same ones you would type directly into the Raspberry Pi terminal mode. The responses you get are also the same. What is likely to be different is &lt;br /&gt;
*any control sequences, &lt;br /&gt;
*any copy and paste operations, &lt;br /&gt;
*and any other actions that are specific to the terminal mode on the other device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use the browser on your PC to connect to the web server created by the MX engine to run the admin interface (all that needs is that the Pi and the PC are both connected to your hub or router, so they are on the same local network):&lt;br /&gt;
* to change settings &lt;br /&gt;
*or to look at the web pages provided in that interface. &lt;br /&gt;
&lt;br /&gt;
Your PC can be used (as well as your Pi) to look at any web pages updated by MX (all that needs is your device to be able to connect to whatever web server runs your web pages).&lt;br /&gt;
&lt;br /&gt;
====Ways of using PC to do what can be done on a Pi====&lt;br /&gt;
&lt;br /&gt;
On your Pi, there are various applications that you can run with graphical interfaces, these let you achieve what you want by on screen selections, without having to learn what Linux commands to type in. You might wish to use these when you are operating your Pi in a headless state (without keyboard or monitor), so you want to see these graphical interfaces on your PC. See [https://thepihut.com/blogs/raspberry-pi-tutorials/remotely-accessing-the-raspberry-pi-via-rdp-gui-mode this tutorial] for one way to do this. Although this article does not cover such options that let you see graphical user interfaces, these let your other device see selection screens, browsing screens, and similar, just as you would see them if you had a monitor connected to your Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An alternative way to work on your Pi is its its terminal mode. This lets you use &#039;&#039;&#039;sudo&#039;&#039;&#039; to overcome the fact that the default user does not have &#039;&#039;&#039;root&#039;&#039;&#039; rights, and can therefore allow you to achieve tasks where a graphical interface fails because of the ownership of the part of the file structure where your action is taking place. The commands you type into a terminal screen on a Pi can also be typed into a terminal screen on your PC, and you will see the same responses. For this to work, you need to switch Secure Shell Home (SSH) on as that is what controls access over a network. This article explains most aspects of SSH in the next few sub-sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== What is Secure Shell Home?====&lt;br /&gt;
&lt;br /&gt;
Secure Shell Home (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. If you have two devices (your Pi and another computer), SSH will allow the two devices to exchange commands and responses between a terminal and a computer over the wireless or Ethernet (or mixture) network that connects them.  &lt;br /&gt;
&lt;br /&gt;
You may be too young to remember when communication with a computer was often done (remotely) using a Teletype (or similar device) acting in terminal mode. Just 4 decades ago this would have been a familiar experience for anyone working with computers, now it may seem strange for you. &lt;br /&gt;
&lt;br /&gt;
It is possible you have remote connection from home to a computer at your work (although that probably uses a different protocol as the network is likely to be better secured as it passes over the internet).&lt;br /&gt;
&lt;br /&gt;
SSH is switched off by default on a standard Raspberry Pi set up. &lt;br /&gt;
&lt;br /&gt;
You can if you have a keyboard and screen attached to your Pi, go into the configuration screen it offers and switch SSH on. The easiest way is using the &#039;&#039;&#039;Raspi-config&#039;&#039;&#039; tool, either from the main menu (raspberry Pi icon inside a square) or in terminal mode with &#039;&#039;&#039;sudo raspi-config&#039;&#039;&#039; (choose option 5 = &#039;&#039;Interfacing Options&#039;&#039;, look for SSH).  This will enable you to later access your Pi from your PC and might be useful later on. While you are in the configuration tool choose option 1 = &#039;&#039;Change User Password&#039;&#039;, and set the password you will use for your SSH session; the default password  is &#039;&#039;&#039;raspberry&#039;&#039;&#039;, but you don&#039;t want to let hackers into your Pi, so you will choose something hard to guess. &lt;br /&gt;
&lt;br /&gt;
The next sub-section describes how you can switch SSH on during the first boot, by creating a file on the micro-SD card before you insert it into your Pi, the file is removed as part of the boot process, so this only works once.&lt;br /&gt;
&lt;br /&gt;
====Pre-configuring the Pi for headless operation====&lt;br /&gt;
&lt;br /&gt;
If you want to set up your Pi headless (without monitor, keyboard, mouse), then you must ensure SSH (which is off by default) is switched on as your Pi boots up.  Otherwise you have no access to do any setting up, and you cannot even close down the Pi tidily! The only way to achieve this, is by adding a file &#039;&#039;&#039;SSH&#039;&#039;&#039; to the boot partition before the micro-SD card is put into the Pi. If you don&#039;t do this you cannot get headless operation, and you will need to move a monitor or TV, mouse, and keyboard, across to the Pi.&lt;br /&gt;
&lt;br /&gt;
The file, you add to the boot partition (there is a second partition that may be invisible), must be named &amp;quot;SSH&amp;quot; with those three letters in capitals, but with no file extension. You can create the file with whatever text editor you have available. &lt;br /&gt;
*On a Windows PC, if you right click (while viewing the boot directory on the card) there is an option called &#039;&#039;&#039;New&#039;&#039;&#039;  and if you select &#039;&#039;a text file&#039;&#039; it will create an empty file with the extension &#039;&#039;&#039;.txt&#039;&#039;&#039;. (In windows there is an option to hide extensions which is on by default, so you may need to deselect this option [&#039;&#039;&#039;New&#039;&#039;&#039; menu -&amp;gt; &#039;&#039;Options&#039;&#039;] to see this extension).  On Windows you can open the file using Notepad to verify it is empty, if you gave accidentally created a file of another type like word processing it will be full of characters some of which do not display. Anyway, you must remove any extension from the file name so it is really just &#039;&#039;&#039;SSH&#039;&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
Type into the file &amp;lt;tt&amp;gt;touch ssh&amp;lt;/tt&amp;gt;, but nothing else, no empty lines, no end of line characters.&lt;br /&gt;
&lt;br /&gt;
When the card is inserted into your Pi, on boot this file will be removed and the SSH option will be enabled. The default password is &#039;&#039;&#039;raspberry&#039;&#039;&#039;, once you have successfully got SSH working. You should then use &#039;&#039;&#039;sudo raspi-config&#039;&#039;&#039; (choose option 1 = &#039;&#039;Change User Password&#039;&#039;, and set the new password you will use for your SSH session next time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How to use SSH?====&lt;br /&gt;
&lt;br /&gt;
If you have a Windows PC, this will allow you to open a &#039;&#039;&#039;Command&#039;&#039;&#039; prompt, &#039;&#039;&#039;Power Shell&#039;&#039;&#039;, or &#039;&#039;&#039;Terminal&#039;&#039;&#039; window (the selection you have available depends on certain settings). &lt;br /&gt;
&lt;br /&gt;
If you have a Linux or Mac device, open &#039;&#039;&#039;Terminal&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Next, (assuming your Pi is running, and that your other device is on the same local network), type &amp;lt;tt&amp;gt;ssh pi@raspberrypi&amp;lt;/tt&amp;gt; to get access to default user in your Pi.  &lt;br /&gt;
&lt;br /&gt;
(As an alternative for Windows operating system, you can install PuTTY, this has the advantage that you can enter the connection settings into it, and configure various other options, and these are remembered, so might make it easier to use. &#039;&#039;&#039;PuTTY&#039;&#039;&#039; software (an SSH client for Windows) can be downloaded from &amp;lt;tt&amp;gt;https://www.putty.org/&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
When you are using a terminal, it is a sequential device, each line is either something you type in or something sent back in reply. The action that result from any key combinations depend on your terminal application, not just whatever you are running on your Pi.  Your mouse can&#039;t affect cursor location, but the mouse might be needed to select text, the left click might copy what is selected, and the right click might paste (what is in your PC&#039;s clipboard) at current cursor position.&lt;br /&gt;
&lt;br /&gt;
You can use SSH access from your PC:&lt;br /&gt;
* when you need to edit a file on your Pi, &lt;br /&gt;
*or do a file transfer between Pi and PC or vice versa. &lt;br /&gt;
&lt;br /&gt;
=== Running MX from your PC ===&lt;br /&gt;
&lt;br /&gt;
If you choose to use the simple &amp;lt;tt&amp;gt;sudo mono CumulusMX.exe&amp;lt;/tt&amp;gt; command in a terminal (or command window or Powershell) session on your PC, remember MX will detect if that session is ended and will shut down MX. This means if you want to keep MX running you need to keep your session on your PC running and you loose the advantage of saving electricity by running MX on a PI because your PC remains on.  &lt;br /&gt;
&lt;br /&gt;
As I type this a new release 3.8.0 is to allow MX to run as a service, and a future release is planned to change the associated script, so anything I write here might become obsolete, and the next sub-section gives you some links to the support forum about alternatives to the new feature.  Hopefully, someone will edit this article, when instructions have settled down and won&#039;t change on next release.  Basically, the ability to run MX as a service,  means that MX actually runs independent of the session that starts or stops the service; and therefore implies you can shut down your PC without stopping MX.  &lt;br /&gt;
&lt;br /&gt;
Hopefully someone will add notes to this article about the running as service option. I have not tried it, so I cannot add such notes.&lt;br /&gt;
&lt;br /&gt;
=== Older information about using a PC and a PI ===&lt;br /&gt;
&lt;br /&gt;
In the Cumulus Support forum, there are articles about a [https://cumulus.hosiene.co.uk/viewtopic.php?p=139779#p139779 stop/start routine], a [https://cumulus.hosiene.co.uk/viewtopic.php?p=141514#p141514 backup routine], and [https://cumulus.hosiene.co.uk/viewtopic.php?p=146028#p146028 how to run MX as a service]. I will let you hunt for and read the relevant topics, as you may find details in more than one place. This article currently avoids describing these to try to keep content simple.  Here is just a list of some alternatives to having to leave your terminal session running:&lt;br /&gt;
# Use &#039;&#039;&#039;start/stop routine&#039;&#039;&#039; (see earlier link), this effectively starts a separate session for MX to run in and leaves the standard terminal session free.&lt;br /&gt;
# Run MX as an &#039;&#039;&#039;init service&#039;&#039;&#039; (see the earlier post in the service link above), be aware that this is a new feature in the new release of MX 3.8.0, again this starts MX outside your terminal session&lt;br /&gt;
# Use &#039;&#039;&#039;Screen&#039;&#039;&#039; software to start up a separate session that you can log off from without MX stopping (see [https://cumulus.hosiene.co.uk/viewtopic.php?p=146203#p146203 how to run using screen]}&lt;br /&gt;
#  Run MX as a &#039;&#039;&#039;systemd service&#039;&#039;&#039; (see the more recent posts in the service link above), be aware that at time of typing this is planned to be incorporated in a future release but the MX developer has no knowledge in this area&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Headless Wireless Network set up===&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t connect a keyboard and monitor to your Raspberry Pi, you can&#039;t set up the wireless network configuration on your Pi using one of the provided configuration tools as described in the earlier wireless network sub-section. &lt;br /&gt;
&lt;br /&gt;
You can use the SSH approach described immediately above to access the &#039;&#039;&#039;Raspi-config&#039;&#039;&#039; tool and in that do the necessary configuration.  &lt;br /&gt;
&lt;br /&gt;
There is one further, complicated, way to set up the wireless configuration so that the wireless network will work when you first boot up your Raspberry Pi. If you have brought the Zero model, that does not allow Ethernet connection, you might decide to follow this complex approach that involves creating a text file in the boot partition of your micro-SD card, and store it in the boot directory on your micro-SD card with a file name &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; before you insert that card in your Pi and do its first boot.&lt;br /&gt;
&lt;br /&gt;
A note of caution here, it is easy to make mistakes, and you may find this does not work. It is presented here just to cover all options, to use this does require some technical skill, a novice will be better off avoiding this.&lt;br /&gt;
&lt;br /&gt;
Ensuring you are using a text editor that won&#039;t add any unwanted control characters, add the following text using UTF-8 encoding:&lt;br /&gt;
&amp;lt;pre&amp;gt;ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev&lt;br /&gt;
update_config=1&lt;br /&gt;
country=GB&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
    ssid=&amp;quot;YourNetwork&amp;quot;&lt;br /&gt;
    psk=&amp;quot;YourNetworkPassword&amp;quot;&lt;br /&gt;
    key_mgmt=WPA-PSK&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Obviously, if you are not in United Kingdom, you will replace &#039;&#039;&#039;GB&#039;&#039;&#039; by the country code that applies to you.&lt;br /&gt;
*Within the first set of quotes, replace &#039;&#039;&#039;YourNetwork&#039;&#039;&#039; by whatever &#039;&#039;Service Set IDentifier&#039;&#039; (SSID) is used for your wireless network.  &lt;br /&gt;
**You may have typed this into your mobile phone. &lt;br /&gt;
**It may be shown on a card that slips into a slot on your hub or router, but you may have changed it from that initial setting. &lt;br /&gt;
**Whatever it is, and it can be up to 32 characters (letters, numbers, and symbols), type it within the double quotes. &lt;br /&gt;
**Some routers come with a default SSID that is the manufacturer&#039;s name, if left unchanged it might conflict with a neighbour, so it is left to you to pick a SSID that is unique to you using up to 32 characters to personalise it. &lt;br /&gt;
*Within the next set of quotes, which relate to the key (or password) that protects access to your network, replace &#039;&#039;&#039;YourNetworkPassword&#039;&#039;&#039; by whatever Pre-Shared-Key (password) is used for your wireless network. &lt;br /&gt;
**You will have typed this into your mobile phone, so that can automatically connect to your network. &lt;br /&gt;
**In this case, you should have changed it (for security reasons) from whatever was shown as the initial password on the card that slips into a slot on your hub or router (possibly all you have done is add a prefix or suffix that means something to you).&lt;br /&gt;
*Most wireless networks will use Wi-Fi Protected Access (WPA) or (from 2006) Wi-Fi Protected Access II (WPA2) protocols, so &#039;&#039;&#039;WPA-PSK&#039;&#039;&#039; is correct for you. &lt;br /&gt;
**Note that your Pi is only able to use these protocols. &lt;br /&gt;
**The earlier Wired Equivalent Privacy (WEP) was officially withdrawn in 2004 as too easy to crack, so it is not supported on a new Pi.&lt;br /&gt;
&lt;br /&gt;
Should you wish to set up your Pi with several network definitions, please see [https://cumulus.hosiene.co.uk/viewtopic.php?p=139422#p139422 Notes by ExperiMentor] (a contributor, in Switzerland, to the Cumulus support forum).&lt;br /&gt;
&lt;br /&gt;
===Downloading MX distribution on PC===&lt;br /&gt;
&lt;br /&gt;
If you download MX on your PC, then you will probably unzip the distribution there, and use a tool like FileZilla to copy the installation to your Pi.&lt;br /&gt;
First of all you need to configure FileZilla Client, unless you have done that previously and saved the configuration:&lt;br /&gt;
*The quickest way is to fill out the &amp;quot;quick connect boxes&amp;quot;.&lt;br /&gt;
* Host - this is the IPv4 address of your Pi, I can&#039;t tell you what it is, but it is likely to be &#039;&#039;&#039;192.168.z.xy&#039;&#039;&#039; where the z is probably &amp;quot;1&amp;quot;, but it could be another single figure like 0, and the xy is two (or perhaps three) figures you can find out by looking for &amp;quot;pi&amp;quot; (or whatever host username you have set on your Pi) in the admin interface for your hub or router. (It can also be found out by typing &amp;lt;tt&amp;gt;hostname -I&amp;lt;/tt&amp;gt;). Most networks are setup in a way that the subnet range is from 192.168.1.0 to 192.168.1.255.&lt;br /&gt;
* Username - the default for this is &#039;&#039;&#039;raspberrypi&#039;&#039;&#039; (although on older Pi it might be &#039;&#039;&#039;Pi&#039;&#039;&#039;), but you can may have changed this (as described earlier). (It can be found by typing &amp;lt;tt&amp;gt;hostname&amp;lt;/tt&amp;gt;) or by looking at the contents of the file &#039;&#039;&#039;/etc/hostname&#039;&#039;&#039;.&lt;br /&gt;
* Password - again the default for this is &#039;&#039;&#039;raspberry&#039;&#039;&#039; but we changed it as one of the mandatory configurations earlier.&lt;br /&gt;
* Port - 22 is the default, and I have not said how you can change this!&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;QuickConnect&#039;&#039;&#039; and you should see the local files in the left frame and your Pi home files in the right frame. The easiest way is to find the folder called &#039;&#039;&#039;CumulusMX&#039;&#039;&#039; in the distribution on the left and drag it to the correct position in the right hand frame. Then all you need to do is watch the progress until it successfully finishes.&lt;br /&gt;
&lt;br /&gt;
If you are going to continue using Filezilla, there are options to save the current configuration and to set up a number of alternative configurations (specifying in advanced tab different locations on your PC and different locations on your Pi).&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Debug.log&amp;diff=7445</id>
		<title>Debug.log</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Debug.log&amp;diff=7445"/>
		<updated>2021-01-12T18:09:02Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The debug logging feature is extremely useful in troubleshooting problems with Cumulus and/or connectivity to your weather station or FTP upload communications.&lt;br /&gt;
&lt;br /&gt;
By default this is not enabled, but can be turned on and off as required.  Click on the Settings / Program settings menu within CumulusMX (Settings / Station settings menu in Cumulus 1) and &#039;&#039;tick&#039;&#039; the &#039;Debug Logging&#039; menu option.&lt;br /&gt;
&lt;br /&gt;
The file contains a wealth of data including the raw data received from your weather station, connectivity attempts, file uploads, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note:  Logging is turned on when you &#039;Save&#039; the chnage in settings. It is automatically turned off if Cumulus is restarted. The file can grow very large very quickly so turn the Debug Log option off it not required. If the file grows too large it can cause Cumulus to crash.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=File Location, Name and Format=&lt;br /&gt;
&lt;br /&gt;
In Cumulus 1, the file is called Debug.log, and is located in the root of the Cumulus folder.&lt;br /&gt;
&lt;br /&gt;
In CumulusMX, debug logging adds additional detail into the standard logging file. This is located in folder MXdiags within the CumulusMX root directory. It is a text (*.txt) file named by the date and time that the CumulusMX session began, for example: 20210112-171450.txt&lt;br /&gt;
&lt;br /&gt;
The log file is a simple text file containing the time and a description of each event. &lt;br /&gt;
&lt;br /&gt;
The file can be deleted at any time as Cumulus does not read from it.&lt;br /&gt;
&lt;br /&gt;
=Sample File=&lt;br /&gt;
&lt;br /&gt;
An extract from a debug.log file&lt;br /&gt;
&lt;br /&gt;
 9168.735 : 14:23:54 Realtime FTP Put attempt&lt;br /&gt;
 9168.766 : 14:23:54 Realtime FTP local file: C:\Program Files\Cumulus\realtime.txt&lt;br /&gt;
 9168.766 : 14:23:54 Realtime FTP remote file: /var/www/html/data/realtime.txt&lt;br /&gt;
 9173.500 : 14:23:59 USB device is plugged in&lt;br /&gt;
 9173.500 : 14:23:59 request EW data block, written = 9, addr = 000000 &lt;br /&gt;
 9173.516 : 14:23:59 EW data line 01  55 AA FF FF FF FF FF FF &lt;br /&gt;
 9173.516 : 14:23:59 EW data line 02  FF FF FF FF FF FF FF FF &lt;br /&gt;
 9173.531 : 14:23:59 EW data line 03  0A 20 08 25 11 00 00 00 &lt;br /&gt;
 9173.531 : 14:23:59 EW data line 04  81 00 00 F0 0F 00 10 DD &lt;br /&gt;
 9173.531 : 14:23:59 USB device is plugged in&lt;br /&gt;
 9173.547 : 14:23:59 request EW data block, written = 9, addr = 00DD10 &lt;br /&gt;
 9173.563 : 14:23:59 EW data line 05  00 3A BF 00 47 97 00 FD &lt;br /&gt;
 9173.578 : 14:23:59 EW data line 06  25 00 03 00 0B 0C 08 00 &lt;br /&gt;
 9173.578 : 14:23:59 Data: 00 3A BF 00 47 97 00 FD 25 00 03 00 0B 0C 08 00 &lt;br /&gt;
 9173.578 : 14:23:59 EW data line 07  0A 2D D5 00 55 57 00 16 &lt;br /&gt;
 9173.594 : 14:23:59 EW data line 08  26 00 00 00 06 65 07 00 &lt;br /&gt;
 9175.328 : 27/08/2009 14:24:00 Minute timer 24&lt;br /&gt;
 9175.328 : Adding LH entry, ts = 14:24:00 raintot = 618&lt;br /&gt;
 9175.328 : TD = 0.0833333358168602 Lastval = 618 Firstval = 618 rate = 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Log Files]]&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Debug.log&amp;diff=7444</id>
		<title>Debug.log</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Debug.log&amp;diff=7444"/>
		<updated>2021-01-12T18:04:10Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* File Location, Name and Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;tt&amp;gt;debug.log&amp;lt;/tt&amp;gt; file is extremely useful in troubleshooting problems with Cumulus and/or connectivity to your weather station.&lt;br /&gt;
&lt;br /&gt;
By default this is not enabled, but can be turned on and off as required.  Click on the Settings / Program settings menu within Cumulus and &#039;&#039;tick&#039;&#039; the &#039;Debug Logging&#039; menu option.&lt;br /&gt;
&lt;br /&gt;
The file contains a wealth of data including the raw data received from your weather station, connectivity attempts, file uploads, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note:  the file can grow very large very quickly so turn the Debug Log option off it not required. If the file grows too large it can cause Cumulus to crash.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=File Location, Name and Format=&lt;br /&gt;
&lt;br /&gt;
In Cumulus 1, the file is called Debug.log, and is located in the root of the Cumulus folder.&lt;br /&gt;
&lt;br /&gt;
In CumulusMX, debug logging adds additional detail into the standard logging file. This is located in folder MXdiags within the CumulusMX root directory. It is a text (*.txt) file named by the date and time that the CumulusMX session began, for example: 20210112-171450.txt&lt;br /&gt;
&lt;br /&gt;
The log file is a simple text file containing the time and a description of each event. &lt;br /&gt;
&lt;br /&gt;
The file can be deleted at any time as Cumulus does not read from it.&lt;br /&gt;
&lt;br /&gt;
=Sample File=&lt;br /&gt;
&lt;br /&gt;
An extract from a debug.log file&lt;br /&gt;
&lt;br /&gt;
 9168.735 : 14:23:54 Realtime FTP Put attempt&lt;br /&gt;
 9168.766 : 14:23:54 Realtime FTP local file: C:\Program Files\Cumulus\realtime.txt&lt;br /&gt;
 9168.766 : 14:23:54 Realtime FTP remote file: /var/www/html/data/realtime.txt&lt;br /&gt;
 9173.500 : 14:23:59 USB device is plugged in&lt;br /&gt;
 9173.500 : 14:23:59 request EW data block, written = 9, addr = 000000 &lt;br /&gt;
 9173.516 : 14:23:59 EW data line 01  55 AA FF FF FF FF FF FF &lt;br /&gt;
 9173.516 : 14:23:59 EW data line 02  FF FF FF FF FF FF FF FF &lt;br /&gt;
 9173.531 : 14:23:59 EW data line 03  0A 20 08 25 11 00 00 00 &lt;br /&gt;
 9173.531 : 14:23:59 EW data line 04  81 00 00 F0 0F 00 10 DD &lt;br /&gt;
 9173.531 : 14:23:59 USB device is plugged in&lt;br /&gt;
 9173.547 : 14:23:59 request EW data block, written = 9, addr = 00DD10 &lt;br /&gt;
 9173.563 : 14:23:59 EW data line 05  00 3A BF 00 47 97 00 FD &lt;br /&gt;
 9173.578 : 14:23:59 EW data line 06  25 00 03 00 0B 0C 08 00 &lt;br /&gt;
 9173.578 : 14:23:59 Data: 00 3A BF 00 47 97 00 FD 25 00 03 00 0B 0C 08 00 &lt;br /&gt;
 9173.578 : 14:23:59 EW data line 07  0A 2D D5 00 55 57 00 16 &lt;br /&gt;
 9173.594 : 14:23:59 EW data line 08  26 00 00 00 06 65 07 00 &lt;br /&gt;
 9175.328 : 27/08/2009 14:24:00 Minute timer 24&lt;br /&gt;
 9175.328 : Adding LH entry, ts = 14:24:00 raintot = 618&lt;br /&gt;
 9175.328 : TD = 0.0833333358168602 Lastval = 618 Firstval = 618 rate = 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Log Files]]&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Debug.log&amp;diff=7443</id>
		<title>Debug.log</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Debug.log&amp;diff=7443"/>
		<updated>2021-01-12T18:03:11Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* File Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;tt&amp;gt;debug.log&amp;lt;/tt&amp;gt; file is extremely useful in troubleshooting problems with Cumulus and/or connectivity to your weather station.&lt;br /&gt;
&lt;br /&gt;
By default this is not enabled, but can be turned on and off as required.  Click on the Settings / Program settings menu within Cumulus and &#039;&#039;tick&#039;&#039; the &#039;Debug Logging&#039; menu option.&lt;br /&gt;
&lt;br /&gt;
The file contains a wealth of data including the raw data received from your weather station, connectivity attempts, file uploads, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note:  the file can grow very large very quickly so turn the Debug Log option off it not required. If the file grows too large it can cause Cumulus to crash.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=File Location, Name and Format=&lt;br /&gt;
&lt;br /&gt;
In Cumulus 1, the file is called Debug.log, and is located in the root of the Cumulus folder.&lt;br /&gt;
&lt;br /&gt;
In CumulusMX, debug logging adds additional detail into the standard logging file. This is located in folder MXdiags within the Cumulus root directory. It is a text (*.txt) file named by the date and time that the CumulusMX session began, for example: 20210112-171450.txt&lt;br /&gt;
&lt;br /&gt;
The log file is a simple text file containing the time and a description of each event. &lt;br /&gt;
&lt;br /&gt;
The file can be deleted at any time as Cumulus does not read from it.&lt;br /&gt;
&lt;br /&gt;
=Sample File=&lt;br /&gt;
&lt;br /&gt;
An extract from a debug.log file&lt;br /&gt;
&lt;br /&gt;
 9168.735 : 14:23:54 Realtime FTP Put attempt&lt;br /&gt;
 9168.766 : 14:23:54 Realtime FTP local file: C:\Program Files\Cumulus\realtime.txt&lt;br /&gt;
 9168.766 : 14:23:54 Realtime FTP remote file: /var/www/html/data/realtime.txt&lt;br /&gt;
 9173.500 : 14:23:59 USB device is plugged in&lt;br /&gt;
 9173.500 : 14:23:59 request EW data block, written = 9, addr = 000000 &lt;br /&gt;
 9173.516 : 14:23:59 EW data line 01  55 AA FF FF FF FF FF FF &lt;br /&gt;
 9173.516 : 14:23:59 EW data line 02  FF FF FF FF FF FF FF FF &lt;br /&gt;
 9173.531 : 14:23:59 EW data line 03  0A 20 08 25 11 00 00 00 &lt;br /&gt;
 9173.531 : 14:23:59 EW data line 04  81 00 00 F0 0F 00 10 DD &lt;br /&gt;
 9173.531 : 14:23:59 USB device is plugged in&lt;br /&gt;
 9173.547 : 14:23:59 request EW data block, written = 9, addr = 00DD10 &lt;br /&gt;
 9173.563 : 14:23:59 EW data line 05  00 3A BF 00 47 97 00 FD &lt;br /&gt;
 9173.578 : 14:23:59 EW data line 06  25 00 03 00 0B 0C 08 00 &lt;br /&gt;
 9173.578 : 14:23:59 Data: 00 3A BF 00 47 97 00 FD 25 00 03 00 0B 0C 08 00 &lt;br /&gt;
 9173.578 : 14:23:59 EW data line 07  0A 2D D5 00 55 57 00 16 &lt;br /&gt;
 9173.594 : 14:23:59 EW data line 08  26 00 00 00 06 65 07 00 &lt;br /&gt;
 9175.328 : 27/08/2009 14:24:00 Minute timer 24&lt;br /&gt;
 9175.328 : Adding LH entry, ts = 14:24:00 raintot = 618&lt;br /&gt;
 9175.328 : TD = 0.0833333358168602 Lastval = 618 Firstval = 618 rate = 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Log Files]]&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7442</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7442"/>
		<updated>2021-01-12T16:14:18Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Starting Cumulus MX from the command line */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is to be run on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a Graphical User Interface (GUI), it is a command line only installation. It is possible to add the GUI later if you want it.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You will need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
:You can use an SSD instead if preferred [with the minor complication that in a later step you will need non-WiFi access to the Raspberry Pi (keyboard and monitor, or SSH over ethernet) as you cannot enter the WiFi details from a Windows PC to the linux SSD due to the different file system used]&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide uses Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, scroll down to the bottom of the list and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - do not unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt filename extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer. Insert it into your Raspberry Pi and power up.&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router). It just depends on your router whether it allows use of the name (cumulusmx) or requires the IP address.&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (As before, you may need to enter the Pi&#039;s IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow &#039;&#039;&#039;[https://cumuluswiki.org/a/Cumulus.ini#Cumulus_MX this guide for configuring your station].&#039;&#039;&#039;&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed IP address for your Raspberry Pi, there are 2 methods&lt;br /&gt;
&lt;br /&gt;
1. Adjust your router settings to always assign the same IP address. This facility has different names on different brands of router, look for a section named DHCP. You may be able to choose the IP address (possibly within or possibly outside the range assigned by DHCP), or you may only be allowed to choose &#039;always assign the address it currently has&#039;. You may need to know the MAC address of the Raspberry PI, but if so that will likely be displayed alongside the current connection.&lt;br /&gt;
&lt;br /&gt;
2. Adjust Raspberry Pi settings to always request the the same fixed address. This is less reliable, because your router may have assigned the requested address to a different device since the Pi was last active. To do this you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connection a line specifying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as the example below. For a wireless connection, it needs similar with &#039;&#039;&#039;wlan0&#039;&#039;&#039;:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Based on the &#039;Lite&#039; version of the Raspberry Pi OS (ie the graphical desktop GUI is not included; it can be added later if you want it)&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudo systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMX.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7441</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7441"/>
		<updated>2021-01-12T16:13:51Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* systemctl commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is to be run on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a Graphical User Interface (GUI), it is a command line only installation. It is possible to add the GUI later if you want it.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You will need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
:You can use an SSD instead if preferred [with the minor complication that in a later step you will need non-WiFi access to the Raspberry Pi (keyboard and monitor, or SSH over ethernet) as you cannot enter the WiFi details from a Windows PC to the linux SSD due to the different file system used]&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide uses Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, scroll down to the bottom of the list and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - do not unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt filename extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer. Insert it into your Raspberry Pi and power up.&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router). It just depends on your router whether it allows use of the name (cumulusmx) or requires the IP address.&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (As before, you may need to enter the Pi&#039;s IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow &#039;&#039;&#039;[https://cumuluswiki.org/a/Cumulus.ini#Cumulus_MX this guide for configuring your station].&#039;&#039;&#039;&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed IP address for your Raspberry Pi, there are 2 methods&lt;br /&gt;
&lt;br /&gt;
1. Adjust your router settings to always assign the same IP address. This facility has different names on different brands of router, look for a section named DHCP. You may be able to choose the IP address (possibly within or possibly outside the range assigned by DHCP), or you may only be allowed to choose &#039;always assign the address it currently has&#039;. You may need to know the MAC address of the Raspberry PI, but if so that will likely be displayed alongside the current connection.&lt;br /&gt;
&lt;br /&gt;
2. Adjust Raspberry Pi settings to always request the the same fixed address. This is less reliable, because your router may have assigned the requested address to a different device since the Pi was last active. To do this you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connection a line specifying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as the example below. For a wireless connection, it needs similar with &#039;&#039;&#039;wlan0&#039;&#039;&#039;:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Based on the &#039;Lite&#039; version of the Raspberry Pi OS (ie the graphical desktop GUI is not included; it can be added later if you want it)&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudo systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Debug.log&amp;diff=7440</id>
		<title>Debug.log</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Debug.log&amp;diff=7440"/>
		<updated>2021-01-12T16:12:38Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: Update menu link. Typos.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;tt&amp;gt;debug.log&amp;lt;/tt&amp;gt; file is extremely useful in troubleshooting problems with Cumulus and/or connectivity to your weather station.&lt;br /&gt;
&lt;br /&gt;
By default this is not enabled, but can be turned on and off as required.  Click on the Settings / Program settings menu within Cumulus and &#039;&#039;tick&#039;&#039; the &#039;Debug Logging&#039; menu option.&lt;br /&gt;
&lt;br /&gt;
The file contains a wealth of data including the raw data received from your weather station, connectivity attempts, file uploads, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note:  the file can grow very large very quickly so turn the Debug Log option off it not required. If the file grows too large it can cause Cumulus to crash.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=File Format=&lt;br /&gt;
&lt;br /&gt;
The debug.log file is a simple text file containing the time and a description of each event. &lt;br /&gt;
&lt;br /&gt;
It is located in the root of the Cumulus folder and can be deleted at any time as Cumulus does not read from it.&lt;br /&gt;
&lt;br /&gt;
=Sample File=&lt;br /&gt;
&lt;br /&gt;
An extract from a debug.log file&lt;br /&gt;
&lt;br /&gt;
 9168.735 : 14:23:54 Realtime FTP Put attempt&lt;br /&gt;
 9168.766 : 14:23:54 Realtime FTP local file: C:\Program Files\Cumulus\realtime.txt&lt;br /&gt;
 9168.766 : 14:23:54 Realtime FTP remote file: /var/www/html/data/realtime.txt&lt;br /&gt;
 9173.500 : 14:23:59 USB device is plugged in&lt;br /&gt;
 9173.500 : 14:23:59 request EW data block, written = 9, addr = 000000 &lt;br /&gt;
 9173.516 : 14:23:59 EW data line 01  55 AA FF FF FF FF FF FF &lt;br /&gt;
 9173.516 : 14:23:59 EW data line 02  FF FF FF FF FF FF FF FF &lt;br /&gt;
 9173.531 : 14:23:59 EW data line 03  0A 20 08 25 11 00 00 00 &lt;br /&gt;
 9173.531 : 14:23:59 EW data line 04  81 00 00 F0 0F 00 10 DD &lt;br /&gt;
 9173.531 : 14:23:59 USB device is plugged in&lt;br /&gt;
 9173.547 : 14:23:59 request EW data block, written = 9, addr = 00DD10 &lt;br /&gt;
 9173.563 : 14:23:59 EW data line 05  00 3A BF 00 47 97 00 FD &lt;br /&gt;
 9173.578 : 14:23:59 EW data line 06  25 00 03 00 0B 0C 08 00 &lt;br /&gt;
 9173.578 : 14:23:59 Data: 00 3A BF 00 47 97 00 FD 25 00 03 00 0B 0C 08 00 &lt;br /&gt;
 9173.578 : 14:23:59 EW data line 07  0A 2D D5 00 55 57 00 16 &lt;br /&gt;
 9173.594 : 14:23:59 EW data line 08  26 00 00 00 06 65 07 00 &lt;br /&gt;
 9175.328 : 27/08/2009 14:24:00 Minute timer 24&lt;br /&gt;
 9175.328 : Adding LH entry, ts = 14:24:00 raintot = 618&lt;br /&gt;
 9175.328 : TD = 0.0833333358168602 Lastval = 618 Firstval = 618 rate = 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Log Files]]&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7430</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7430"/>
		<updated>2021-01-09T15:50:14Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Configure Cumulus MX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is to be run on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a Graphical User Interface (GUI), it is a command line only installation. It is possible to add the GUI later if you want it.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You will need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
:You can use an SSD instead if preferred [with the minor complication that in a later step you will need non-WiFi access to the Raspberry Pi (keyboard and monitor, or SSH over ethernet) as you cannot enter the WiFi details from a Windows PC to the linux SSD due to the different file system used]&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide uses Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, scroll down to the bottom of the list and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - do not unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt filename extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer. Insert it into your Raspberry Pi and power up.&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router). It just depends on your router whether it allows use of the name (cumulusmx) or requires the IP address.&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (As before, you may need to enter the Pi&#039;s IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow &#039;&#039;&#039;[https://cumuluswiki.org/a/Cumulus.ini#Cumulus_MX this guide for configuring your station].&#039;&#039;&#039;&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed IP address for your Raspberry Pi, there are 2 methods&lt;br /&gt;
&lt;br /&gt;
1. Adjust your router settings to always assign the same IP address. This facility has different names on different brands of router, look for a section named DHCP. You may be able to choose the IP address (possibly within or possibly outside the range assigned by DHCP), or you may only be allowed to choose &#039;always assign the address it currently has&#039;. You may need to know the MAC address of the Raspberry PI, but if so that will likely be displayed alongside the current connection.&lt;br /&gt;
&lt;br /&gt;
2. Adjust Raspberry Pi settings to always request the the same fixed address. This is less reliable, because your router may have assigned the requested address to a different device since the Pi was last active. To do this you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connection a line specifying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as the example below. For a wireless connection, it needs similar with &#039;&#039;&#039;wlan0&#039;&#039;&#039;:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Based on the &#039;Lite&#039; version of the Raspberry Pi OS (ie the graphical desktop GUI is not included; it can be added later if you want it)&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7429</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7429"/>
		<updated>2021-01-09T15:35:09Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Installing the Image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is to be run on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a Graphical User Interface (GUI), it is a command line only installation. It is possible to add the GUI later if you want it.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You will need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
:You can use an SSD instead if preferred [with the minor complication that in a later step you will need non-WiFi access to the Raspberry Pi (keyboard and monitor, or SSH over ethernet) as you cannot enter the WiFi details from a Windows PC to the linux SSD due to the different file system used]&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide uses Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, scroll down to the bottom of the list and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - do not unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt filename extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer. Insert it into your Raspberry Pi and power up.&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router). It just depends on your router whether it allows use of the name (cumulusmx) or requires the IP address.&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (As before, you may need to enter the Pi&#039;s IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow the guide on [this page?] for configuring your station&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed IP address for your Raspberry Pi, there are 2 methods&lt;br /&gt;
&lt;br /&gt;
1. Adjust your router settings to always assign the same IP address. This facility has different names on different brands of router, look for a section named DHCP. You may be able to choose the IP address (possibly within or possibly outside the range assigned by DHCP), or you may only be allowed to choose &#039;always assign the address it currently has&#039;. You may need to know the MAC address of the Raspberry PI, but if so that will likely be displayed alongside the current connection.&lt;br /&gt;
&lt;br /&gt;
2. Adjust Raspberry Pi settings to always request the the same fixed address. This is less reliable, because your router may have assigned the requested address to a different device since the Pi was last active. To do this you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connection a line specifying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as the example below. For a wireless connection, it needs similar with &#039;&#039;&#039;wlan0&#039;&#039;&#039;:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Based on the &#039;Lite&#039; version of the Raspberry Pi OS (ie the graphical desktop GUI is not included; it can be added later if you want it)&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7428</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7428"/>
		<updated>2021-01-07T13:08:39Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Using the pre-built Raspberry Pi Image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is to be run on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a Graphical User Interface (GUI), it is a command line only installation. It is possible to add the GUI later if you want it.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You will need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
:You can use an SSD instead if preferred [with the minor complication that in a later step you will need non-WiFi access to the Raspberry Pi (keyboard and monitor, or SSH over ethernet) as you cannot enter the WiFi details from a Windows PC to the linux SSD due to the different file system used]&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide uses Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - no need to unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt file extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer and insert it into your Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router). It just depends on your router whether it allows use of the name (cumulusmx) or requires the IP address.&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (As before, you may need to enter the Pi&#039;s IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow the guide on [this page?] for configuring your station&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed IP address for your Raspberry Pi, there are 2 methods&lt;br /&gt;
&lt;br /&gt;
1. Adjust your router settings to always assign the same IP address. This facility has different names on different brands of router, look for a section named DHCP. You may be able to choose the IP address (possibly within or possibly outside the range assigned by DHCP), or you may only be allowed to choose &#039;always assign the address it currently has&#039;. You may need to know the MAC address of the Raspberry PI, but if so that will likely be displayed alongside the current connection.&lt;br /&gt;
&lt;br /&gt;
2. Adjust Raspberry Pi settings to always request the the same fixed address. This is less reliable, because your router may have assigned the requested address to a different device since the Pi was last active. To do this you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connection a line specifying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as the example below. For a wireless connection, it needs similar with &#039;&#039;&#039;wlan0&#039;&#039;&#039;:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Based on the &#039;Lite&#039; version of the Raspberry Pi OS (ie the graphical desktop GUI is not included; it can be added later if you want it)&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7427</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7427"/>
		<updated>2021-01-07T12:55:27Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Image Customisations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is you can run it on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a GUI, it is a command line only installation.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You are going to need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide with use Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - no need to unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt file extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer and insert it into your Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router). It just depends on your router whether it allows use of the name (cumulusmx) or requires the IP address.&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (As before, you may need to enter the Pi&#039;s IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow the guide on [this page?] for configuring your station&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed IP address for your Raspberry Pi, there are 2 methods&lt;br /&gt;
&lt;br /&gt;
1. Adjust your router settings to always assign the same IP address. This facility has different names on different brands of router, look for a section named DHCP. You may be able to choose the IP address (possibly within or possibly outside the range assigned by DHCP), or you may only be allowed to choose &#039;always assign the address it currently has&#039;. You may need to know the MAC address of the Raspberry PI, but if so that will likely be displayed alongside the current connection.&lt;br /&gt;
&lt;br /&gt;
2. Adjust Raspberry Pi settings to always request the the same fixed address. This is less reliable, because your router may have assigned the requested address to a different device since the Pi was last active. To do this you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connection a line specifying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as the example below. For a wireless connection, it needs similar with &#039;&#039;&#039;wlan0&#039;&#039;&#039;:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Based on the &#039;Lite&#039; version of the Raspberry Pi OS (ie the graphical desktop GUI is not included; it can be added later if you want it)&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7426</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7426"/>
		<updated>2021-01-07T12:52:10Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Additional Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is you can run it on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a GUI, it is a command line only installation.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You are going to need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide with use Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - no need to unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt file extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer and insert it into your Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router). It just depends on your router whether it allows use of the name (cumulusmx) or requires the IP address.&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (As before, you may need to enter the Pi&#039;s IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow the guide on [this page?] for configuring your station&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed IP address for your Raspberry Pi, there are 2 methods&lt;br /&gt;
&lt;br /&gt;
1. Adjust your router settings to always assign the same IP address. This facility has different names on different brands of router, look for a section named DHCP. You may be able to choose the IP address (possibly within or possibly outside the range assigned by DHCP), or you may only be allowed to choose &#039;always assign the address it currently has&#039;. You may need to know the MAC address of the Raspberry PI, but if so that will likely be displayed alongside the current connection.&lt;br /&gt;
&lt;br /&gt;
2. Adjust Raspberry Pi settings to always request the the same fixed address. This is less reliable, because your router may have assigned the requested address to a different device since the Pi was last active. To do this you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connection a line specifying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as the example below. For a wireless connection, it needs similar with &#039;&#039;&#039;wlan0&#039;&#039;&#039;:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7425</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7425"/>
		<updated>2021-01-07T12:41:22Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Configure Cumulus MX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is you can run it on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a GUI, it is a command line only installation.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You are going to need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide with use Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - no need to unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt file extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer and insert it into your Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router). It just depends on your router whether it allows use of the name (cumulusmx) or requires the IP address.&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (As before, you may need to enter the Pi&#039;s IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow the guide on [this page?] for configuring your station&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed ip address for your Raspberry Pi, you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connexion a line specefying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as this sample:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7424</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7424"/>
		<updated>2021-01-07T12:40:44Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Configure Cumulus MX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is you can run it on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a GUI, it is a command line only installation.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You are going to need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide with use Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - no need to unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt file extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer and insert it into your Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router). It just depends on your router whether it allows use of the name (cumulusmx) or requires the IP address.&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (As before, you may need to enter the Pi&#039;s IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow the guide on [this page?] for configuring your station&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; or URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed ip address for your Raspberry Pi, you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connexion a line specefying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as this sample:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7423</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7423"/>
		<updated>2021-01-07T12:39:30Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Verify your SSH Connection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is you can run it on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a GUI, it is a command line only installation.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You are going to need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide with use Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - no need to unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt file extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer and insert it into your Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router). It just depends on your router whether it allows use of the name (cumulusmx) or requires the IP address.&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (As before, you may need to enter the Pi&#039;s IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow the guide on [this page?] for configuring your station&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed ip address for your Raspberry Pi, you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connexion a line specefying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as this sample:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7422</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7422"/>
		<updated>2021-01-07T12:37:32Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* First Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is you can run it on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a GUI, it is a command line only installation.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You are going to need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide with use Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - no need to unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt file extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer and insert it into your Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router). It just depends on your router whether it allows use of the name (cumulusmx) or requires the IP address.&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (You can use the IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow the guide on [this page?] for configuring your station&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed ip address for your Raspberry Pi, you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connexion a line specefying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as this sample:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7421</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7421"/>
		<updated>2021-01-07T12:35:53Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* First Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is you can run it on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a GUI, it is a command line only installation.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You are going to need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide with use Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - no need to unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt file extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer and insert it into your Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router)&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (You can use the IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow the guide on [this page?] for configuring your station&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed ip address for your Raspberry Pi, you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connexion a line specefying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as this sample:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7420</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7420"/>
		<updated>2021-01-07T12:33:43Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* First Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is you can run it on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a GUI, it is a command line only installation.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You are going to need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide with use Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - no need to unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt file extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer and insert it into your Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://192.168.1.123:8998&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router)&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (You can use the IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow the guide on [this page?] for configuring your station&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed ip address for your Raspberry Pi, you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connexion a line specefying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as this sample:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7419</id>
		<title>Raspberry Pi Image</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=Raspberry_Pi_Image&amp;diff=7419"/>
		<updated>2021-01-07T12:33:02Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* First Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the pre-built Raspberry Pi Image ==&lt;br /&gt;
We have created an customised version of the Raspberry Pi Lite image with Cumulus MX pre-installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
This is designed to be what is called a &amp;quot;headless&amp;quot; installation, that is you can run it on a Raspberry Pi without a monitor or keyboard attached to it. As such the image does not contain a GUI, it is a command line only installation.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Installation Steps ===&lt;br /&gt;
You are going to need:&lt;br /&gt;
* A suitable SD card for your Raspberry Pi&lt;br /&gt;
:A minimum size of 16GB is recommended. Be sure to buy a good quality card.&lt;br /&gt;
* An image installer to copy the image file to the SD card&lt;br /&gt;
:The [https://www.raspberrypi.org/documentation/installation/installing-images/ Raspberry Pi site] has a list of suitable software for your operating system. Scroll down to &amp;quot;Writing the image&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
: This guide with use Raspberry Pi Imager&lt;br /&gt;
* The image file to install&lt;br /&gt;
:Download the latest image file from here: [//{{SERVERNAME}}/Downloads/rpi-CMX-3.9.4.zip rPi Cumulus MX 3.9.4].&lt;br /&gt;
* An SSH terminal program to configure your Raspberry Pi&lt;br /&gt;
: For Windows we recommend using [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY]&lt;br /&gt;
* A file transfer program - though you will not need this right away, you will need it at some point. The main uses will be...&lt;br /&gt;
:* Copying Cumulus MX updates to your Raspberry Pi&lt;br /&gt;
:* Extracting the diagnostic files from Cumulus MX if this go wrong&lt;br /&gt;
:* Setting up a web site&amp;lt;br /&amp;gt;&lt;br /&gt;
:A popular program for Windows is [https://winscp.net/eng/download.php WinSCP]&lt;br /&gt;
&lt;br /&gt;
=== Installing the Image ===&lt;br /&gt;
This installation was performed on a Windows computer using the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager v1.4] software&lt;br /&gt;
[[File:PiImager-01.png|none]]&lt;br /&gt;
* Insert your blank SD card into your computer - if not blank whatever is on the card will be erased.&lt;br /&gt;
* Start Raspberry Pi Imager&lt;br /&gt;
:* Click the CHOOSE OS button, and select &#039;&#039;&#039;Use custom&#039;&#039;&#039;&lt;br /&gt;
:*; [[File:PiImager-02.png|none]]&lt;br /&gt;
:* Browse to the location of the OS Image zip file you downloaded - no need to unzip it&lt;br /&gt;
:* Click CHOOSE SD CARD, and select the SD card from the Device dropdown - check you have the correct drive selected!&lt;br /&gt;
:*; [[File:PiImager-04.png|none]]&lt;br /&gt;
:* Click the WRITE button. Writing the image will take a few minutes&lt;br /&gt;
:* Once the image has finished been written, you can close Raspberry Pi Imager&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;OPTIONAL&#039;&#039;&#039;&#039;&#039; - If you wish to connect your Pi to the network using WiFi from the first boot, then you will need to follow these additional steps.&lt;br /&gt;
*;Note. If you connect via an cabled network, you can always configure the WiFi later using the command line&lt;br /&gt;
:* Eject your SD card from your computer and re-insert it&lt;br /&gt;
:* Locate the SD drive in File Explorer.&lt;br /&gt;
:* On the SD drive edit a file called &#039;&#039;&#039;wpa_supplicant.conf.txt&#039;&#039;&#039; with a text editor and...&lt;br /&gt;
::* Change the country code to match your location - eg. US, GB, FR etc&lt;br /&gt;
::* Set the ssid to match your WiFi id&lt;br /&gt;
::* Set the psk to your WiFi password&lt;br /&gt;
:* Save the file, and then rename it to &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; - i.e. remove the .txt file extension&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Eject the SD card from your computer and insert it into your Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
=== First Boot ===&lt;br /&gt;
* Connect the Pi to your wired network if you did not configure the WiFi as per the steps above.&lt;br /&gt;
* Power on the Pi.&lt;br /&gt;
* Now wait 5 minutes. The first boot will be resizing your disk and optionally configuring your WiFi&lt;br /&gt;
* Start your browser and see if you can connect to this URL: &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:* If you can great - you should now see the Cumulus MX console&lt;br /&gt;
:* If not, then you will have to find out the Raspberry Pi&#039;s IP address from your router. Then try connecting to this URL: &#039;&#039;&#039;http://&amp;lt;ip_address&amp;gt;:8998&#039;&#039;&#039; (example: URL: &#039;&#039;&#039;http://192.168.1.123:8998&#039;&#039;&#039; where the numbers before :8998 are those for YOUR Raspberry Pi from YOUR router)&lt;br /&gt;
&lt;br /&gt;
=== Verify your SSH Connection ===&lt;br /&gt;
* Fire up your SSH Client - we use PuTTY here&lt;br /&gt;
:* Enter the hostname as &amp;quot;cumulusmx&amp;quot;, and check the protocol is set to SSH. Then open the connection.&amp;lt;br /&amp;gt;&lt;br /&gt;
: (You can use the IP address instead of the hostname if that does not work)&lt;br /&gt;
:*; [[File:PuTTY-01.png|none]]&lt;br /&gt;
* You will have the accept the SSH key the first time you connect&lt;br /&gt;
* Enter the username &amp;quot;pi&amp;quot; and password &amp;quot;raspberry&amp;quot; - these are the default Raspberry Pi username credentials&lt;br /&gt;
* When you login it will display a warning about you using the default password and ask you to change it&lt;br /&gt;
:* Use the &#039;&#039;&#039;passwd&#039;&#039;&#039; command to do this now...&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pi@cumulusmx:~ $ passwd&lt;br /&gt;
Changing password for pi.&lt;br /&gt;
Current password: &lt;br /&gt;
New password: &lt;br /&gt;
Retype new password: &lt;br /&gt;
passwd: password updated successfully&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Check the status of the Cumulus MX service with the command &#039;&#039;&#039;sudo systemctl status cumulusmx&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
: You will get some information back, the important bit to note is the line starting &#039;&#039;&#039;Active:&#039;&#039;&#039;, it should say &#039;&#039;&#039;active (running)&#039;&#039;&#039;&lt;br /&gt;
* You can leave the SSH session open, you will need it again soon...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configure Cumulus MX ===&lt;br /&gt;
Now it is time to configure Cumulus MX for your station.&lt;br /&gt;
* Start your browser and connect to the same URL as before - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* From the menu select &#039;&#039;&#039;Settings | Station Settings&#039;&#039;&#039;, then follow the guide on [this page?] for configuring your station&lt;br /&gt;
* Once your have completed all the settings for for station, and successfully saved them, Cumulus MX will need to be restarted.&lt;br /&gt;
* Back in your SSH session, send the command &#039;&#039;&#039;sudo systemctl stop cumulusmx&#039;&#039;&#039;, this stops the Cumulus MX service.&lt;br /&gt;
* Wait a few seconds, then enter the command &#039;&#039;&#039;sudo systemctl start cumulusmx&#039;&#039;&#039;, this starts the Cumulus MX service again.&lt;br /&gt;
* Back to your browser and check that URL - &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://cumulusmx:8998&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; - again. If all is well, the default dashboard page should start showing the data from your weather station.&lt;br /&gt;
:* If it does, congratulations, you have successfully started recording your weather data&lt;br /&gt;
:* If it doesn&#039;t, then check back over this process carefully for any mistakes or omissions you may have made.&lt;br /&gt;
:* If you cannot resolve the problem, then ask for [https://cumulus.hosiene.co.uk/ help on the forum]&lt;br /&gt;
&lt;br /&gt;
== Additional Steps ==&lt;br /&gt;
&#039;&#039;To be expanded&#039;&#039;&lt;br /&gt;
* Configuring WiFi from SSH&lt;br /&gt;
* Stopping Cumulus MX starting up when the Pi boots&lt;br /&gt;
* Give your Pi a fixed IP address&lt;br /&gt;
:* Add a DHCP reservation&lt;br /&gt;
:* Assign a static IP address&lt;br /&gt;
:If you need to use a fixed ip address for your Raspberry Pi, you have to edit this file: « &#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039; »&lt;br /&gt;
:For Ethernet connexion a line specefying port &#039;&#039;&#039;eth0&#039;&#039;&#039; is needed to describe your ethernet configuration, as this sample:&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.11.100&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  gateway 192.168.11.1&lt;br /&gt;
  dns-domain example.com&lt;br /&gt;
  dns-nameservers 192.168.11.1&lt;br /&gt;
&#039;&#039;The line &amp;quot;dns-domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You could have also to edit an other file, for dns configuration.&lt;br /&gt;
:see file «&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;» to insert these lines:&lt;br /&gt;
 nameserver 192.168.11.1&lt;br /&gt;
 domain example.com&lt;br /&gt;
&#039;&#039;Again, the line &amp;quot;domain example.com&amp;quot; is optional&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
=== Install location ===&lt;br /&gt;
In this image Cumulus MX is installed into &#039;&#039;&#039;/opt/CumulusMX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Image Customisations ===&lt;br /&gt;
* Full install of Mono&lt;br /&gt;
* Update of all packages&lt;br /&gt;
* Install of Cumulus MX&lt;br /&gt;
* Set Cumulus MX to auto-start&lt;br /&gt;
* Enable SSH service&lt;br /&gt;
* Disable IPv6&lt;br /&gt;
* Set hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== systemctl commands ===&lt;br /&gt;
You can use the following commands to control Cumulus MX...&lt;br /&gt;
: To start Cumulus:&lt;br /&gt;
 sudo systemctl start cumulusmx&lt;br /&gt;
: To stop Cumulus:&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
: To check if Cumulus is running:&lt;br /&gt;
 sudo systemctl status cumulusmx&lt;br /&gt;
: To restart Cumulus:&lt;br /&gt;
 sudo systemctl restart cumulusmx&lt;br /&gt;
: To make Cumulus start at system boot time:&lt;br /&gt;
 sudo systemctl enable cumulusmx&lt;br /&gt;
: To stop Cumulus starting at boot time:&lt;br /&gt;
 sudp systemctl disable cumulusmx&lt;br /&gt;
&lt;br /&gt;
=== Starting Cumulus MX from the command line ===&lt;br /&gt;
You may want to start Cumulus from the command line for diagnostic purposes, you can still do this...&lt;br /&gt;
&lt;br /&gt;
First make sure the Cumulus MX service is stopped&lt;br /&gt;
 sudo systemctl stop cumulusmx&lt;br /&gt;
&lt;br /&gt;
Then path to the Cumulus folder and start it&lt;br /&gt;
 cd /opt/cumulusmx&lt;br /&gt;
 sudo mono CumulusMx.exe&lt;br /&gt;
&lt;br /&gt;
=== Symbolic Links ===&lt;br /&gt;
The image contains a number of precreated symbolic links for Cumulus MX files such as realtime.txt and the standard website tmp files. These links divert these files to a memory disk to reduce wear on your SD card.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Creation Notes ==&lt;br /&gt;
* Installed Raspberry Pi Buster Lite (August 2020)&lt;br /&gt;
* Enabled SSH&lt;br /&gt;
* Installed latest updates - apt update/upgrade&lt;br /&gt;
* Installed latest Mono complete stable version (6.12)&lt;br /&gt;
* Clean up apt - apt autoremove&lt;br /&gt;
* Changed hostname to &amp;quot;cumulusmx&amp;quot;&lt;br /&gt;
* Edited cumulusmx.service and copied to /etc/systemd/system&lt;br /&gt;
* Disabled mono-xsp4 service - update-rc.d mono-xsp4 disable&lt;br /&gt;
* Copied CMX to /opt/CumulusMX folder&lt;br /&gt;
* Created symbolic links for temp files to /run/cumulusmx&lt;br /&gt;
&lt;br /&gt;
The following commands are useful in creating the image file (created on Debian).&lt;br /&gt;
&lt;br /&gt;
Create image file from SD card - sdb, may be sdc etc.&lt;br /&gt;
 dd if=/dev/sdb of=/home/&amp;lt;username&amp;gt;/rpi.img bs=1M&lt;br /&gt;
&lt;br /&gt;
Shrink the image file.&amp;lt;br /&amp;gt;&lt;br /&gt;
Download pishrink from:&lt;br /&gt;
 wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh&lt;br /&gt;
Then run it...&lt;br /&gt;
 pishrink.sh /home/&amp;lt;username&amp;gt;/rpi.img /home/&amp;lt;username&amp;gt;/rpi2.img&lt;br /&gt;
&lt;br /&gt;
Disable IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
Edit /etc/systctl.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
Add line...&lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
	<entry>
		<id>https://www.cumuluswiki.org/index.php?title=MX_on_Linux&amp;diff=7418</id>
		<title>MX on Linux</title>
		<link rel="alternate" type="text/html" href="https://www.cumuluswiki.org/index.php?title=MX_on_Linux&amp;diff=7418"/>
		<updated>2021-01-07T11:09:16Z</updated>

		<summary type="html">&lt;p&gt;Cortmalaw: /* Which Raspberry Pi to buy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Using MX on UNIX-derived Operating Systems=&lt;br /&gt;
&lt;br /&gt;
MX runs on various UNIX-derived operating systems (OS), including those found on Apple Mac computers, and those found on devices running Linux.  &lt;br /&gt;
&lt;br /&gt;
==This article focuses on a computer called the Raspberry Pi==  &lt;br /&gt;
&lt;br /&gt;
Although the article focusses on one computer type, the Raspberry Pi, the idea is that this article will complement another article [[Moving from Cumulus 1 to MX|Running Cumulus MX on Windows]], so feel free to add more to this article to explain how it can be applied to another Unix-derived devices.&lt;br /&gt;
&lt;br /&gt;
In the Cumulus support forum, there are many posts from people who are struggling with using Windows PCs, and it seems a lot of them find &amp;quot;installing&amp;quot; MX difficult.&lt;br /&gt;
&lt;br /&gt;
The same forum reveals few posts from people struggling with setting up the Raspberry Pi, and several posts reporting success with using MX on this small computer.&lt;br /&gt;
&lt;br /&gt;
==Précis==&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
*The Raspberry Pi is a simple computer that is far easier to learn than a complicated machine like a Personal Computer (PC) running Windows.&lt;br /&gt;
*You can choose either to install the Windows operating system on your Raspberry Pi or to install the simpler Raspberry Pi operating system (based on debian Linux).&lt;br /&gt;
**This article focusses on the latter as another article covers Windows.&lt;br /&gt;
**You don&#039;t need to learn much Linux, but this article does cover some commands.&lt;br /&gt;
*The Raspberry Pi is ideal to run Cumulus MX&lt;br /&gt;
**The Raspberry Pi is a computer that is better for the environment, unlike a PC manufactured with lot of components, and a PC wastes a lot of electricity if left running.&lt;br /&gt;
**Downloading the release distribution, and unzipping the files, is the same on any device&lt;br /&gt;
**On Linux you need to (simply) manually install one extra component (Mono-complete), while the equivalent component (.NET) is automatically installed on Windows.&lt;br /&gt;
**Running MX is same on any device (precise command syntax to start it varies, but what MX does when running does not depend on device)&lt;br /&gt;
*It is simplest to connect keyboard and monitor to the Raspberry Pi so all actions are done directly on it.&lt;br /&gt;
*Some optional topics are also covered.&lt;br /&gt;
**One option covered is adding a web server and a database server&lt;br /&gt;
**Another option discussed is using a PC to control a &amp;quot;headless&amp;quot; Raspberry Pi (i.e. one without keyboard and without monitor).&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is a small board of electronics that can actually run Windows, Mac OS, Chrome OS, various Linux distributions, or the Raspberry Pi OS (based on Ubantu Linux). &lt;br /&gt;
&lt;br /&gt;
In this article, the focus is on the last OS, because that is easiest to install, so look elsewhere on the web for details of installing alternatives. The notes here will generally apply to any version of Linux, although the configuration editor described is only on the Pi. &lt;br /&gt;
&lt;br /&gt;
The Apple Mac runs its own version of Unix, and while standard Unix uses Line_Feed to terminate lines in files, the Mac uses Carriage_Return.  Hopefully someone will write an article about the Mac in this Wiki, but in meantime this is closest you can get.&lt;br /&gt;
&lt;br /&gt;
The article will give you some guidance on:&lt;br /&gt;
*Choosing a Pi model to buy&lt;br /&gt;
*Setting up a Raspberry Pi,&lt;br /&gt;
*Installing OS (the NOOBS described here can install various OS, you choose which one you want)&lt;br /&gt;
*Installing Mono (needed on any Linux based OS, but can even run on Windows!)&lt;br /&gt;
*Installing MX&lt;br /&gt;
*Running MX (these notes apply to any Linux OS, but some hints need consideration even in Windows)&lt;br /&gt;
&lt;br /&gt;
It also covers some optional extras!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Which Raspberry Pi to buy=&lt;br /&gt;
&lt;br /&gt;
A standard desktop computer consumes at least 200 Watts of power (that is when it is idle, it will increase depending on peripherals attached and any processing being done) all the time it is switched on. A Pi Zero W consumes half a Watt when idle, and up to 1.78 Watt when running tasks or connected to peripherals. A Pi model 4 B (the latest model at time of writing) consumes 2.85 to 80 Watt depending on whether it is idle or working hard. Although Cumulus MX does not need to run 24/7, derived values like highest, lowest, average, and so on, will be more accurately calculated if MX is left running. Although the Pi is not the only small computer model available, it is probably the most popular and the easiest one to use if you do want to run MX all the time and not wreck the planet!&lt;br /&gt;
&lt;br /&gt;
If you do a search on the support forum, you will find a lot of different opinions about which model you should buy, but in the end you decide! The following sections contain just suggestions on how to decide, there is no intention to force any single decision. This article focusses on those who buy a Raspberry Pi as a small computer, who might want to use it for other tasks like word processing, and for novices who feel happier to connect a screen and keyboard. This article is less useful if you want to own 2 computers and run your Pi headless by sending commands from your other computer, see [[Raspberry Pi Image]] article instead.&lt;br /&gt;
&lt;br /&gt;
==First make a list of what you need==&lt;br /&gt;
&lt;br /&gt;
*Do you want to use a mouse and key board so that you can use your Raspberry Pi as a computer for tasks like browsing the web and word processing, not just for Cumulus MX?&lt;br /&gt;
** If so, a model with multiple USB sockets is advisable (like 3B+)&lt;br /&gt;
** This also applies if you want to be able to plug in a USB stick (perhaps for holding/transferring files between devices, e.g. Cumulus configuration and data folder files; this will save wear on the micro-SD disc)&lt;br /&gt;
*Do you want a wired connection to your hub or router?&lt;br /&gt;
** Maybe you are going to update external sites, a wired connection may provide a faster and more dependable communication than a wireless link&lt;br /&gt;
** If so, a model including an Ethernet socket is advisable (like 3 B+)&lt;br /&gt;
** You can add a USB hub and Ethernet dongle to model Zero, but by the time you have done so would have been better to start with a 3 B+ or 4)&lt;br /&gt;
** Remember that if you are operating the pi in headless mode, a wired or wireless connection to your LAN is needed for your other device to communicate with the Pi&lt;br /&gt;
*Will your MX need to update a database, feed data to a web site, upload to external sites, or control other devices?&lt;br /&gt;
** If so, a model Zero will have to do each task in turn, and you will see some delay in information updates, plus you will need to use a larger time between updates&lt;br /&gt;
** If so, a model Three (or Four) will be noticeably faster, and support all options in MX, and can update external sites more frequently&lt;br /&gt;
* What interface does your weather station use?&lt;br /&gt;
** If your station communicates to MX via wireless, then you choose a model that supports wireless at the right frequency, all models support basic wireless&lt;br /&gt;
** If your station communicates via Ethernet, then either a wired, or wireless, connection is possible between router/hub and Pi as the station will be plugged into your hub or router&lt;br /&gt;
** If your station communicates to MX via USB, then choose between the model 0W with one USB socket, and the model 3B+ with 4 USB sockets depending on whether you might want to use another USB socket ever&lt;br /&gt;
** If your station uses another communication port (such as serial interface), then you need the additional components that support that interface&lt;br /&gt;
&lt;br /&gt;
== Now research how the various models relate to your needs ==&lt;br /&gt;
&lt;br /&gt;
You can look up online what features are included in the various Pi models, and how they differ in power consumption, and cost. But your decision also needs to consider what you need. Here, I won&#039;t describe all the different models, but concentrate on just 2 for simplicity. &lt;br /&gt;
&lt;br /&gt;
The model Zero W is appealing as it has low power consumption, it is perfectly adequate for running MX (but has limited speed, it runs the various threads MX uses sequentially) especially if you only use standard MX functionality and don&#039;t ask MX to do all the optional extras, and has limited interfaces for peripherals. &lt;br /&gt;
&lt;br /&gt;
The model 3 B+ is appealing as it has medium power consumption, but can cope better with the multiple threads that MX starts, and has more interfaces built in, such as 4 USB 2 ports (useful if you want to connect a weather station using USB and connect a keyboard). &lt;br /&gt;
&lt;br /&gt;
While both models support wireless links and Bluetooth, the latter model also allows a wired Ethernet connection, and that may be useful if that is how you connect to your weather station (an  Ethernet connection is also advisable if you want to install a web server, on your Pi).  Having an Ethernet connection, as explained later, makes it possible to easily install the Windows Operating System on your Raspberry Pi on first boot.&lt;br /&gt;
&lt;br /&gt;
* Raspberry Pi Zero W&lt;br /&gt;
** Pi Zero W has WiFi and one micro-USB port which is all that is needed for headless running.&lt;br /&gt;
** Installing onto a faster Pi might speed parts of the installation process, but for actual ‘production’ running this slower, and simpler, Pi will be perfectly adequate.&lt;br /&gt;
** It could run a web server, but that might really slow it down.&lt;br /&gt;
** If you run this headless, all updates are done remotely, so the connectivity and speed of the actual Pi are less important&lt;br /&gt;
* Raspberry Pi Three B Plus&lt;br /&gt;
**  The faster speed of this Pi although NOT necessary for running Cumulus MX, will cope better if you are asking MX to do lots of processing (e.g. updating database tables or external sites as well as standard processing).&lt;br /&gt;
** Pi Three B Plus has a socket for an external power supply, Ethernet socket (supports wired link); a HDMI socket for audio/video to TV, or computer monitor; a standard jack audio socket for external headphone, or speaker; 4 standard USB type 2 sockets for weather station, mouse, keyboard, USB stick, or other storage device; plus other connections (e.g. camera).&lt;br /&gt;
** This might be better if you also want to run a web server, and if you want to do other tasks (e.g. word processing - &#039;&#039;&#039;Libre Office&#039;&#039;&#039; is installed as standard on a Pi) on the same Pi.&lt;br /&gt;
** Also consider this model if it is to be used on a remote site so when you visit it is useful to be able to plug in a monitor and other peripherals, and to spend as little time on updating as possible.&lt;br /&gt;
&lt;br /&gt;
Other models are available, but you need to check their specification against your needs. For example, the current model Four has more capabilities, but may be less appealing as it also consumes more power.&lt;br /&gt;
&lt;br /&gt;
== What else to buy ==&lt;br /&gt;
&lt;br /&gt;
You can buy just the Pi, which is just a circuit board, or a kit that includes other components. &lt;br /&gt;
&lt;br /&gt;
Generally buying as a kit is cheaper than buying items individually.  A typical kit includes the Pi board with components and interfaces on it, a power supply (with a plug suitable for your mains sockets), a micro-SD card (see later sub-section), some connection leads, and a case that you can fit the board into to protect it.&lt;br /&gt;
&lt;br /&gt;
You may want to buy a case, that will protect your Pi from accidental damage.  A case specifically designed for your Pi model will have cut-outs in the right place for each interface connection, and will have sufficient ventilation for the electrical components to not over-heat. Some designs have additional holes for securing peripherals.&lt;br /&gt;
&lt;br /&gt;
You may need a power supply. &lt;br /&gt;
*This could be an official Raspberry Pi power supply. &lt;br /&gt;
*Alternatively, any power supply unit that has a micro USB connector will do, the power consumption of a Pi (whichever model) is fairly small, but it will be powered on 24/7, so a low power consumption ‘switched mode’ type is preferred – i.e. one that does not become warm when plugged in with nothing attached. &lt;br /&gt;
**You may have a suitable one left over from an earlier mobile phone. &lt;br /&gt;
&lt;br /&gt;
You may need to buy connection leads:  &lt;br /&gt;
*You may need a HDMI lead to connect your PI to your TV or a spare computer monitor. &lt;br /&gt;
*You may need a USB lead to connect to your weather station (the Pi model Zero requires a micro USB, the Pi model 3 requires a standard A end USB) and your station probably has a USB A end connection. &lt;br /&gt;
*If your weather station connects by Ethernet, you will need one lead to connect the station to the router and possibly another to connect the hub or router to the Pi.&lt;br /&gt;
&lt;br /&gt;
If you do choose a model 3 (or later), consider whether you do want to buy a USB mouse and USB keyboard to use with it.&lt;br /&gt;
 &lt;br /&gt;
Finally, you may wish to buy a second micro-SD unit as a spare, or some other USB connected (or network connected) storage for back-ups and extra storage needs.&lt;br /&gt;
&lt;br /&gt;
= Setting up your Pi =&lt;br /&gt;
&lt;br /&gt;
== Image alternative ==&lt;br /&gt;
&lt;br /&gt;
If you are never going to use a keyboard nor Tv (or other monitor) with your Raspberry Pi, there is now an alternative to installing operating system, mono, and MX separately, a single &#039;&#039;&#039;image&#039;&#039;&#039; that contains all elements needed can be downloaded from the [[Software#Current_Release|Software page Current_Release section]], read about using it in [[Raspberry_Pi_Image]] article. I will just stress here, that following this alternative option, provided by developer, installs the &#039;&#039;&#039;Raspberry Pi Lite Operating System&#039;&#039;&#039; and does not give you the freedom to add a web site as described below. Also with this option you still need to add [[Cumulus.ini]], [[strings.ini]], all files in [[:Category:Log Files|data folder]], and any files in the Reports folder by file transfer from some other device to the Pi with this image.&lt;br /&gt;
&lt;br /&gt;
== Doing it manually ==&lt;br /&gt;
&lt;br /&gt;
You can find, online, instructions (and videos) about setting up a Pi, these describe all the necessary steps that are described below from buying a suitable micro-SD card, through installing the operating system, and adding additional software. If you use a search engine, then you can find a variety of different sets of instructions, including some that are very simple but basic; and others that are a little more complex so they can explain any options!&lt;br /&gt;
*The obvious place to look is [https://www.raspberrypi.org/documentation/setup/ the manufacturer&#039;s web site], the manufacturer actually also publishes the same documentation on [https://github.com/raspberrypi/documentation/blob/master/setup/README.md their github page]. &lt;br /&gt;
*If you have brought your Pi from a distributor, their web site (e.g. [http://www.okdo.com/gettingstarted &#039;getting started&#039; instructions provided by this distributor]) might have simple instructions tailored to their product,&lt;br /&gt;
* or you can find the details at many general forum type sites with &amp;quot;how to&amp;quot; advice. &lt;br /&gt;
&lt;br /&gt;
In this article, each step in installation is covered, in the sections that follow.  Obviously, this article is trying to balance the needs of a novice with the needs of someone who wants to plug holes in their existing knowledge, that need to be comprehensive means it might not seemed to be aimed exactly at what you need.  &#039;&#039;Anyone who feels able to improve this article is welcome to edit it&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Micro-SD card ===&lt;br /&gt;
&lt;br /&gt;
You will need a micro-SD card (preferably class 10, the class number indicates the relative speed of read/write compared to original design, so this class is 10 times faster).&lt;br /&gt;
&lt;br /&gt;
#A Pi will work with either a class 4 (only 4 times faster), or a class 10, micro-SD card. &lt;br /&gt;
#Just for the standard install you need a card with a &#039;&#039;&#039;minimum of 8 GB&#039;&#039;&#039;. &lt;br /&gt;
#Given we are going to add Mono and Cumulus MX to the card, I advise you buy a card with at least 16 GB (as the default operating system installation takes up almost half of that),&lt;br /&gt;
#* but you might prefer to buy a 32 GB or 64 GB (or add an external USB drive or USB memory stick) if you intend to keep a lot of data on the Pi.&lt;br /&gt;
&lt;br /&gt;
I won&#039;t mention manufacturer names here, but one well known brand (that uses descriptions like extreme) is the market leader, and does have greater reliability than cheaper cards from other manufacturers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Setting up a Pi is simpler&#039;&#039; &#039;&#039;&#039;if you buy a micro-SD card that is&#039;&#039;&#039;:&lt;br /&gt;
* either pre-installed with [https://github.com/raspberrypi/documentation/blob/master/installation/noobs.md NOOBS (Novel Out of Box Software)], &lt;br /&gt;
* or pre-installed with the Raspberry Pi operating system.&lt;br /&gt;
&lt;br /&gt;
NOOBS makes it easy to install (by default) Raspberry Pi operating system, as if you insert such a micro-SD card into a new Raspberry Pi computer, when you power up the Pi, the operating system will be installed during that first boot. If you have a Raspberry Pi model with an Ethernet connection, and you connect your Pi to your hub/router before you first switch it on, then at that first boot, NOOBS will offer you a choice of several operating systems, with Raspberry Pi as first choice.&lt;br /&gt;
&lt;br /&gt;
Various suppliers offer cards of 16 to 64 GB with NOOBS pre-installed ready for use in a Pi (I bought from a firm in Haverhill, Suffolk, UK). &lt;br /&gt;
&lt;br /&gt;
My advice is to buy your micro-SD card from a firm that specialises in selling Raspberry Pi computers and accessories. That should ensure you buy a card with the latest version of NOOBS (or Raspberry Pi Operating System) and that will make your life simpler than buying a blank micro-SD card and having to down load and add the operating system yourself.&lt;br /&gt;
&lt;br /&gt;
If you want to be able to use the micro-SD card in other devices (like your PC), you may need to also buy an adapter which allows the micro-SD card to be plugged into a standard SD socket. This may be included if you buy a micro-SD card not sold specifically for the Pi, or may be available with the Pi micro-SD under a special offer for buying two items together.&lt;br /&gt;
&lt;br /&gt;
=== The Operating System ===&lt;br /&gt;
&lt;br /&gt;
As said before, a number of operating systems can be installed on your Pi, even Windows.  &lt;br /&gt;
&lt;br /&gt;
To keep this article simple, I will assume you have bought a micro-SD card either pre-installed with an operating system (OS) so you are ready to go, or you used NOOBS (as described earlier) to install your chosen OS.&lt;br /&gt;
&lt;br /&gt;
If you do need to install any operating system you choose, normally the instructions will be found from where you download the system you have selected. If you have brought a card without NOOBS, you can download/install the Raspberry Operating System Buster yourself, following either instructions on the [https://www.raspberrypi.org/downloads/ Raspberry Pi download page], those at [https://thepihut.com/blogs/raspberry-pi-tutorials/the-raspberry-pi-tutorial-beginners-guide this supplier&#039;s tutorial guide], or [https://cumulus.hosiene.co.uk/viewtopic.php?p=139422#p139422 those in Cumulus support forum]. To save you looking any of those up, the next sub-section summarises what you need to do.&lt;br /&gt;
&lt;br /&gt;
==== How to add Raspberry Operating System to a card yourself ====&lt;br /&gt;
&lt;br /&gt;
*Decide whether you want &lt;br /&gt;
**the full version of the operating system that supports a graphical user interface (choose this if you want to connect a TV or other monitor to your Raspberry Pi), &lt;br /&gt;
**or the &#039;&#039;lite&#039;&#039; version of the operating system that only supports SSH or terminal mode (choose this if you will operate headless - explained at end of this article)&lt;br /&gt;
*Download the latest version of the Raspberry Pi operating system you have selected from https://www.raspberrypi.org/downloads. &lt;br /&gt;
*That imager is run on any device, say your pc, and then you select &#039;&#039;&#039;write&#039;&#039;&#039; to save it onto the micro-SD card (don&#039;t forget this overwrites anything already on the card). &lt;br /&gt;
*This should work without a need to format the card first, (but if you do need to format it, do so using a SD card formatter downloaded from https://www.sdcard.org/downloads/formatter_4/index.html, &#039;&#039;&#039;not&#039;&#039;&#039; for example Windows format tool). &lt;br /&gt;
*After this image has been stored it will have created two (or three) partitions on the micro-SD card (one the boot partition is a FAT partition that can be accessed by Windows, the larger Linux partition is invisible to Windows, the optional third partition uses up any space left on a larger micro-SD card and appears as &amp;quot;data&amp;quot; under &amp;quot;media&amp;quot; in the Linux file structure).&lt;br /&gt;
&lt;br /&gt;
==== Is the operating system obsolete or up to date?====&lt;br /&gt;
&lt;br /&gt;
It is important that your Raspberry Pi (or other device) has the latest operating system version installed.  If the Operating System installed is an obsolete one, then each package it includes (e.g. Libre Office), and each package you add (e.g. Mono or PHP), will also be obsolete versions. In the worst case scenario, any attempt to install a package might fail giving an error message that the relevant Raspberry Pi repository is archived.&lt;br /&gt;
&lt;br /&gt;
If you have a micro-SD card pre-installed with NOOBS, as described above, the first boot will install the operating system. It is the version of NOOBS that is included on the card that determines which Raspberry Pi Operating System version is set up:&lt;br /&gt;
*Wheezy (7) released in 2013&lt;br /&gt;
*Jessie (8) dating from 2015&lt;br /&gt;
*Stretch (9) released in 2017 (up to this called Raspbian Operating System)&lt;br /&gt;
*Buster (10) available from 2019 (the first to be called Raspberry Pi Operating System)&lt;br /&gt;
*Bullseye (11) under test in 2020&lt;br /&gt;
&lt;br /&gt;
Be aware that many such pre-loaded and pre-formatted cards include an obsolete version of NOOBS. &lt;br /&gt;
*You may find your card installs the obsolete Raspbian Jessie (version 8 of Debian from 2015), &lt;br /&gt;
*a few install the old Raspbian Stretch (Version 9 of Debian, dating from 2017), &lt;br /&gt;
*a good supplier sells a card that installs latest Raspberry Operating System Buster (Version 10 of Debian, released in 2019). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Wireless Network ===&lt;br /&gt;
&lt;br /&gt;
How this is set up depends on your Pi model, and the operating system that is loaded on it, &lt;br /&gt;
*it may on first boot ask you to enter your wireless network details, &lt;br /&gt;
*it may list the wireless networks it finds and ask you to choose from the listed SSID, &lt;br /&gt;
*it might not prompt you so you need to use the configuration tool (see next sub-section), &lt;br /&gt;
*or you might need to click on an icon with two red crosses.&lt;br /&gt;
&lt;br /&gt;
Note that there is also a Wi-Fi network country which must be set.&lt;br /&gt;
&lt;br /&gt;
If you have had to enter wireless details into a mobile phone, you will realise what is needed:&lt;br /&gt;
*The &#039;&#039;Service Set IDentifier&#039;&#039; (SSID) is the name that is used for your wireless network.&lt;br /&gt;
**As mentioned above, you may see a list of those that have been found.  &lt;br /&gt;
**You may have typed this into your mobile phone. &lt;br /&gt;
**It may be shown on a card that slips into a slot on your hub or router (you may have changed it from that initial setting). &lt;br /&gt;
**It can be up to 32 characters (letters, numbers, and symbols. &lt;br /&gt;
**Some routers come with a default SSID that is the manufacturer&#039;s name, if left unchanged it might conflict with a neighbour, so it is left to you to pick a SSID that is unique to you using up to 32 characters to personalise it. &lt;br /&gt;
*You also need to enter whatever Pre-Shared-Key (password) is used for your wireless network. &lt;br /&gt;
**You will have typed this into your mobile phone, so that can automatically connect to your network. &lt;br /&gt;
**You should have changed it (for security reasons) from whatever was shown as the initial password on the card that slips into a slot on your hub or router (possibly all you have done is add a prefix or suffix that means something to you).&lt;br /&gt;
*Most wireless networks will use Wi-Fi Protected Access (WPA) or (from 2006) Wi-Fi Protected Access II (WPA2) protocols, so &#039;&#039;&#039;WPA-PSK&#039;&#039;&#039; is correct for you. &lt;br /&gt;
**Note that your Pi is only able to use these protocols. &lt;br /&gt;
**The earlier Wired Equivalent Privacy (WEP) was officially withdrawn in 2004 as too easy to crack, so it is not supported on a new Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other configuration ===&lt;br /&gt;
&lt;br /&gt;
There are various other configurations you need to do on your PI.  &lt;br /&gt;
You need to use the raspbian configuration tool &#039;&#039;&#039;raspi-config&#039;&#039;&#039;,&lt;br /&gt;
*this can be accessed on your Pi either in a Graphical User Interface (GUI), &lt;br /&gt;
*or by running a command &amp;lt;tt&amp;gt;sudo raspi-config&amp;lt;/tt&amp;gt; in Terminal.&lt;br /&gt;
&lt;br /&gt;
==== Mandatory configurations ====&lt;br /&gt;
&lt;br /&gt;
Within the Raspberian configuration utility, you will see an option to change password. You will want to do this so nobody can hack into your Raspberry Pi computer.  You will need to enter the new password twice before it replaces the old one.&lt;br /&gt;
&lt;br /&gt;
The default network (host) name for your Pi is &#039;&#039;&#039;raspberrypi&#039;&#039;&#039;, obviously we need to replace that as well with a name that personalises it to you and does not make it easy for a hacker to know what device is represented by that network name. &lt;br /&gt;
*The name can most easily be changed within the Raspberian configuration utility, you will see a &#039;&#039;&#039;Network Options&#039;&#039;&#039; option, it is there that you change the network name.&lt;br /&gt;
*but it can also be edited by opening the file where it is stored using &amp;lt;tt&amp;gt;sudo nano /etc/hostname&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
Network options can also be configured by clicking an icon on the Pi (this icon might be two red crosses if network settings are missing, two parallel arrows if the network settings are not correctly set, or the wireless symbol if your wireless network is working). &lt;br /&gt;
&lt;br /&gt;
==== Recommended configurations ====&lt;br /&gt;
&lt;br /&gt;
The default &#039;&#039;&#039;locale&#039;&#039;&#039; for a Pi is normally &#039;&#039;&#039;en_GB.UTF-8&#039;&#039;&#039;, as they are designed by a company based in UK. Within the configuration option, you can add additional locales (in most cases there is a UTF-8 option which is preferred and at least one other encoding), there are also a number of special alternative locales, but I am not going to explain all the options, look it up if the default locale is not acceptable.&lt;br /&gt;
*Whatever locale you use, if you have already been using Cumulus (1 or MX), you need to ensure the locale matches the one used for your log files. The versions of MX released from the middle of 2020 onwards are very fussy that all dates use the same delimiter (see [[Cumulus_MX_formal_release_versions]]), so you need to check the chosen locale continues to use the same date separator as before. The locale is affected by the version of Mono you install and whether you use the locale parameter when starting MX, so I cannot cover all options. &lt;br /&gt;
*Anyway, the default locale is fine if you are in the UK, you use decimal points for real numbers, you use commas for list separators, and you don&#039;t have dates with month first!&lt;br /&gt;
*To change the locale, enter &#039;&#039;&#039;Localisation Options&#039;&#039;&#039;.   &lt;br /&gt;
&lt;br /&gt;
In the same option area, there are &#039;&#039;&#039;some more options&#039;&#039;&#039;:&lt;br /&gt;
# Change Time-zone, by default UTC is used all year round. In the UK if your Cumulus MX is set to roll over at 10am in summer, you will wish to change the time-zone to UK time, because MX uses system time for many of its actions.&lt;br /&gt;
# Change Keyboard Layout if needed, keyboards can support different numbers of characters, and can have different currency symbols, so select whatever is relevant to you&lt;br /&gt;
&lt;br /&gt;
====To leave configuration====&lt;br /&gt;
&lt;br /&gt;
Select ‘Finish’.&lt;br /&gt;
&lt;br /&gt;
== Installing Mono ==&lt;br /&gt;
&lt;br /&gt;
Sponsored by Microsoft, Mono is an open source implementation of Microsoft&#039;s .NET Framework based on the ECMA standards for C# and the Common Language Runtime. &lt;br /&gt;
&lt;br /&gt;
=== Preparing for Mono installation ===&lt;br /&gt;
&lt;br /&gt;
Quite often when we try to install, or update, packages on our Pi we will see messages about dependencies, and in some cases error messages saying the installation has failed or been aborted. Before we can install Mono, there are other packages required and these vary depending upon the Raspberry operating system version we have installed, see [https://www.mono-project.com/download/stable/#download-lin-raspbian Mono download instructions for Raspberry Pi]. Here are the latest 2 options when this article was updated (if your Mono installation fails, then you selected wrong one):&lt;br /&gt;
&lt;br /&gt;
For Raspberry Operating System 9 (stretch):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install apt-transport-https dirmngr gnupg ca-certificates&lt;br /&gt;
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF&lt;br /&gt;
echo &amp;quot;deb https://download.mono-project.com/repo/debian stable-raspbianstretch main&amp;quot; | sudo tee /etc/apt/sources.list.d/mono-official-stable.list&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Raspberry Operating System 10 (buster):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install apt-transport-https dirmngr gnupg ca-certificates&lt;br /&gt;
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF&lt;br /&gt;
echo &amp;quot;deb https://download.mono-project.com/repo/debian stable-raspbianbuster main&amp;quot; | sudo tee /etc/apt/sources.list.d/mono-official-stable.list&lt;br /&gt;
sudo apt update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Checking all packages are up to date ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Either&#039;&#039;&#039; type:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;or&#039;&#039;&#039; to insert in single line type instead &amp;lt;tt&amp;gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Installing instruction ===&lt;br /&gt;
&lt;br /&gt;
With all the pre-requisites correct as in previous steps, you can install mono package by simply typing &amp;lt;tt&amp;gt;sudo apt-get install -y mono-complete&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
It is important to note that MX requires the &#039;&#039;complete&#039;&#039; edition of mono as there is also a cut-down developer edition of Mono that can be downloaded/installed. &lt;br /&gt;
&lt;br /&gt;
The &amp;quot;sudo&amp;quot; part of this gives us rights, &amp;quot;apt-get&amp;quot; is one of the ways to search the Raspberry repository for applications, &amp;quot;install&amp;quot; is the action we want to do, and &amp;quot;mono-complete&amp;quot; is the package we want.&lt;br /&gt;
&lt;br /&gt;
=== Completing Package Installation ===&lt;br /&gt;
&lt;br /&gt;
As the Pi does not know exactly which components are needed when multiple packages are installed with various dependencies, sometimes extra components are installed which in the end are not needed when you complete all your installations. &lt;br /&gt;
&lt;br /&gt;
To clear up, delete any components that are not included in dependencies by typing &amp;lt;tt&amp;gt;sudo apt autoremove&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Downloading and Unzipping MX Distribution ==&lt;br /&gt;
&lt;br /&gt;
For simplicity, MX is installed into standard Pi user&#039;s home directory here.  You might instead choose to install it on an external drive which has two significant advantages:&lt;br /&gt;
#there are certain files within MX that are updated very frequently, such constant rewriting can lead to a shorter life for your micro-SD card, by using an external drive for MX, MX files are less likely to be lost, and you are less likely to lose your operating system off your micro-SD card&lt;br /&gt;
#if you accidentally were to corrupt a critical file on your Raspberry Pi, you would need to rebuild the operating system image, and that deletes all existing files on the micro-SD card, including any related to MX, and you don&#039;t want to lose your precious data&lt;br /&gt;
&lt;br /&gt;
Both the optional &amp;quot;data&amp;quot; directory created by NOOBS and any external drive appear within &amp;quot;/media/&amp;quot; in the file structure, but the exact path depends on your set-up and can&#039;t be predicted here.&lt;br /&gt;
&lt;br /&gt;
The procedure is exactly same on your Raspberry Pi, as it would be on a Windows PC:&lt;br /&gt;
# It is recommended, you type &amp;lt;tt&amp;gt;sudo mkdir ~/CumulusMX&amp;lt;/tt&amp;gt; first, so you already have folder ready for MX, but the file can be created by unzipping the distribution.&lt;br /&gt;
#Run the browser you have available on your Raspberry Pi (the installed browser depends on what Operating System you installed)&lt;br /&gt;
#To find the link to latest release distribution zip in the Cumulus Wiki, open the [[Software#Current_Release|Software article in the Current_Release section]].&lt;br /&gt;
#Download the MX distribution from the link that appears there, Mark will update it for each release he makes.&lt;br /&gt;
&lt;br /&gt;
If the latest release has bugs (it is impossible for the developer to check all the ways in which versatile MX can be used), you can Download whatever older version of MX you have decided to install from [https://github.com/cumulusmx/CumulusMX/releases CumulusMX/releases].&lt;br /&gt;
&lt;br /&gt;
#If you are downloading the distribution on your Pi, the easiest option is to download into &#039;&#039;&#039;~/downloads&#039;&#039;&#039; folder.&lt;br /&gt;
#* Whether this location is the default, or you are asked to select location will depend on whether your browser&#039;s default settings have been changed. &lt;br /&gt;
#When download completes, use the mouse to click on the download file name, this should ask if you want to extract (unzip) it.&lt;br /&gt;
#Ensure the file unzips into your personal directory &amp;quot;/home/pi&amp;quot;, although you could place it elsewhere, this is the easiest place to find (because it can also be represented by &amp;quot;~&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== MX Back-up issues ===&lt;br /&gt;
&lt;br /&gt;
You should ensure that you backup the critical files ([[Cumulus.ini]], [[strings.ini]], all files in &#039;&#039;&#039;data&#039;&#039;&#039; folder, any files in &#039;&#039;&#039;Report&#039;&#039;&#039; folder) on a regular basis to another computer (or to your web site) and not rely on any back-ups that MX does.&lt;br /&gt;
&lt;br /&gt;
=== Configuration issues ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you have not used Cumulus before&#039;&#039;&#039;, there is useful guidance in various other articles that is not repeated here (it may seem a lot to read, but reading these instructions my save you from days of issues, just look at the support forum for examples of people struggling because they did not read up first and so missed key settings):&lt;br /&gt;
*To learn about what MX can do, please see [[About Cumulus]] article&lt;br /&gt;
*To learn about configuration, please see [[MX Administrative Interface]] and [[Cumulus.ini]] articles. &lt;br /&gt;
** It is important to see that whilst most settings can be done in the former, a few are read-only and must be done in latter&lt;br /&gt;
**Also note that some settings are related (e.g. you need to enable real-time before any real-time actions can be selected; equally you need to enable moon image generation before you can tick the upload option; these are just the 2 most common errors)&lt;br /&gt;
*For general advice relating to [[Cumulus MX]], follow that link&lt;br /&gt;
*For [[What to do when I have a problem with MX]], follow that link&lt;br /&gt;
*An article that needs someone to spend a lot of time improving it is [[Cumulus MX FAQ]], but the article could be useful&lt;br /&gt;
**The cumulus 1 [[FAQ]] might help (e.g. how to upload past data), but use with caution as Cumulus 1 and MX are very different in how they do many actions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you have used Cumulus before&#039;&#039;&#039;, but this is first installation on Pi, then you need to copy some files from old installation to your Pi, here are a couple but you may have further configuration files to copy across:&lt;br /&gt;
*Cumulus.ini&lt;br /&gt;
*strings.ini&lt;br /&gt;
&lt;br /&gt;
The two examples above are in same folder as Cumulus.exe or CumulusMX.exe. You also may have configuration files in a &#039;&#039;&#039;mqtt&#039;&#039;&#039; folder, or elsewhere (for example I store some batch files that Cumulus runs for me in a batch folder). Be aware that the characters terminating each line may need editing (see next sub-section).&lt;br /&gt;
&lt;br /&gt;
Remember as mentioned earlier, the configuration file [[Cumulus.ini]] may need editing to update port names, any command locations, and to update file locations.  Whilst you will find using the admin interface is easiest because it (in many cases) limits the selections to those that are valid; editing the Cumulus.ini file directly might be easier if you have moved from Windows and want to do repeat edits (e.g. changing multiple paths for files is easier using a repeat edit, than wading through all extra web file options in the interface). &lt;br /&gt;
*There is advice about port names at [[Cumulus.ini#Swapping_from_Cumulus_1_to_MX]].  &lt;br /&gt;
*For &#039;&#039;&#039;Extra Web Files&#039;&#039;&#039;, local file names will look like &#039;&#039;/home/pi/CumulusMX/web/trendsT.htm&#039;&#039; for the standard templates, or it might be something like &#039;&#039;&#039;/home/pi/cumulus_Templates/valuesRecentForDetailT.js&#039;&#039;&#039; if you have created your own templates. &lt;br /&gt;
**&#039;&#039;Please note&#039;&#039; that Cumulus MX program code DOES NOT recognise &amp;quot;&#039;&#039;&#039;~/&#039;&#039;&#039;&amp;quot; as shorthand for &#039;&#039;&#039;/home/pi/&#039;&#039;&#039;. &lt;br /&gt;
**Your remote file names, if you have a local server as set up in the notes in the optional sections later, will look like &#039;&#039;/var/www/html/weather/trends.html&#039;&#039; or &#039;&#039;&#039;/var/www/html/weather/js/valuesRecentForTrends.js&#039;&#039;&#039;, depending on your folder structure.  If you pay for a commercial web server, remote file names will be as specified by them and not dependent on what device MX is on. &lt;br /&gt;
**Remember &#039;&#039;if web site is on your Pi&#039;&#039;, MX needs full &#039;&#039;&#039;rw&#039;&#039;&#039; permissions to the HTML folder on your web site,  so give permissions recursively using &amp;lt;tt&amp;gt;sudo chmod -R ugo+rw /var/www/html&amp;lt;/tt&amp;gt; for Cumulus MX to successfully copy there.&lt;br /&gt;
&lt;br /&gt;
=== Keeping existing data and Reports files ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you have used Cumulus before&#039;&#039;&#039;, you will be seeking to keep your existing log files. If you have been using the Windows Operating System each line in each file will be terminated by two control characters (carriage_return and Line_feed). That is fine if you have installed Windows on your Raspberry Pi.  Assuming you have installed the Raspberry Pi Operating System or another Linux distribution, then ideally all your files should be edited so they simply use Line_feed to terminate all lines. This can be easily done in an editor like Notepad++ that is designed for computer files.&lt;br /&gt;
&lt;br /&gt;
The novice does not need to worry about changing end of line characters, it is advisable but not essential (as the Pi will treat the CR as a character it does not display)&lt;br /&gt;
&lt;br /&gt;
To get the entire content of your existing  &#039;&#039;&#039;data&#039;&#039;&#039; and &#039;&#039;&#039;Reports&#039;&#039;&#039; folder onto your Pi:&lt;br /&gt;
*you could copy them onto the micro-SD card (and move that between PC and Pi)&lt;br /&gt;
*you can transfer files across the wireless or Ethernet network using FileZilla Client (or an alternative file transfer tool). &lt;br /&gt;
&lt;br /&gt;
First of all you need to configure FileZilla Client, unless you have done that previously and saved the configuration:&lt;br /&gt;
*The quickest way is to fill out the &amp;quot;quick connect boxes&amp;quot;.&lt;br /&gt;
* Host - this is the IPv4 address of your Pi, I can&#039;t tell you what it is, but it is likely to be &#039;&#039;&#039;192.168.z.xy&#039;&#039;&#039; where the z is probably &amp;quot;1&amp;quot;, but it could be another single figure like 0, and the xy is two (or perhaps three) figures you can find out by looking for &amp;quot;pi&amp;quot; (or whatever host username you have set on your Pi) in the admin interface for your hub or router. (It can also be found out by typing &amp;lt;tt&amp;gt;hostname -I&amp;lt;/tt&amp;gt;). Most networks are setup in a way that the subnet range is from 192.168.1.0 to 192.168.1.255.&lt;br /&gt;
**If your Raspberry Pi has both Wireless and Ethernet connections, you will have two possible IPv4 addresses, choose either, the Ethernet one is likely to be quicker.&lt;br /&gt;
* Username - the default for this is &#039;&#039;&#039;raspberrypi&#039;&#039;&#039; (although on older Pi it might be &#039;&#039;&#039;Pi&#039;&#039;&#039;), but you can may have changed this (as described earlier). (It can be found by typing &amp;lt;tt&amp;gt;hostname&amp;lt;/tt&amp;gt;) or by looking at the contents of the file &#039;&#039;&#039;/etc/hostname&#039;&#039;&#039;.&lt;br /&gt;
* Password - again the default for this is &#039;&#039;&#039;raspberry&#039;&#039;&#039; but we changed it as one of the mandatory configurations earlier.&lt;br /&gt;
* Port - 22 is the default, and I have not said how you can change this!&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;QuickConnect&#039;&#039;&#039; and you should see the local files in the left frame and your Pi home files in the right frame. The easiest way is to find the folder called &#039;&#039;&#039;data&#039;&#039;&#039; in the distribution on the left and drag it to the correct position in the right hand frame. Then all you need to do is watch the progress until it successfully finishes.&lt;br /&gt;
&lt;br /&gt;
If you are going to continue using Filezilla, there are options to save the current configuration and to set up a number of alternative configurations (specifying in advanced tab different locations on your PC and different locations on your Pi).&lt;br /&gt;
&lt;br /&gt;
== Running Cumulus MX ==&lt;br /&gt;
&lt;br /&gt;
(When these notes were written, there were topics in the support forum about ways to use scripts for starting/stopping MX, but the distribution did not include any such controlling scripts. The latest MX version includes a script allowing MX to be run as a service, and perhaps someone would be kind enough to expand the first sub-section).&lt;br /&gt;
&lt;br /&gt;
=== Running as a service ===&lt;br /&gt;
&lt;br /&gt;
(awaiting someone to explain this)&lt;br /&gt;
&lt;br /&gt;
=== Running with a terminal session left open ===&lt;br /&gt;
&lt;br /&gt;
Whichever operating system you are using, to run MX requires an instruction that changes to the directory where it is installed (the instruction below is assuming it is in the standard Pi user home directory, the change directory command will be different if you have installed it elsewhere), and then starting the executable (using mono in the instruction below that applies to any non-Windows operating system). You may wish to add [[Cumulus_MX#Optional_parameters_to_add_to_the_instruction_to_run_the_MX_engine|Optional_parameters]].&lt;br /&gt;
&lt;br /&gt;
The simplest instruction to run Cumulus MX  is &amp;lt;tt&amp;gt;cd CumulusMX &amp;amp;&amp;amp; sudo mono CumulusMx.exe&amp;lt;/tt&amp;gt;.  Just in case it is not obvious .... if you start MX using this command in a terminal window on your Pi, you must leave that session running, then MX will continue to run. &lt;br /&gt;
&lt;br /&gt;
You can start it off directly on your Pi, and then&lt;br /&gt;
*optionally disconnect the keyboard, &lt;br /&gt;
*switch off monitor or TV attached to your Pi, &lt;br /&gt;
*Just ensure you leave Pi on so that terminal session continues running.&lt;br /&gt;
&lt;br /&gt;
== A very quick introduction to Linux ==&lt;br /&gt;
&lt;br /&gt;
This article is not the place to teach you Linux, you can find books and on-line articles for yourself, but I list here enough for you to understand the instructions used elsewhere in this article.&lt;br /&gt;
&lt;br /&gt;
If you have a Raspberry Pi with a monitor attached, you will see a raspberry icon that you can click to get access to many features including shutdown options.&lt;br /&gt;
&lt;br /&gt;
=== sudo ===&lt;br /&gt;
&lt;br /&gt;
Almost all instructions, given in this article, start with a &amp;quot;sudo&amp;quot;, it basically gives administrative rights to whatever follows, and therefore allows a standard Pi user to do tasks that otherwise only work for the root user.  You use it as a prefix to almost every command you type in terminal mode.  There are 3 system commands that in terminal mode will only ever work with this prefix (although if you have installed the version of the Raspberry Pi Operating System that supports a graphical user interface you can also select these actions from a menu):&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;sudo halt&#039;&#039;&#039; = stops any cpu functions, but leaves Pi running; used when you have reached the end of commands you want to do for now&lt;br /&gt;
*&#039;&#039;&#039;sudo poweroff&#039;&#039;&#039; = makes pi do a tidy shutdown and turn off its power; used when you will not be using your Pi for a while&lt;br /&gt;
*&#039;&#039;&#039;sudo reboot&#039;&#039;&#039; (or &amp;quot;sudo reboot -verbose&amp;quot; for diagnostic output during shutdown and reboot) = makes your Pi close down and then reboot; used when you change settings, and after you install new software, to ensure Pi starts with all applications running using the latest settings and latest already installed software&lt;br /&gt;
&lt;br /&gt;
=== ~ and / ===&lt;br /&gt;
&lt;br /&gt;
The tilde symbol &#039;&#039;&#039;~&#039;&#039;&#039; denotes the home directory for the current user.  Sub-directories within the current user&#039;s folder can be identified by &#039;&#039;&#039;~/documents&#039;&#039;&#039; or similar notation. To reference a folder in root or any other area, the prefix is always &#039;&#039;&#039;/&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To see what files and folders are in the current directory, type &amp;lt;tt&amp;gt;dir&amp;lt;/tt&amp;gt; for just names or &amp;lt;tt&amp;gt;ls&amp;lt;/tt&amp;gt; for details.&lt;br /&gt;
&lt;br /&gt;
To make a new folder in the current directory, type &amp;lt;tt&amp;gt;sudo mkdir folder_name&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
=== chmod ===&lt;br /&gt;
&lt;br /&gt;
When you are attempting any of the actions listed in this article that involve reading, creating, editing, or moving, files; you might see an error message generally because of a lack of write permissions on an existing file or folder.   Whilst &amp;lt;tt&amp;gt;rm filename&amp;lt;/tt&amp;gt; will remove a file even if it is write protected, for nano you need to change the file permissions with &amp;lt;tt&amp;gt;sudo chmod -R ugo+rw ~/CumulusMX&amp;lt;/tt&amp;gt; for full access to all files in your Cumulus installation (see the syntax below if you want to restrict access).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;chmod&#039;&#039;&#039; command to modify permissions&lt;br /&gt;
* the &#039;&#039;&#039;-R&#039;&#039;&#039; indicates recursive action (i.e. including not just the named folder, but all files within it and all sub-folders, and all files within sub-folders)&lt;br /&gt;
*letters indicating whose permission is being modified&lt;br /&gt;
** &#039;&#039;&#039;u&#039;&#039;&#039; = Owning user (sometimes the owner is the user root, sometimes the owner is the user Pi, for our web pages later we change ownership)&lt;br /&gt;
** &#039;&#039;&#039;g&#039;&#039;&#039; = Group (by default the owning user is also a group, but a group can be defined if you want to give multiple users (with different passwords) the same rights of access)&lt;br /&gt;
** &#039;&#039;&#039;o&#039;&#039;&#039; = Other users (write permission here is needed if for example you are using FTP to move a file from a PC to your Pi, or vice versa)&lt;br /&gt;
* sign for add or remove permissions&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; = add permission&lt;br /&gt;
* &#039;&#039;&#039;-&#039;&#039;&#039; = remove permission&lt;br /&gt;
*letters indicating what permission is being changed&lt;br /&gt;
** &#039;&#039;&#039;r&#039;&#039;&#039; = read [4]&lt;br /&gt;
** &#039;&#039;&#039;w&#039;&#039;&#039; = write [2]&lt;br /&gt;
** &#039;&#039;&#039;x&#039;&#039;&#039; = execute [1]&lt;br /&gt;
&lt;br /&gt;
Note that as an alternative shorter syntax you can use numbers e.g. &#039;&#039;&#039;666&#039;&#039;&#039; is equivalent to &#039;&#039;&#039;ugo+rw&#039;&#039;&#039;. The first digit in the number relates to &#039;&#039;u&#039;&#039;, the second to &#039;&#039;g&#039;&#039; and the last to &#039;&#039;o&#039;&#039;. The values in [] brackets in list of permissions above are added to derive each digit.  So if you are reading the Cumulus support forum and you see a reference to permissions which includes a string of 3 digits, now you can understand what is meant.&lt;br /&gt;
&lt;br /&gt;
=== nano ===&lt;br /&gt;
&lt;br /&gt;
There are various text editors available on a Pi, &#039;&#039;&#039;nano&#039;&#039;&#039; is a simple one. &lt;br /&gt;
&lt;br /&gt;
Like other text editors this can create a file when a file does not exist and edit (subject to file permissions) an existing file. &lt;br /&gt;
&lt;br /&gt;
Use prefix of &#039;sudo&#039; to give you access to any file, &#039;&#039;&#039;sudo&#039;&#039;&#039; does not change the actual file permissions, so you might find you can read a file, but not save it after you have done your edit.  &lt;br /&gt;
&lt;br /&gt;
When in nano you select to write out to a file, it allows you to change the file name shown. If you choose to save as another file, you will be asked if the new name is correct (again type &#039;&#039;&#039;Y&#039;&#039;&#039; to continue saving).  &lt;br /&gt;
&lt;br /&gt;
Do remember that file names are case sensitive, and when you open an existing file for editing look in case &amp;quot;new file&amp;quot; message appears because you have made a typo in the path/file name.&lt;br /&gt;
&lt;br /&gt;
The full syntax is &amp;lt;tt&amp;gt;sudo nano -B Path_file_name&amp;lt;/tt&amp;gt; where the &#039;&#039;&#039;-B&#039;&#039;&#039; means it will create a backup of how the file was before (this can be enabled while in the editor by pressing the control key down and typing B). Alternatively use &#039;&#039;&#039;-C&#039;&#039;&#039; which stores each version in a back-up directory.  If you want to edit from a particular line and column you can use &#039;&#039;&#039;+line.column&#039;&#039;&#039;, and also optionally use &#039;&#039;&#039;-l&#039;&#039;&#039; (lower-case &amp;quot;L&amp;quot;) to display line numbers which might be useful when trying to correct a problem with a log file like [[dayfile.txt]].  If you don&#039;t specify a file name, then nano will create a new file and you will need to specify where to save it before exit.&lt;br /&gt;
&lt;br /&gt;
You will probably find it useful to type &amp;lt;tt&amp;gt;sudo nano /etc/nanorc&amp;lt;/tt&amp;gt; as this puts you into the configuration file for nano where you can set back-up, line-numbering, and other options&lt;br /&gt;
&lt;br /&gt;
After typing the nano command you need to specify a filename (it might include a path, see earlier sub-section for use of &#039;&#039;&#039;/&#039;&#039;&#039; and &#039;&#039;&#039;~&#039;&#039;&#039;) and there are examples later in this article, but if you decide to &#039;&#039;host a web site on your Pi&#039;&#039; then you might want to edit its home page with (.html or .php) name like &amp;lt;tt&amp;gt;sudo nano /var/www/html/index.php&amp;lt;/tt&amp;gt;.  After you have made an alteration to the current contents of the file, various options are shown at the bottom. Here are two key ones:&lt;br /&gt;
*First is &#039;&#039;&#039;^O&#039;&#039;&#039; which is used to save the file whilst staying in the editor, to do this press the control key down and type O. Next it shows the current file name, if you press &#039;&#039;&#039;Enter&#039;&#039;&#039; then that file will be overwritten.&lt;br /&gt;
*Another is &#039;&#039;&#039;^X&#039;&#039;&#039; which means if you press the control key down and type X you get the exit dialogue. If you have not made any edits, or have already saved the file, this just exits the editor. If you have not used control and O to save the file, it asks whether you want to save the edited file (type &#039;&#039;&#039;Y&#039;&#039;&#039;), typing just the Y key lets save continue (any other key stroke exits without saving), then it shows the current file name, if you press &#039;&#039;&#039;Enter&#039;&#039;&#039; then that file will be overwritten.&lt;br /&gt;
&lt;br /&gt;
=== install ===&lt;br /&gt;
&lt;br /&gt;
This is used for installing packages, you will often see it used with a parameter &#039;&#039;&#039;-y&#039;&#039;&#039;; as without that parameter you have to type &#039;&#039;&#039;Y&#039;&#039;&#039; to continue at each step of an install.&lt;br /&gt;
&lt;br /&gt;
It is important to mention here that the version of packages installed may well be obsolete, this install is finding versions from a Raspberian repository, more recent versions may be available from the providers of each package. To keep this article simple, I accept the Operating System that is installed by NOOBS, even if it is not the latest available from the Raspberian web site, I accept the versions of Mono, Apache, PHP, MariaDB, and others, that are found at the time you issue the install command. The update and upgrade command that I use in multiple places in this article is still only finding the versions available in the repository, and is included just in case the repository is being updated after any install finishes.&lt;br /&gt;
&lt;br /&gt;
If you have more skill than the level of the person at which this article is aimed at, then you should know how to install the latest version from the appropriate web sites.&lt;br /&gt;
&lt;br /&gt;
=== removing an unwanted file ===&lt;br /&gt;
&lt;br /&gt;
You can remove a file or a folder with various commands, including &amp;lt;tt&amp;gt;sudo rm filename&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
I have created a section here, in case anyone wants to add any more instructions. Please feel free to rename it, or indeed add any clarification anywhere in this article.&lt;br /&gt;
&lt;br /&gt;
Meanwhile, look at either [https://raspberrytips.com/raspberry-pi-commands/ this web page] or [https://www.ubuntupit.com/useful-raspberry-pi-commands/ this one] for more commands.&lt;br /&gt;
&lt;br /&gt;
=Optional actions=&lt;br /&gt;
&lt;br /&gt;
An alternative way to load Cumulus MX onto a Raspberry Pi is by using docker (a package installation), it may not be kept up to date but there is such a package at [https://github.com/magimat/rpi-cumulusmx rpi-cumulusmx] and a very old one at [https://github.com/Apollorion/CumulusMX-Docker CumulusMX-Docker].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Any novice can stop reading now, as preceding sections have covered all you need to do to use a Raspberry Pi (or other Unix-based device) to run MX.&lt;br /&gt;
&lt;br /&gt;
However, some people want to do more, so various options are covered in the remainder of this article. If you are a novice, my advice is don&#039;t experiment with what is mentioned after this until you are happy that all you have done up to now works.  The rest of this article does get more technical, so it might be harder to understand and harder to implement. With that warning in mind, I must add that the remaining sections cover a number of items and it is very likely that some of them could be useful to you.&lt;br /&gt;
&lt;br /&gt;
There are lots of sub-sections, so you can skip over those that do not interest you, while carefully reading the ones that could benefit you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Standard action before adding any extra packages ==&lt;br /&gt;
&lt;br /&gt;
*We run &amp;lt;tt&amp;gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&amp;lt;/tt&amp;gt; to ensure all packages are up to date before we attempt to add another package. &lt;br /&gt;
*I remind you here that this does not update everything on your computer to the latest versions available for a Pi, that requires a different (more risky) command not taught here.  &lt;br /&gt;
*Instead, the instruction quoted above just updates your Pi to a consistent state; based on what is in the repository you are already using.&lt;br /&gt;
&lt;br /&gt;
This action is not repeated below, but potentially applies to all options below.&lt;br /&gt;
&lt;br /&gt;
==Databases built into Cumulus MX==&lt;br /&gt;
&lt;br /&gt;
You do not need to know what is in these databases to use MX.&lt;br /&gt;
&lt;br /&gt;
Cumulus MX includes two SQLite databases;&lt;br /&gt;
#The first database was added by Steve Loft, but he never documented what it is used for (see [[Cumulusmx.db]]) and in the support forum when someone asked, nobody was able to answer.&lt;br /&gt;
#*If you do find out what the first database is used for, please update the Wiki article on it!&lt;br /&gt;
#The second database is the Weather Diary [[Weather Diary|documented here]] added by Mark Crossley. Also see [https://cumulus.hosiene.co.uk/viewtopic.php?f=37&amp;amp;t=17919 in the support forum] for a topic comparing the differences between Cumulus 1 and Cumulus MX weather diaries. &lt;br /&gt;
#* The [[MX Administrative Interface|Admin Interface]] provides a page to view, or edit, a single date in the weather diary. You can install another tool that edits SQLite databases if you want (see next section).&lt;br /&gt;
&lt;br /&gt;
===Editing the Weather Diary===&lt;br /&gt;
&lt;br /&gt;
You can install phpLiteAdmin (the significant part of that name is in the middle) to read (you can display the whole table very easily) and edit (via a friendly GUI) either, or both, of those SQLite databases. &lt;br /&gt;
&lt;br /&gt;
Install it using &amp;lt;tt&amp;gt;sudo apt install phpliteadmin&amp;lt;/tt&amp;gt;. You will need to follow the instructions in &#039;&#039;&#039;/usr/share/phpliteadmin/phpliteadmin.php&#039;&#039;&#039; to change the password, and to define the path to the database you want to read, as both databases have the wrong extension to be found automatically. You may need to change file permissions.&lt;br /&gt;
&lt;br /&gt;
I find the admin interface is not reliable for updating the weather diary; it often fails to store an update, without giving any error either on the editing screen or in the MXDiags file. So, I prefer to use phpliteadmin for making changes to the Weather Diary database now. I can use it from a browser on any of my devices.&lt;br /&gt;
&lt;br /&gt;
== Adding a web server and a database server ==&lt;br /&gt;
&lt;br /&gt;
This is an option, and may not be useful to you, but is described here in case it is something that you want to do. &lt;br /&gt;
&lt;br /&gt;
This option is not needed if your MX simply updates to an external web service (several are listed in the options in the admin interface), so you do not use the web templates supplied with MX (nor any alternative web pages created by you or a third party).&lt;br /&gt;
&lt;br /&gt;
This option is not needed if you have subscribed to a commercial web server (and optionally database server).&lt;br /&gt;
&lt;br /&gt;
Now you have a Raspberry Pi (or another device than can be left running all the time without consuming a lot of electricity), you &#039;&#039;might&#039;&#039; want to add a web server and database server so you can make use of the web templates that Cumulus MX provides, and its ability to update database tables. &lt;br /&gt;
&lt;br /&gt;
You might want this option if you are creating your own web pages, and want to try them out without exposure to the public over the internet.&lt;br /&gt;
&lt;br /&gt;
You might select this option to save the subscription costs of a commercial web server (and optionally database server).&lt;br /&gt;
&lt;br /&gt;
=== Install Apache 2 (or another web server) ===&lt;br /&gt;
&lt;br /&gt;
I will mention 3 possible web servers:&lt;br /&gt;
#You might choose &#039;&#039;&#039;Apache 2&#039;&#039;&#039; as it is probably the most comprehensive, so if you have enough space on your Pi, install it using &amp;lt;tt&amp;gt;sudo apt install apache2 -y&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
#*You might want to add Fast CGI (if you don&#039;t know what that is, skip this) and therefore add &amp;lt;tt&amp;gt;sudo apt-get install libapache2-mod-fcgid&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#You might choose &#039;&#039;&#039;nginx&#039;&#039;&#039;, as it is quite popular for small computers like the Pi, install that web server with &amp;lt;tt&amp;gt;sudo apt-get install nginx -y&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#You might choose &#039;&#039;&#039;lighttpd&#039;&#039;&#039;, as it is designed to use as little space on your Pi as possible, install it with &amp;lt;tt&amp;gt;sudo apt-get install lighttpd -y&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Install PHP Hypertext Pre-processor ===&lt;br /&gt;
&lt;br /&gt;
*PHP is not the only script language available, but it is quite comprehensive &lt;br /&gt;
**being able to be used either in a fairly simple way by non-technical people &lt;br /&gt;
**or in an object-oriented way for those more technical to achieve success with more complex scripts.  &lt;br /&gt;
*The simplest instruction to install it is &amp;lt;tt&amp;gt;sudo apt install php -y&amp;lt;/tt&amp;gt;, which version you get depends on your Pi and its operating system. &lt;br /&gt;
*To check which PHP modules have been installed by the above command, type &amp;lt;tt&amp;gt;php -m&amp;lt;/tt&amp;gt;. &lt;br /&gt;
*If you later want to use a database (and a tool like PhpMyAdmin), then your php modules loaded must include at least &#039;&#039;&#039;mysqli&#039;&#039;&#039; and &#039;&#039;&#039;mbstring&#039;&#039;&#039;. &lt;br /&gt;
*I will explain how to find the .ini files later, but unwanted modules can be commented out in your .ini file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alternatively&#039;&#039;&#039;, you can install particular php modules, or a particular PHP version, by selecting components from a list. To do this type something like &amp;lt;tt&amp;gt;sudo apt install php7-fpm php7-cgi php7-cli php7-common php7.3-mbstring php7.3-mysql php7.3-curl php7.3-gd php7.3-zip -y&amp;lt;/tt&amp;gt;. Only use this approach to force a particular version (but you may find that is not available), or if you are short of space, and you are only going to use a minority of the php features available in the full set of modules. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To test that php is installed, type &amp;lt;tt&amp;gt;php -v&amp;lt;/tt&amp;gt; into terminal, and you will see the exact version that has been installed, a confirmation that it offers command line interface (cli), and a copyright notice.&lt;br /&gt;
&lt;br /&gt;
===Creating a Home web page on your web server===&lt;br /&gt;
&lt;br /&gt;
You may wish to create a index.php web page at /var/www/html which is the web server root for browsing, or of course you may wish to copy or FTP here all your existing web pages. To view a php web page, go into a browser and type in a url with the same IPv4 address as you use for the admin interface, omit the port (:8998) and instead type in your web page name (e.g. //192.168.1.&#039;&#039;&#039;xy&#039;&#039;&#039;/index.php, where you need to determine digits that replace &#039;&#039;&#039;xy&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
===Finding your PHP configuration file===&lt;br /&gt;
&lt;br /&gt;
For sake of simplicity in this article, from now on I will assume the web server you installed is &amp;quot;apache2&amp;quot;, change that segment (in the paths quoted below here), if you installed a different web server.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;web server&#039;&#039; main &#039;&#039;&#039;php.ini&#039;&#039;&#039; is found at &#039;&#039;/etc/php/7.n/apache2/php.ini&#039;&#039; (where &#039;n&#039; depends on your Raspberry OS version and therefore which PHP version was installed, that was found out in last sub-section). &lt;br /&gt;
&lt;br /&gt;
You may need to edit this file for example to specify where your include files are stored (if not in same folder as script with require/include). Replace &amp;quot;apache2&amp;quot; by &amp;quot;cli&amp;quot; in the path for the &#039;&#039;batch&#039;&#039; &#039;&#039;&#039;php.ini&#039;&#039;&#039; file that you may also need to edit.&lt;br /&gt;
&lt;br /&gt;
To run a php script in batch, type &amp;lt;tt&amp;gt;php - f &amp;lt;file_name&amp;gt;&amp;lt;/tt&amp;gt;. You can redirect the output by adding a greater than symbol and the destination file (i.e. &amp;gt; log_file) on the same terminal line.  &lt;br /&gt;
&lt;br /&gt;
If you want the MX external commands to run a PHP script for you, use something like &amp;quot;sh&amp;quot; as the program to run (i.e. run shell script); and in the parameters something like&lt;br /&gt;
&#039;&#039;&#039;/home/pi/CumulusMX/MXutils/autoEOD.sh&#039;&#039;&#039; will run a script &amp;quot;autoEOD.sh&amp;quot; you have added to the &amp;quot;MXutils&amp;quot; folder. In that script, you put something like (assuming you have added a folder &#039;batch&#039; with a subfolder &#039;log&#039;):&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
# This MX batch command file is initiated automatically by Cumulus MX software during last stage of processing the end of a meteorological day&lt;br /&gt;
echo &amp;quot;It stores feedback in log file CumulusMXDailyBatch (file name ends with day of month)&amp;quot;&lt;br /&gt;
sudo php -f the_path_and_filename_goes_here.php &amp;gt; /home/pi/CumulusMX/batch/log/DailyBatch_Day$(date +%d).log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install Maria database ===&lt;br /&gt;
&lt;br /&gt;
MySQL database software is controlled by Oracle and not made available for inclusion in Raspberry Pi repository.&lt;br /&gt;
&lt;br /&gt;
Maria is an alternative that has largely similar command syntax so is likely to work with code (like MX) designed to work with MySQL. Since the MX developer (Mark Crossley) actually uses Maria DB, we can have plenty of confidence it is suitable. &lt;br /&gt;
&lt;br /&gt;
To install this database server, we type &amp;lt;tt&amp;gt;sudo apt install mariadb-server php-mysql -y&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Our database files will be stored at &#039;&#039;&#039;/var/lib/mysql&#039;&#039;&#039; by default. Our MariaDB configuration is stored at &#039;&#039;&#039;/etc/mysql/mariadb.conf.d/50-server.cnf&#039;&#039;&#039;, and it is the &#039;&#039;datadir=&#039;&#039; entry that controls where the database files are stored.&lt;br /&gt;
&lt;br /&gt;
=== Making your database secure ===&lt;br /&gt;
&lt;br /&gt;
We need to assign passwords to control access to the database by typing into terminal &amp;lt;tt&amp;gt;sudo mysql_secure_installation&amp;lt;/tt&amp;gt;.  That brings up a screen:&lt;br /&gt;
# where we are asked to type current password for the root (as no password has yet been set, simply press Enter),&lt;br /&gt;
# next type &#039;&#039;&#039;Y&#039;&#039;&#039; to signify we are going to set a new password for &#039;&#039;&#039;root&#039;&#039;&#039;,&lt;br /&gt;
# next type in a new password that you will not forget,&lt;br /&gt;
# next as explained on the screen we are going to say whether users must select a user name as well as a password, type &#039;&#039;&#039;Y&#039;&#039;&#039; to &#039;&#039;Remove anonymous users&#039;&#039;&lt;br /&gt;
# next we have to decide whether we will only be logging into the database on our Pi (using Localhost) or we might be logging in remotely; type Y or N respectively, but if you choose N remember someone other than you might guess there is a root user and might guess the password you set,&lt;br /&gt;
# next we have another option of whether to retain or delete a test database, answer N or Y respectively, I would keep the test database for now as you can play with it and then remove it later,&lt;br /&gt;
# finally you type in another Y as that will &#039;&#039;&#039;Reload the privilege tables&#039;&#039;&#039; and ensure all is set up for your access to the database later.&lt;br /&gt;
&lt;br /&gt;
The message, when the process successfully completes, is &amp;quot;Thanks for using MariDB&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Installing Adminer, or PhpMyAdmin ===&lt;br /&gt;
&lt;br /&gt;
ExportMySQL.exe and CumulusMX.exe (see [[Cumulus_MX#Executables]] for details) both create SQL for updating tables in a MySQL database, such as the one our MariaDB software package we have installed can create.&lt;br /&gt;
&lt;br /&gt;
However, there is nothing in the MX distribution that lets us back up and manipulate (e.g. delete rows with errors, or correct rogue numbers in a column) tables in this database. This option is about installing a package to do the tasks that go with operating a database.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PhpMyAdmin&#039;&#039;&#039; is one tool that can be used to manipulate your MySQL like database (that is the significance of the &amp;quot;My&amp;quot; bit in the middle of the tools&#039;s name).&lt;br /&gt;
&lt;br /&gt;
You may like &#039;&#039;&#039;PhpMyAdmin&#039;&#039;&#039; as this offers:&lt;br /&gt;
* a graphical approach (you see a table on screen and navigate to the row or cell you want to work on)&lt;br /&gt;
* a SQL approach (you can try out any SQL here, before adding it to a script that you might use in a web page)&lt;br /&gt;
* a selection approach (you select a database, then select a table, then select an action)&lt;br /&gt;
&lt;br /&gt;
#Start the install with &amp;lt;tt&amp;gt;sudo apt install phpmyadmin -y&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
#The PhpMyAdmin installer will ask some questions. &lt;br /&gt;
#Use your tab key to select &amp;lt;Yes&amp;gt; when it asks whether you want to configure with &#039;&#039;&#039;dbconfig-common&#039;&#039;&#039;. &lt;br /&gt;
#The version of phpmyadmin in the repository is not compatible with PHP7.2 and above, so follow the instructions at https://devanswers.co/manually-upgrade-phpmyadmin/ to upgrade it to latest phpmyadmin (you might substitute &amp;quot;english&amp;quot; for &amp;quot;all-languages&amp;quot; if you only need the one language).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may prefer to install a different tool, perhaps &#039;&#039;&#039;adminer&#039;&#039;&#039; that works using a drill down approach. A drill down approach is when you select the database, then select the table, then select the row, then select the column, then select the action.  This logical step by step approach is a popular approach, but does not suit everyone. &lt;br /&gt;
&lt;br /&gt;
Install this drill down package with &amp;lt;tt&amp;gt;sudo apt install adminer&amp;lt;/tt&amp;gt; (I leave you to work out the commands needed after that).&lt;br /&gt;
&lt;br /&gt;
===Getting web and database servers ready for use===&lt;br /&gt;
&lt;br /&gt;
We need to create a user for PhpMyAdmin (or adMiner or whatever) to access our database and another for Cumulus to use to access the database tables. At the moment our database access has the single root@localhost user we created when we installed MariaDB.  The initial password was set then, and we need to use it to get access to MariDB monitor where we can insert some SQL commands to create these two users. &lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin on first start up will ask for username (here I choose &amp;quot;admin&amp;quot;) and password, thereafter it will use same log-in (by default you see log-in screen each time you restart or if it is left idle for a long time), let us create a user called &#039;admin&#039; for it. &lt;br /&gt;
&lt;br /&gt;
The database name  (here I choose &amp;quot;cumulus&amp;quot; for the data base name), user name (here I choose &amp;quot;weather&amp;quot; for the user name), and password, must all match those set in MX using the [[MX_Administrative_Interface#MySQL_settings|MySQL_settings]] in the admin interface. You could of course use PhpMyAdmin  (or AdMiner) to create additional user names, and to create the database, but I assume all is done in the following bit of SQL.  Remember, the Windows operating system is not case sensitive, but all Linux based operating systems are case sensitive (so whatever pattern of capitals and lowercase you choose must be used every time.  Also all names must start with a letter, can contain only letters or digits (no punctuation), and must not be a reserved word (&amp;quot;password&amp;quot; is a reserved word, so you cannot use that for a password, nor for a column name).&lt;br /&gt;
&lt;br /&gt;
Obviously, these names might not be what you use, but you can amend commands below accordingly. For each line with SQL, it must end with a semicolon (;) as shown.  After you press &amp;quot;Enter&amp;quot; key you will get a response saying &amp;quot;OK&amp;quot; if you have remembered the semi-colon. You can actually use  &amp;quot;\G&amp;quot; or &amp;quot;\g&amp;quot; instead of a semi-colon, but here we will keep it simple and stick to semi-colon.&lt;br /&gt;
&lt;br /&gt;
The SQL lines have a prompt of a greater than symbol (&amp;gt;) while the command lines have a prompt showing current path. Note that &amp;quot;identified by&amp;quot; is followed by a password enclosed in single quotes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mysql --user=root --password=InitialPassword&lt;br /&gt;
create user admin@localhost identified by &#039;PhpMyAdminPassword&#039;;&lt;br /&gt;
create user weather@localhost identified by &#039;MXPassword&#039;;&lt;br /&gt;
grant all privileges on *.* to admin@localhost;&lt;br /&gt;
grant all privileges on *.* to weather@localhost;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
create database cumulus;&lt;br /&gt;
exit;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As I type this, Cumulus MX has no exception handling if the username and password defined in the settings do not exist in the database, therefore in this situation it will crash out (with message press Enter to close).&lt;br /&gt;
&lt;br /&gt;
=== Commands to ensure PhpMyAdmin will work ===&lt;br /&gt;
&lt;br /&gt;
The following sequence of commands will&lt;br /&gt;
* add the mysqli module to our php install, &lt;br /&gt;
*will restart apache, &lt;br /&gt;
*will create a symbolic link for the phpadmin installation to the server web root so it can be seen (and used) in our browser, &lt;br /&gt;
*will give the standard user (pi) ownership of the database files and the web pages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo phpenmod mysqli&lt;br /&gt;
sudo service apache2 restart&lt;br /&gt;
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin&lt;br /&gt;
sudo  chown -R pi:www-data /var/www/html/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Viewing web pages on our new web server===&lt;br /&gt;
&lt;br /&gt;
You can view any index.php or PHPMyAdmin web page in your browser by prefixing the address with your Pi IPv4 address e.g. a URL like  &#039;&#039;&#039;http://192.168.1.xyz/phpmyadmin&#039;&#039;&#039; where &#039;&#039;xyz&#039;&#039; is 2 or 3 digits you look up as mentioned before where FTP was described.  If your Pi has both Ethernet and wireless connection, there will be two different values of &#039;&#039;xyz&#039;&#039; for you to choose one from.  On first run of PhpMyAdmin, as already mentioned, you will see a &#039;&#039;&#039;PHP MyAdmin log-on page&#039;&#039;&#039; where you type username and password we have just set up.&lt;br /&gt;
&lt;br /&gt;
===Populating your database tables on your Pi===&lt;br /&gt;
&lt;br /&gt;
Cumulus MX has functionality to update database tables at one of 3 intervals:&lt;br /&gt;
#real-time&lt;br /&gt;
#standard interval&lt;br /&gt;
#end of day&lt;br /&gt;
&lt;br /&gt;
The database tables can use the column names in the schemas pre-defined by Cumulus MX or in a custom schema (where you specify the column names).  The settings are all in [[MX_Administrative_Interface#MySQL_settings]], so read that section to find out more.&lt;br /&gt;
&lt;br /&gt;
You might have started using MX before you set up your database.  There is a option in that part of the admin interface to create database tables (as required) for each of the 3 updating intervals.  For example, the default name for the table updated at the standard interval is &amp;quot;monthly&amp;quot;, but you could give it a name of &amp;quot;standard&amp;quot; or whatever you like.&lt;br /&gt;
&lt;br /&gt;
The MX release distribution includes another executable.  Type &amp;lt;tt&amp;gt;cd CumulusMX &amp;amp;&amp;amp; sudo mono ExportMySQL.exe monthly&amp;lt;/tt&amp;gt; to run the executable. The first parameter is &amp;quot;monthly&amp;quot; even if the table has a different name. &lt;br /&gt;
#if the table name is defined in the admin interface, and the table already exists in the database with the correct columns defined, then the executable will use that table.&lt;br /&gt;
#There is an optional second parameter that specifies the log file name to read.&lt;br /&gt;
#*if the second parameter is not specified, this executable will look at every log file (in &amp;quot;data&amp;quot; folder and with file name that starts with month, then has &amp;quot;log.txt&amp;quot;), &lt;br /&gt;
# for each line in the log file the executable will try to insert a row in the database table&lt;br /&gt;
#*the SQL syntax used is &amp;quot;insert ignore&amp;quot;, so if the row for that log file line already exists in the table, it will skip onto next line of log file.&lt;br /&gt;
&lt;br /&gt;
Similar instructions apply for the end of day table, although as there is only one daily summary log file, there is no optional second parameter, just type &amp;lt;tt&amp;gt;cd CumulusMX &amp;amp;&amp;amp; sudo mono ExportMySQL.exe dayfile&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There is no way to use this executable for insert of past rows into the real-time table.&lt;br /&gt;
&lt;br /&gt;
If you have been running Cumulus on another device previously and already have database tables, the next section explains how you can create SQL to export your old database and use that SQL to populate the new table.&lt;br /&gt;
&lt;br /&gt;
===Transferring database tables to your Pi===  &lt;br /&gt;
&lt;br /&gt;
If you have been using Cumulus before (and already have a database) then you can use PhpMyAdmin on your old device to &#039;&#039;&#039;export&#039;&#039;&#039; out all the &#039;&#039;&#039;Cumulus tables as SQL&#039;&#039;&#039; in a zip file, FTP that zip file across to your Pi, then use PhpMyAdmin on your Pi to &#039;&#039;&#039;import&#039;&#039;&#039; that zip file.  &lt;br /&gt;
&lt;br /&gt;
Providing you selected the right options for what SQL you created in your export, the import will contain SQL to create the tables and to insert all the rows into each Cumulus table on your Pi. Please note that there is a limit of around 1000 rows that can be imported in one action, so for your bigger tables, you will only create the table once, but you will do several &#039;&#039;&#039;Replace&#039;&#039;&#039; row actions (export from old device, then import to Pi) each transferring just one thousand rows, until the whole table is on the Pi. You may prefer to use &amp;quot;ExportMySQL.exe&amp;quot; as described in previous section to recreate your bigger tables from the Cumulus log files.&lt;br /&gt;
&lt;br /&gt;
You might want to also &#039;&#039;&#039;export/import the tables in the PhpMyAdmin database&#039;&#039;&#039; (as they contain your preferences for each of your tables) in a separate zip, although these might need some extra transformations, as they are specific to a particular version of the database server (and the old database server version may not match the MariaDB version on your Pi). Some PhpMyAdmin tables do change for different versions of the tool, so that too may make export/import of its tables more complicated.&lt;br /&gt;
&lt;br /&gt;
=== Restarting Web Server ===&lt;br /&gt;
&lt;br /&gt;
After all these installs, we need to restart Apache (so it loads the PHP and MariaDB), by typing &amp;lt;tt&amp;gt;sudo service apache2 restart&amp;lt;/tt&amp;gt; or  (if we just want the Apache configuration reloaded) by typing &amp;lt;tt&amp;gt;sudo systemctl reload apache2&amp;lt;/tt&amp;gt;.  Similar commands apply for other web servers.&lt;br /&gt;
&lt;br /&gt;
We will need to restart Apache (or whichever web server we installed) any time we change our php.ini files, database passwords, and anything else that is checked when the web server starts.&lt;br /&gt;
&lt;br /&gt;
== Operating your Raspberry Pi in headless mode ==&lt;br /&gt;
&lt;br /&gt;
The terminology &amp;quot;headless&amp;quot; means using another device to send commands to a Pi via a wired or wireless network, instead of connecting a keyboard and monitor (or TV) directly to the Pi so you make all selections directly on it.&lt;br /&gt;
&lt;br /&gt;
For a novice, the easiest way to set up your Pi (as described above) requires (at least temporary) a keyboard and a monitor (can be a TV) to be connected to it. You might also want to connect a mouse. Depending on the Raspberry Pi you bought, and whether you bought a keyboard (or can borrow one from any PC you have), the ease of making these connections will vary. Once your Pi is set up, and you have started MX running, you can disconnect these peripherals, and leave your Pi running.&lt;br /&gt;
&lt;br /&gt;
The options described in the rest of this article cover all aspects of using a PC to do actions on your Pi, including how to change some settings on your Pi without ever connecting a keyboard and monitor to the Pi. For a novice, there are lots of opportunities to make errors in the following options, so remember the cricketer who said &amp;quot;If at first you do not succeed, try and try again, if you continue to fail, give up&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Remote access ===&lt;br /&gt;
&lt;br /&gt;
There are various different ways that another device can access the Pi over networks. The most popular lets a Terminal mode on your other device connect to your Raspberry Pi using Secure Shell Home, and the commands you type in on your other device are just the same ones you would type directly into the Raspberry Pi terminal mode. The responses you get are also the same. What is likely to be different is &lt;br /&gt;
*any control sequences, &lt;br /&gt;
*any copy and paste operations, &lt;br /&gt;
*and any other actions that are specific to the terminal mode on the other device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use the browser on your PC to connect to the web server created by the MX engine to run the admin interface (all that needs is that the Pi and the PC are both connected to your hub or router, so they are on the same local network):&lt;br /&gt;
* to change settings &lt;br /&gt;
*or to look at the web pages provided in that interface. &lt;br /&gt;
&lt;br /&gt;
Your PC can be used (as well as your Pi) to look at any web pages updated by MX (all that needs is your device to be able to connect to whatever web server runs your web pages).&lt;br /&gt;
&lt;br /&gt;
====Ways of using PC to do what can be done on a Pi====&lt;br /&gt;
&lt;br /&gt;
On your Pi, there are various applications that you can run with graphical interfaces, these let you achieve what you want by on screen selections, without having to learn what Linux commands to type in. You might wish to use these when you are operating your Pi in a headless state (without keyboard or monitor), so you want to see these graphical interfaces on your PC. See [https://thepihut.com/blogs/raspberry-pi-tutorials/remotely-accessing-the-raspberry-pi-via-rdp-gui-mode this tutorial] for one way to do this. Although this article does not cover such options that let you see graphical user interfaces, these let your other device see selection screens, browsing screens, and similar, just as you would see them if you had a monitor connected to your Pi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An alternative way to work on your Pi is its its terminal mode. This lets you use &#039;&#039;&#039;sudo&#039;&#039;&#039; to overcome the fact that the default user does not have &#039;&#039;&#039;root&#039;&#039;&#039; rights, and can therefore allow you to achieve tasks where a graphical interface fails because of the ownership of the part of the file structure where your action is taking place. The commands you type into a terminal screen on a Pi can also be typed into a terminal screen on your PC, and you will see the same responses. For this to work, you need to switch Secure Shell Home (SSH) on as that is what controls access over a network. This article explains most aspects of SSH in the next few sub-sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== What is Secure Shell Home?====&lt;br /&gt;
&lt;br /&gt;
Secure Shell Home (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. If you have two devices (your Pi and another computer), SSH will allow the two devices to exchange commands and responses between a terminal and a computer over the wireless or Ethernet (or mixture) network that connects them.  &lt;br /&gt;
&lt;br /&gt;
You may be too young to remember when communication with a computer was often done (remotely) using a Teletype (or similar device) acting in terminal mode. Just 4 decades ago this would have been a familiar experience for anyone working with computers, now it may seem strange for you. &lt;br /&gt;
&lt;br /&gt;
It is possible you have remote connection from home to a computer at your work (although that probably uses a different protocol as the network is likely to be better secured as it passes over the internet).&lt;br /&gt;
&lt;br /&gt;
SSH is switched off by default on a standard Raspberry Pi set up. &lt;br /&gt;
&lt;br /&gt;
You can if you have a keyboard and screen attached to your Pi, go into the configuration screen it offers and switch SSH on. The easiest way is using the &#039;&#039;&#039;Raspi-config&#039;&#039;&#039; tool, either from the main menu (raspberry Pi icon inside a square) or in terminal mode with &#039;&#039;&#039;sudo raspi-config&#039;&#039;&#039; (choose option 5 = &#039;&#039;Interfacing Options&#039;&#039;, look for SSH).  This will enable you to later access your Pi from your PC and might be useful later on. While you are in the configuration tool choose option 1 = &#039;&#039;Change User Password&#039;&#039;, and set the password you will use for your SSH session; the default password  is &#039;&#039;&#039;raspberry&#039;&#039;&#039;, but you don&#039;t want to let hackers into your Pi, so you will choose something hard to guess. &lt;br /&gt;
&lt;br /&gt;
The next sub-section describes how you can switch SSH on during the first boot, by creating a file on the micro-SD card before you insert it into your Pi, the file is removed as part of the boot process, so this only works once.&lt;br /&gt;
&lt;br /&gt;
====Pre-configuring the Pi for headless operation====&lt;br /&gt;
&lt;br /&gt;
If you want to set up your Pi headless (without monitor, keyboard, mouse), then you must ensure SSH (which is off by default) is switched on as your Pi boots up.  Otherwise you have no access to do any setting up, and you cannot even close down the Pi tidily! The only way to achieve this, is by adding a file &#039;&#039;&#039;SSH&#039;&#039;&#039; to the boot partition before the micro-SD card is put into the Pi. If you don&#039;t do this you cannot get headless operation, and you will need to move a monitor or TV, mouse, and keyboard, across to the Pi.&lt;br /&gt;
&lt;br /&gt;
The file, you add to the boot partition (there is a second partition that may be invisible), must be named &amp;quot;SSH&amp;quot; with those three letters in capitals, but with no file extension. You can create the file with whatever text editor you have available. &lt;br /&gt;
*On a Windows PC, if you right click (while viewing the boot directory on the card) there is an option called &#039;&#039;&#039;New&#039;&#039;&#039;  and if you select &#039;&#039;a text file&#039;&#039; it will create an empty file with the extension &#039;&#039;&#039;.txt&#039;&#039;&#039;. (In windows there is an option to hide extensions which is on by default, so you may need to deselect this option [&#039;&#039;&#039;New&#039;&#039;&#039; menu -&amp;gt; &#039;&#039;Options&#039;&#039;] to see this extension).  On Windows you can open the file using Notepad to verify it is empty, if you gave accidentally created a file of another type like word processing it will be full of characters some of which do not display. Anyway, you must remove any extension from the file name so it is really just &#039;&#039;&#039;SSH&#039;&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
Type into the file &amp;lt;tt&amp;gt;touch ssh&amp;lt;/tt&amp;gt;, but nothing else, no empty lines, no end of line characters.&lt;br /&gt;
&lt;br /&gt;
When the card is inserted into your Pi, on boot this file will be removed and the SSH option will be enabled. The default password is &#039;&#039;&#039;raspberry&#039;&#039;&#039;, once you have successfully got SSH working. You should then use &#039;&#039;&#039;sudo raspi-config&#039;&#039;&#039; (choose option 1 = &#039;&#039;Change User Password&#039;&#039;, and set the new password you will use for your SSH session next time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====How to use SSH?====&lt;br /&gt;
&lt;br /&gt;
If you have a Windows PC, this will allow you to open a &#039;&#039;&#039;Command&#039;&#039;&#039; prompt, &#039;&#039;&#039;Power Shell&#039;&#039;&#039;, or &#039;&#039;&#039;Terminal&#039;&#039;&#039; window (the selection you have available depends on certain settings). &lt;br /&gt;
&lt;br /&gt;
If you have a Linux or Mac device, open &#039;&#039;&#039;Terminal&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Next, (assuming your Pi is running, and that your other device is on the same local network), type &amp;lt;tt&amp;gt;ssh pi@raspberrypi&amp;lt;/tt&amp;gt; to get access to default user in your Pi.  &lt;br /&gt;
&lt;br /&gt;
(As an alternative for Windows operating system, you can install PuTTY, this has the advantage that you can enter the connection settings into it, and configure various other options, and these are remembered, so might make it easier to use. &#039;&#039;&#039;PuTTY&#039;&#039;&#039; software (an SSH client for Windows) can be downloaded from &amp;lt;tt&amp;gt;https://www.putty.org/&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
When you are using a terminal, it is a sequential device, each line is either something you type in or something sent back in reply. The action that result from any key combinations depend on your terminal application, not just whatever you are running on your Pi.  Your mouse can&#039;t affect cursor location, but the mouse might be needed to select text, the left click might copy what is selected, and the right click might paste (what is in your PC&#039;s clipboard) at current cursor position.&lt;br /&gt;
&lt;br /&gt;
You can use SSH access from your PC:&lt;br /&gt;
* when you need to edit a file on your Pi, &lt;br /&gt;
*or do a file transfer between Pi and PC or vice versa. &lt;br /&gt;
&lt;br /&gt;
=== Running MX from your PC ===&lt;br /&gt;
&lt;br /&gt;
If you choose to use the simple &amp;lt;tt&amp;gt;sudo mono CumulusMX.exe&amp;lt;/tt&amp;gt; command in a terminal (or command window or Powershell) session on your PC, remember MX will detect if that session is ended and will shut down MX. This means if you want to keep MX running you need to keep your session on your PC running and you loose the advantage of saving electricity by running MX on a PI because your PC remains on.  &lt;br /&gt;
&lt;br /&gt;
As I type this a new release 3.8.0 is to allow MX to run as a service, and a future release is planned to change the associated script, so anything I write here might become obsolete, and the next sub-section gives you some links to the support forum about alternatives to the new feature.  Hopefully, someone will edit this article, when instructions have settled down and won&#039;t change on next release.  Basically, the ability to run MX as a service,  means that MX actually runs independent of the session that starts or stops the service; and therefore implies you can shut down your PC without stopping MX.  &lt;br /&gt;
&lt;br /&gt;
Hopefully someone will add notes to this article about the running as service option. I have not tried it, so I cannot add such notes.&lt;br /&gt;
&lt;br /&gt;
=== Older information about using a PC and a PI ===&lt;br /&gt;
&lt;br /&gt;
In the Cumulus Support forum, there are articles about a [https://cumulus.hosiene.co.uk/viewtopic.php?p=139779#p139779 stop/start routine], a [https://cumulus.hosiene.co.uk/viewtopic.php?p=141514#p141514 backup routine], and [https://cumulus.hosiene.co.uk/viewtopic.php?p=146028#p146028 how to run MX as a service]. I will let you hunt for and read the relevant topics, as you may find details in more than one place. This article currently avoids describing these to try to keep content simple.  Here is just a list of some alternatives to having to leave your terminal session running:&lt;br /&gt;
# Use &#039;&#039;&#039;start/stop routine&#039;&#039;&#039; (see earlier link), this effectively starts a separate session for MX to run in and leaves the standard terminal session free.&lt;br /&gt;
# Run MX as an &#039;&#039;&#039;init service&#039;&#039;&#039; (see the earlier post in the service link above), be aware that this is a new feature in the new release of MX 3.8.0, again this starts MX outside your terminal session&lt;br /&gt;
# Use &#039;&#039;&#039;Screen&#039;&#039;&#039; software to start up a separate session that you can log off from without MX stopping (see [https://cumulus.hosiene.co.uk/viewtopic.php?p=146203#p146203 how to run using screen]}&lt;br /&gt;
#  Run MX as a &#039;&#039;&#039;systemd service&#039;&#039;&#039; (see the more recent posts in the service link above), be aware that at time of typing this is planned to be incorporated in a future release but the MX developer has no knowledge in this area&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Headless Wireless Network set up===&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t connect a keyboard and monitor to your Raspberry Pi, you can&#039;t set up the wireless network configuration on your Pi using one of the provided configuration tools as described in the earlier wireless network sub-section. &lt;br /&gt;
&lt;br /&gt;
You can use the SSH approach described immediately above to access the &#039;&#039;&#039;Raspi-config&#039;&#039;&#039; tool and in that do the necessary configuration.  &lt;br /&gt;
&lt;br /&gt;
There is one further, complicated, way to set up the wireless configuration so that the wireless network will work when you first boot up your Raspberry Pi. If you have brought the Zero model, that does not allow Ethernet connection, you might decide to follow this complex approach that involves creating a text file in the boot partition of your micro-SD card, and store it in the boot directory on your micro-SD card with a file name &#039;&#039;&#039;wpa_supplicant.conf&#039;&#039;&#039; before you insert that card in your Pi and do its first boot.&lt;br /&gt;
&lt;br /&gt;
A note of caution here, it is easy to make mistakes, and you may find this does not work. It is presented here just to cover all options, to use this does require some technical skill, a novice will be better off avoiding this.&lt;br /&gt;
&lt;br /&gt;
Ensuring you are using a text editor that won&#039;t add any unwanted control characters, add the following text using UTF-8 encoding:&lt;br /&gt;
&amp;lt;pre&amp;gt;ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev&lt;br /&gt;
update_config=1&lt;br /&gt;
country=GB&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
    ssid=&amp;quot;YourNetwork&amp;quot;&lt;br /&gt;
    psk=&amp;quot;YourNetworkPassword&amp;quot;&lt;br /&gt;
    key_mgmt=WPA-PSK&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Obviously, if you are not in United Kingdom, you will replace &#039;&#039;&#039;GB&#039;&#039;&#039; by the country code that applies to you.&lt;br /&gt;
*Within the first set of quotes, replace &#039;&#039;&#039;YourNetwork&#039;&#039;&#039; by whatever &#039;&#039;Service Set IDentifier&#039;&#039; (SSID) is used for your wireless network.  &lt;br /&gt;
**You may have typed this into your mobile phone. &lt;br /&gt;
**It may be shown on a card that slips into a slot on your hub or router, but you may have changed it from that initial setting. &lt;br /&gt;
**Whatever it is, and it can be up to 32 characters (letters, numbers, and symbols), type it within the double quotes. &lt;br /&gt;
**Some routers come with a default SSID that is the manufacturer&#039;s name, if left unchanged it might conflict with a neighbour, so it is left to you to pick a SSID that is unique to you using up to 32 characters to personalise it. &lt;br /&gt;
*Within the next set of quotes, which relate to the key (or password) that protects access to your network, replace &#039;&#039;&#039;YourNetworkPassword&#039;&#039;&#039; by whatever Pre-Shared-Key (password) is used for your wireless network. &lt;br /&gt;
**You will have typed this into your mobile phone, so that can automatically connect to your network. &lt;br /&gt;
**In this case, you should have changed it (for security reasons) from whatever was shown as the initial password on the card that slips into a slot on your hub or router (possibly all you have done is add a prefix or suffix that means something to you).&lt;br /&gt;
*Most wireless networks will use Wi-Fi Protected Access (WPA) or (from 2006) Wi-Fi Protected Access II (WPA2) protocols, so &#039;&#039;&#039;WPA-PSK&#039;&#039;&#039; is correct for you. &lt;br /&gt;
**Note that your Pi is only able to use these protocols. &lt;br /&gt;
**The earlier Wired Equivalent Privacy (WEP) was officially withdrawn in 2004 as too easy to crack, so it is not supported on a new Pi.&lt;br /&gt;
&lt;br /&gt;
Should you wish to set up your Pi with several network definitions, please see [https://cumulus.hosiene.co.uk/viewtopic.php?p=139422#p139422 Notes by ExperiMentor] (a contributor, in Switzerland, to the Cumulus support forum).&lt;br /&gt;
&lt;br /&gt;
===Downloading MX distribution on PC===&lt;br /&gt;
&lt;br /&gt;
If you download MX on your PC, then you will probably unzip the distribution there, and use a tool like FileZilla to copy the installation to your Pi.&lt;br /&gt;
First of all you need to configure FileZilla Client, unless you have done that previously and saved the configuration:&lt;br /&gt;
*The quickest way is to fill out the &amp;quot;quick connect boxes&amp;quot;.&lt;br /&gt;
* Host - this is the IPv4 address of your Pi, I can&#039;t tell you what it is, but it is likely to be &#039;&#039;&#039;192.168.z.xy&#039;&#039;&#039; where the z is probably &amp;quot;1&amp;quot;, but it could be another single figure like 0, and the xy is two (or perhaps three) figures you can find out by looking for &amp;quot;pi&amp;quot; (or whatever host username you have set on your Pi) in the admin interface for your hub or router. (It can also be found out by typing &amp;lt;tt&amp;gt;hostname -I&amp;lt;/tt&amp;gt;). Most networks are setup in a way that the subnet range is from 192.168.1.0 to 192.168.1.255.&lt;br /&gt;
* Username - the default for this is &#039;&#039;&#039;raspberrypi&#039;&#039;&#039; (although on older Pi it might be &#039;&#039;&#039;Pi&#039;&#039;&#039;), but you can may have changed this (as described earlier). (It can be found by typing &amp;lt;tt&amp;gt;hostname&amp;lt;/tt&amp;gt;) or by looking at the contents of the file &#039;&#039;&#039;/etc/hostname&#039;&#039;&#039;.&lt;br /&gt;
* Password - again the default for this is &#039;&#039;&#039;raspberry&#039;&#039;&#039; but we changed it as one of the mandatory configurations earlier.&lt;br /&gt;
* Port - 22 is the default, and I have not said how you can change this!&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;QuickConnect&#039;&#039;&#039; and you should see the local files in the left frame and your Pi home files in the right frame. The easiest way is to find the folder called &#039;&#039;&#039;CumulusMX&#039;&#039;&#039; in the distribution on the left and drag it to the correct position in the right hand frame. Then all you need to do is watch the progress until it successfully finishes.&lt;br /&gt;
&lt;br /&gt;
If you are going to continue using Filezilla, there are options to save the current configuration and to set up a number of alternative configurations (specifying in advanced tab different locations on your PC and different locations on your Pi).&lt;/div&gt;</summary>
		<author><name>Cortmalaw</name></author>
	</entry>
</feed>