-
Notifications
You must be signed in to change notification settings - Fork 33
Installation
MMALSharp has support for Mono 4.x, and experimental support for .NET Core 2.0 Preview (using .NET Standard 1.6). Installation differs between both runtimes, and the source code is shared between both runtimes.
Installation for Mono differs between the original Model A/B/B+/Zero boards and the newer Pi Model B 2/3 boards running the ARMV7/8 chipsets.
The version of Mono currently available in the Raspbian repositories is 3.2.8 and isn't compatible with this library. Therefore, we need to do a few extra steps to get a compatible version installed. Luckily, member 'plugwash' from the Raspberry Pi forums has built a version of Mono and provided a repository from which we can install.
In order to install the required version, please open a console window and follow the below steps:
- Run
sudo nano /etc/apt/sources.list - On a new line, enter
deb http://plugwash.raspbian.org/mono4 wheezy-mono4 main - Run
sudo apt-get update && sudo apt-get upgrade - Run
sudo apt-get install mono-complete
Once completed, if you run mono --version from your command window, you should see the mono version 4.0.2 returned.
Using a later model of the Raspberry Pi allows you to install the latest Mono version from the Mono repositories without issue. To do so, please follow the below steps:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install mono-complete
Once Mono is installed, a build script is available in the MMALSharp repository which will download all required NuGet packages and then subsequently build the project for you and output a NuGet .pkg file which you can use in your application.
Pre-release builds are available from Myget
.NET Core is currently available on the Raspberry Pi 2 & 3 boards.
Please note: The install instructions for .NET Core have changed since support was added and are subject to change in the future. The instructions below are up to date as of 11/07/2017. If you're having any issues running MMALSharp on .NET Core, please raise an issue and I'll look into it for you.
-
Follow the instructions here on how to create a self-contained application for use on your Raspberry Pi.
-
In the root of your newly created application, create a
NuGet.configfile as seen below:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<!--To inherit the global NuGet package sources remove the <clear/> line below -->
<clear />
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="mmalsharp" value="https://www.myget.org/F/mmalsharp/api/v3/index.json" />
</packageSources>
</configuration>
- Open your application's
.csprojfile and add the following (add another reference forMMALSharp.FFmpegif you require this functionality). Change the version numbers to the latest found in the MyGet gallery for MMALSharp:
<ItemGroup>
<PackageReference Include="Nito.AsyncEx" Version="5.0.0-pre-02" />
<PackageReference Include="MMALSharp" Version="0.3.0.87" />
</ItemGroup>
- In CMD run
dotnet restoreat the application root to import the MMALSharp NuGet package - Apply one of the examples to your
Program.csfile in your new .NET Core app, adding any namespaces as required. - In CMD run
dotnet buildto build the application - Run
dotnet publish -r linux-arm- this will create a new directory calledpublishwithin the debug directory of your new application. - Copy the contents of that folder over to your Raspberry Pi
- You should now have a self-contained application that can be ran on your Raspberry Pi. You will probably need to run
sudo chmod +x ./APPLICATIONNAMEto make it an executable file.
If you wish to build from source, follow the below steps:
- Clone the repository by running
git clone https://github.com/techyian/MMALSharp.git - In CMD run
dotnet restoreand thendotnet build.