diff options
Diffstat (limited to 'Documentation/mono.txt')
-rw-r--r-- | Documentation/mono.txt | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Documentation/mono.txt b/Documentation/mono.txt new file mode 100644 index 000000000000..6739ab9615ef --- /dev/null +++ b/Documentation/mono.txt | |||
@@ -0,0 +1,66 @@ | |||
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 | can not 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 enries 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 | # Thus, it is possible that the following line | ||
43 | # is not needed at all. Look at /etc/modprobe.conf | ||
44 | # to check whether this is applicable or not. | ||
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. | ||