Blame view

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