基于buildroot的嵌入式系统上扭曲的Winform Mono应用程序

时间:2018-07-30 12:21:28

标签: c# mono arm embedded-linux buildroot

我试图在使用buildroot构建的嵌入式Linux ARM系统上运行C#/ VB.net程序。这些应用程序可以运行,但是在我的buildroot系统上有很大的失真。我创建了一个非常简单的winforms应用程序,并使用Visual Studio 2008对其进行了编译(尝试2017年,结果相同)。使用mono运行相同的二进制文件会产生以下结果:

  • X86 Linux-Mint VM:正常工作
  • ARM Raspbian Raspberry Pi 3+:运行正常
  • ARM Buildroot Raspberry Pi 3+:损坏的显示
  • ARM buildroot i.MX6:显示损坏

我尝试使用不同的Xorg和Mono版本,但没有取得积极的结果。 有什么想法可以找出问题所在吗?

这里是Raspbian和buildroot的2张屏幕截图。还有一些我认为可能有用的基本版本信息。

Raspbian, everythings fine

Buildroot, broken

  

Raspberry Pi ARM,工作正常:

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变形:

# 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)

1 个答案:

答案 0 :(得分:0)

找到了解决方案。 将几个库升级到更高版本并禁用pango库可以解决问题。

libgdiplus 5.4至5.6
开罗1.14.10至1.15.12
pango已移除