Mono on Raspberry Pi

The folks on the Raspberri Pi board are reporting that Mono does indeed work, at least for simple applications.


Mono on the Raspberry Pi is possible and reasonably easy to set up. The following assumes you're on Debian. This is taken from my blog that offers a number of Raspberry Pi tutorials

A note: the standard Mono runtime currently available only supports up to .NET 3.5 unless you compile from source yourself.

So you want to start developing some applications for your Raspberry Pi but your knowledge of programming is limited to the modern .NET languages such as VB.NET and C#. Not a problem!! Welcome to the world of Mono, an open source cross-platform and compatible version of the .NET framework. By using a development IDE such as Visual studio, or even better MonoDevelop you can produce EXE files that will run on your Raspberry Pi. All you need to do is to install the Mono run times on the Raspberry Pi. To do that we enter the following lines.

sudo apt-get update

sudo apt-get install mono-runtime

As mentioned in other tutorials the first line is used to update the APT-GET package manager to ensure it is using the latest sources for downloading your packages. The second line installs and prepares the runtimes for use. That's it, now to run a Mono developed EXE file. Just simply prefix the command with the word mono as shown below.

mono myprogram.exe 

I have managed to run my Delta Forth .NET compiler on Debian 6.0 (Squeeze) and Mono. It worked flawlessly with full binary compatibility, the only thing I had to do was to recompile the code to target .NET 3.5 (instead of 4.0) since Mono on Debian lags a bit regarding .NET versions.

The compiler is not a trivial .NET application so I was happy to actually see the compiler in action on my tiny Raspberry Pi.

The actual steps I took to make the magic happen were (I recall from memory):

  • Install the Mono runtime using: sudo apt-get install mono
  • Invoke the compiler itself using: mono DeltaForth.exe file_to_compile.4th

That is all. The most challenging part of this endeavor was to transfer the files from my Windows machine to Raspberry Pi using a flash drive :-)