About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / mono.txt




Custom Search

Based on kernel version 3.16. Page generated on 2014-08-06 21:40 EST.

1	               Mono(tm) Binary Kernel Support for Linux
2	               -----------------------------------------
3	
4	To configure Linux to automatically execute Mono-based .NET binaries
5	(in the form of .exe files) without the need to use the mono CLR
6	wrapper, you can use the BINFMT_MISC kernel support.
7	
8	This will allow you to execute Mono-based .NET binaries just like any
9	other program after you have done the following:
10	
11	1) You MUST FIRST install the Mono CLR support, either by downloading
12	   a binary package, a source tarball or by installing from CVS. Binary
13	   packages for several distributions can be found at:
14	
15		http://go-mono.com/download.html
16	
17	   Instructions for compiling Mono can be found at:
18	
19		http://www.go-mono.com/compiling.html
20	
21	   Once the Mono CLR support has been installed, just check that
22	   /usr/bin/mono (which could be located elsewhere, for example
23	   /usr/local/bin/mono) is working.
24	
25	2) You have to compile BINFMT_MISC either as a module or into
26	   the kernel (CONFIG_BINFMT_MISC) and set it up properly.
27	   If you choose to compile it as a module, you will have
28	   to insert it manually with modprobe/insmod, as kmod
29	   cannot be easily supported with binfmt_misc. 
30	   Read the file 'binfmt_misc.txt' in this directory to know
31	   more about the configuration process.
32	
33	3) Add the following entries to /etc/rc.local or similar script
34	   to be run at system startup:
35	
36	# Insert BINFMT_MISC module into the kernel
37	if [ ! -e /proc/sys/fs/binfmt_misc/register ]; then
38	        /sbin/modprobe binfmt_misc
39		# Some distributions, like Fedora Core, perform
40		# the following command automatically when the
41		# binfmt_misc module is loaded into the kernel
42		# or during normal boot up (systemd-based systems).
43		# Thus, it is possible that the following line
44		# is not needed at all.
45		mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
46	fi
47	
48	# Register support for .NET CLR binaries
49	if [ -e /proc/sys/fs/binfmt_misc/register ]; then
50		# Replace /usr/bin/mono with the correct pathname to
51		# the Mono CLR runtime (usually /usr/local/bin/mono
52		# when compiling from sources or CVS).
53	        echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
54	else
55	        echo "No binfmt_misc support"
56	        exit 1
57	fi
58	
59	4) Check that .exe binaries can be ran without the need of a
60	   wrapper script, simply by launching the .exe file directly
61	   from a command prompt, for example:
62	
63		/usr/bin/xsd.exe
64	
65	   NOTE: If this fails with a permission denied error, check
66	         that the .exe file has execute permissions.
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.