The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/Documentation/mono.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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.

Cache object: 42b9e31d4ef014c4070bdbcfada04cb1


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.