Coding with Titans

so breaking things happens constantly, but never on purpose

Mono 3.2.7 HardFloat na Raspberry Pi

W końcu, po tylu latach czekania udało się! Gratulacje dla firmy Xamarin, wreszcie mamy Mono w wersji hardfloat na swoje Raspberry Pi.

Jak skompilować i zainstalować tę wersję można poczytać tutaj lub tutaj. Trochę czasu to trwa, trzeba być naprawdę cierpliwym (niemal cały dzień, jeśli robimy to na urządzeniu).

Niestety sama kompilacja wymaga też zainstalowania poprzedniej wersji Mono, która hardfloat nie była. Kończymy więc z dwoma wersjami działającymi jednocześnie (stara v2.8 w /usr/bin/mono i nowa v3.2 w /usr/local/bin/mono), przy czym domyślą dla uruchamianych plików .NET .exe jest stara wersja.

Jeśli zatem mamy program, który wyświetla tylko aktualną datę, to po uruchomieniu:

./current_date.exe

otrzymamy:

Current date: 0/735244/0001 1:26:16 AM

Z kolei uruchamiając:

mono current_date.exe

otrzymamy spodziewaną aktualną datę:

Current date: 1/11/2014 1:27:20 AM

Ustawmy zatem nowszą wersję Mono jako domyślną:

sudo update-alternatives --install /usr/bin/cli cli /usr/local/bin/mono 50
sudo update-alternatives --set cli /usr/local/bin/mono

Od tej pory oba sposoby uruchamiania dadzą ten sam, spodziewany wynik.