Mono for BeagleBone

Has anyone been able to install Mono on the BeagleBone? I can compile the source, but I’m not having any luck finding monolite for ARM7a to get things started.

root@beaglebone:~# opkg update

root@beaglebone:~# opkg install mono
Unknown package ‘mono’.
Collected errors:

  • opkg_install_cmd: Cannot install package mono.

Thanks,
Jerrill

It has been built before: http://www.angstrom-distribution.org/repo/?pkgname=mono

To get it in oe-core, I suspect you could more this recipe over: http://git.openembedded.org/openembedded/tree/recipes/mono/mono_2.6.3.bb

I don’t currently see a layer for mono: http://www.openembedded.org/wiki/LayerIndex

Is this what you mean by move the recipe over? I'm not having much
success in building mono and I wanted to check that I have the right
source of mono recipe.

To move the mono recipe over I cloned the following git repo into a
local directory oe:

$ git clone git://git.openembedded.org/openembedded oe

Then copied the mono recipe directory into my oe-core BB image build
directory:

$ cp ./oe/classes/mono.bbclass ./angstrom-beaglebone/sources/
openembedded-core/meta/recipes-core/

I also had to copy over the mono.bbclass file into my BB image build
directory:

$ cp ./oe/classes/mono.bbclass ./angstrom-beaglebone/sources/
openembedded-core/meta/classes

When I build I get the configure error: cannot run test program while
cross compiling...

...

checking for isinf... yes
checking size of void *... (cached) 4
checking for -Wdeclaration-after-statement option to gcc... yes
checking whether NLS is requested... yes
checking for msgfmt... /mnt/work/build_angstrom/angstrom-beaglebone/

build/tmp-angstrom_2010_x-eglibc/sysroots/i686-linux/usr/bin/msgfmt

checking for gmsgfmt... /mnt/work/build_angstrom/angstrom-beaglebone/

build/tmp-angstrom_2010_x-eglibc/sysroots/i686-linux/usr/bin/msgfmt

checking for xgettext... /mERROR: Function 'do_configure' failed

(see /mnt/work/build_angstrom/angstrom-beaglebone/build/tmp-
angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/mono-2.6.3-
r0.1/temp/log.do_configure.24902 for further information)

nt/work/build_angstrom/angstrom-beaglebone/build/tmp-angstrom_2010_x-

eglibc/sysroots/i686-linux/usr/bin/xgettext

checking for msgmerge... /mnt/work/build_angstrom/angstrom-

beaglebone/build/tmp-angstrom_2010_x-eglibc/sysroots/i686-linux/usr/
bin/msgmerge

checking for msgfmt... yes
checking for pkg-config... /mnt/work/build_angstrom/angstrom-

beaglebone/build/tmp-angstrom_2010_x-eglibc/sysroots/i686-linux/usr/
bin/pkg-config

checking for -mno-tls-direct-seg-refs option to gcc... no
checking for visibility __attribute__... yes
checking for library containing clock_gettime... -lrt
checking for dlopen... no
checking for dlopen in -ldl... yes
checking for preceeding underscore in symbols... configure: error:

in `/mnt/work/build_angstrom/angstrom-beaglebone/build/tmp-
angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/mono-2.6.3-
r0.1/mono-2.6.3':

configure: error: cannot run test program while cross compiling
See `config.log' for more details
+ bbfatal 'oe_runconf failed'
+ echo 'ERROR: oe_runconf failed'
ERROR: oe_runconf failed
+ exit 1

NOTE: package mono-2.6.3-r0.1: task do_configure: Failed
ERROR: Task 8 (/mnt/work/build_angstrom/angstrom-beaglebone/sources/
openembedded-core/meta/recipes-core/mono/mono_2.6.3.bb, do_configure)
failed with exit code '1'
ERROR: '/mnt/work/build_angstrom/angstrom-beaglebone/sources/
openembedded-core/meta/recipes-core/mono/mono_2.6.3.bb' failed

Dear Jerrill,
I’m using Mono extensively.
I’ve moved from the now quite old 2.6.3 version in openembedded to 2.10.5 which is almost current with the current Mono release (2.10.8) has better performance and NET profile 4 support.
I’ve attached my recipe and patches. My packaging is much coarser than the 2.6.3 version and I’ve had to change some naming because of this.
I’m using openembedded classic.

Hope this helps to get you going.

Cheers Mike.

mono-v.zip (16.1 KB)

Hi Mike

Thanks for posting your Mono recipe.
Are you using a mono.bbclass file in your build tree?
I'm getting the following error:

ERROR: Could not inherit file classes/mono.bbclass

Thanks JR

Dear JR,
My OE build system is openembedded classic 2011.3 maintenance which contains
the mono.bb class. I'm not using the newer OE core and meta/layers version.

Cheers Mike.

Hi Mike,

So you are using the same mono.bbclass from the following repository?

$ git clone git://git.openembedded.org/openembedded oe

I'm assuming moving your recipe over to OE core then it will require
mono.bbclass.

Thanks,

JR

There's https://github.com/KokoFitClub/meta-mono nowadays. I haven't tried it yet, but the people behind it are using it on real devices. And yes, those devices for for fitness as the name of the repo implies :slight_smile: