Forgive me if this has already been solved and posted but I’d like to share with everyone the steps I followed to install .NET Core 2.0 on my Dragonboard 410c.
First off I’m running an install of Debian provide by 96Boards but I’m not sure of the vintage.
I did perform apt-get update and apt-get upgrade before beginning the process of installing the pieces required for .NET.
First thing that’s required is to configure dpkg to allow installation of armhf architecture packages.
This is required because .NET Core for Linux ARM targets a 32 bit environment, the Debian distribution provided by 96Boards is 64 bit. You’re welcome to convert the entire Debian install to 32 bit (which I seriously considered) but these steps avoid that path.
Issue the following commands to reconfigure dpkg:
$ sudo dpkg –add-architecture armhf
$ sudo apt-get update
Once this step completes it’s time to install the libraries .NET Core requires, here are the commands that do this:
$ sudo apt-get install linux-libc-dev:armhf libc6-dev:armhf uuid-dev:armhf liblttng-ust-dev:armhf
$ sudo apt-get install libunwind8:armhf libunwind8-dev:armhf
$ sudo apt-get install gettext:armhf libicu-dev:armhf libcurl4-openssl-dev:armhf libssl-dev:armhf unzip:armhf libcroco3:armhf libglib2.0-0:armhf libunistring0:armhf libcurl3:armhf libssl1.0.0:armhf libcomerr2:armhf libgssapi-krb5-2:armhf libkrb5-3:armhf libldap-2.4-2:armhf libssh2-1:armhf libgcrypt20:armhf libgpg-error0:armhf
At this point an error was displayed in the package install process and I was forced to rename 2 files before it would continue, issue the following commands to do this
$ sudo mv /usr/share/doc/libffi6/changelog.Debian.gz /usr/share/doc/libffi6/changelog.Debian.gz.sav
$ sudo mv /usr/share/doc/libxml2/changelog.Debian.gz /usr/share/doc/libxml2/changelog.Debian.gz.sav
Now the package manager can be told to “fix” the broken dependencies and continue, issue this command to do this
$ sudo apt-get –f install
*** You may run into additional library dependencies if your set of installed packages differs from mine. Please document them in this thread if you do. ***
Now I all the required library packages are installed, during the process the package manager suggested installing an XML core package, do that with this command, I believe this is optional but I did it anyway.
$ sudo apt-get install xml-core
From this point on the steps describe the installation of .NET Core itself, I basically followed the steps for installing it on a Raspberry Pi but skipped those that describe installing the prerequisite libraries, we just did that.
I followed the steps on this page to install the .NET Core 2.0 run time on my dragon board.
Here are the steps with the Raspberry Pi stuff eliminated:
$ curl -sSL -o dotnet.tar.gz https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.0.0/dotnet-runtime-latest-linux-arm.tar.gz
$ sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
$ sudo ln -s /opt/dotnet/dotnet /usr/local/bin
This command should result in display of the dotnet help information, no error indicates a successful install
$ dotnet --help
The .NET Core 2.0 run time is now installed on your Dragonboard.
Due to the fact that the .NET Core SDK is not available on Linux ARM systems yet you have to create and build a test project on a different system.
I downloaded and installed the .NET Core 2.0 SDK, it can be found here:
Next I followed the steps on this page:
** Again, ignore the instructions for installing the .NET Core prerequisites. **
After all this I was able to successfully execute the example C# helloworld program on my Dragonboard 410c in the Debian 64-bit environment.
Keep in mind the “test” program is extremely trivial and I’ve not had an opportunity to do further testing so there is no guarantee everything you want to do will actually work, but this is a good step forward.
Wheelman (Ken Wheeler)