Search code examples
c#monoarmembedded-linuxbuildroot

Distorted winform mono application on buildroot based embedded system


I am trying to run a C#/VB.net programm on an embedded linux ARM system I build with buildroot. The applications runs but there are heavy distorted on my buildroot system. I created a very simple winforms application and compiled it using Visual Studio 2008 (tried 2017, same results). Running the same binary using mono brings the following results:

  • X86 Linux-Mint VM : works fine
  • ARM Raspbian Raspberry Pi 3+ : works fine
  • ARM Buildroot Raspberry Pi 3+ : broken display
  • ARM buildroot i.MX6 : broken display

I tried using different Xorg and mono versions without positive result. Any ideas where to pinpoint the problem?

Here are 2 screenshots from the Raspbian and the buildroot one. Also some basic version infos I think that could be usefull.

Raspbian, everythings fine

Buildroot, broken

Raspberry Pi ARM, working fine:

pi@raspberrypi:~ $ uname -r
4.9.69-v7+

pi@raspberrypi:~ $ Xorg -version
X.Org X Server 1.18.4
Release Date: 2016-07-19
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.4.26-v7+ armv7l Raspbian

pi@raspberrypi:~ $ mono --version
Mono JIT compiler version 4.0.2 (Debian 4.0.2.5+dfsg-2~rpi1)

NXP i.MX 6, distorted:

# uname -r
4.1.15-F+S

# Xorg -version

X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.8.13-100.fc23.x86_64 x86_64

# mono --version
Mono JIT compiler version 5.4.0.201 (tarball Mon Jul 30 11:46:19 CEST 2018)

Solution

  • Found the solution. Bumping several library to a higher version and disabling the pango library did the trick.

    libgdiplus 5.4 to 5.6
    Cairo 1.14.10 to 1.15.12
    pango removed