Project

General

Profile

X11/Mono support

Note: These instructions apply to the 2010.7 Angstrom release included in the current MDK (2011.03) as of this writing. If you're using a different Angstrom release, your mileage may vary.

The Angstrom distribution includes packages for both the Xorg X server and the Mono runtime. An MDK filesystem modified to include Mono support is attached at the bottom of this page. If you choose to use this filesystem, you may still need to follow some of the steps described below to ensure uBoot is configured correctly and that you are running the correct kernel. However, all of the filesystem changes will already be in place.

Setting up X

In order to support running X, the following changes need to be made:

  • LCD needs to be enabled and configured in uBoot (config set). This applies to DVI as well.
  • The kernel needs to be built for a baseboard that enables the LCDC device. The IndustrialIO baseboard does this.
  • If the above two steps have been done correctly, a /dev/fb0 framebuffer device should appear in your filesystem.
  • An FPGA image that does the right thing with the LCDC signals needs to be loaded. This is platform-specific; for the IndustrialIO board, there are several FPGA images included in the MDK under the examples/ directory - the correct image needs to be loaded depending on if you're using LCD or DVI, and the IndustrialIO board revision.

The above steps enable the LCDC peripheral and Linux framebuffer, and set up the FPGA to pass the display signals from the OMAP to the display hardware. If done correctly, you should see a Linux login prompt on your display device during normal operation (before an X server is running).

Installing the X server is done with Angstrom's package management tool opkg. If you have not used opkg before, make sure you have a network connection (you may need to set up DNS manually in /etc/resolv.conf) and run the following command:

opkg update

If the command ran successfully, the only error you should see is:
* opkg_download: Failed to download http://www.angstrom-distribution.org/feeds/unstable/ipk/glibc/armv5te/machine/mityomapl138/Packages.gz, wget returned 1.

To download and install the Xorg packages, execute:

opkg install xserver-xorg xf86-video-fbdev xf86-input-evdev

After the installation, you may want to restart to ensure the HAL daemon is running. At this point, you have a fully functional X server. You will need to install some additional X client libraries and fonts to actually run X applications. This is handled in the next section as part of the Mono installation.

Installing Mono

To install Mono, execute:

opkg install mono libmono0 gtk+ libtiff5

Angstrom's mono package is missing a library required for Winforms support, libgdiplus.so. The compiled library is attached at the bottom of this page. Copy it into /usr/lib and execute:

cd /usr/lib
ldconfig
ln -s libgdiplus.so.0.0.0 libgdiplus.so

That's it! To run your Mono application:

Xorg & [if your X server is not already running] 
export DISPLAY=:0
mono MyMonoApplication.exe

TODO

  • Talk about window managers
  • Rebuild libgdiplus.so with gif support

Go to top
Add picture from clipboard (Maximum size: 1 GB)