chiark / gitweb /
Make bus errno mappings non-static
[elogind.git] / README
diff --git a/README b/README
index a2ce9c7d367137853fcb242daa6a9ccde7dfb381..144036717cf78198a0f9d0d9b45a9d3def724e3a 100644 (file)
--- a/README
+++ b/README
-
-udev - a userspace implementation of devfs
-
-For more information on the design, and structure of this project, see the
-files in the docs/ directory.
-
-To use:
-
-- You must be running a 2.6 version of the Linux kernel.
-
-- Your 2.6 kernel must have had CONFIG_HOTPLUG enabled when it was built.
-
-- Make sure sysfs is mounted at /sys. You can mount it by running:
-       mount -t sysfs none /sys
-
-- Make sure you have the latest version of the linux-hotplug scripts.  They are
-  available at linux-hotplug.sf.net or from your local kernel.org mirror at:
-       kernel.org/pub/linux/utils/kernel/hotplug/
-  They are required in order for udev to work properly.
-
-  If for some reason you do not install the hotplug scripts, you must tell the
-  kernel to point the hotplug binary at wherever you install udev at.  This can
-  be done by:
-       echo "/sbin/udev" > /proc/sys/kernel/hotplug
-
-- Build the project:
-       make
-
-  Note:
-      There are a number of different flags that you can use when building
-      udev.  They are as follows:
-       prefix
-               set this to the default root that you want udev to be
-               installed into.  This works just like the 'configure --prefix'
-               script does.  Default value is ''.  Only override this if you
-               really know what you are doing.
-       USE_KLIBC
-               if set to 'true', udev is built and linked against the
-               included version of klibc.  Default value is 'false'.
-       USE_LOG
-               if set to 'true', udev will emit messages to the syslog when
-               it creates or removes device nodes.  This is helpful to see
-               what udev is doing.  This is enabled by default.  Note, if you
-               are building udev against klibc it is recommended that you
-               disable this option (due to klibc's syslog implementation.)
-       USE_SELINUX
-               if set to 'true', udev will be built with SELinux support
-               enabled.  This is disabled by default.
-       DEBUG
-               if set to 'true', debugging messages will be sent to the syslog
-               as udev is run.  Default value is 'false'.
-       KERNEL_DIR
-               If this is not set it will default to /lib/modules/`uname -r`/build
-               This is used if USE_KLIBC=true to find the kernel include
-               directory that klibc needs to build against.  This must be set
-               if you are not building udev while running a 2.6 kernel.
-
-      So, if you want to build udev using klibc with debugging messages, you
-      would do:
-       make USE_KLIBC=true DEBUG=true
-
-- Install the project:
-       make install
-
-  This will put the udev binary in /sbin, create the /udev and /etc/udev
-  directories, and place the udev configuration files in /etc/udev.  You
-  will probably want to edit the *.rules files to create custom naming
-  rules.  More info on how the config files are set up are contained in
-  comments in the files, and is located in the documentation.
-
-- Add and remove devices from the system and marvel as nodes are created
-  and removed in /udev/ based on the device types.
-
-- If you later get sick of it, uninstall it:
-       make uninstall
-
-
-Things are still quite rough, but it should work properly.  If nothing
-seems to happen, make sure your build worked properly by running the
-udev-test.pl script as root in the test/ subdirectory of the udev source
-tree.
-
-Development and documentation help is very much appreciated, see the TODO
-file for a list of things left to be done.
-
-
-Any comment/questions/concerns please let me and the other udev developers
-know by sending a message to the linux-hotplug-devel mailing list at:
-       linux-hotplug-devel@lists.sourceforge.net
-
-greg k-h
-greg@kroah.com
-
+systemd System and Service Manager
+
+DETAILS:
+        http://0pointer.de/blog/projects/systemd.html
+
+WEB SITE:
+        http://www.freedesktop.org/wiki/Software/systemd
+
+GIT:
+        git://anongit.freedesktop.org/systemd/systemd
+        ssh://git.freedesktop.org/git/systemd/systemd
+
+GITWEB:
+        http://cgit.freedesktop.org/systemd/systemd
+
+MAILING LIST:
+        http://lists.freedesktop.org/mailman/listinfo/systemd-devel
+        http://lists.freedesktop.org/mailman/listinfo/systemd-commits
+
+IRC:
+        #systemd on irc.freenode.org
+
+BUG REPORTS:
+        https://bugs.freedesktop.org/enter_bug.cgi?product=systemd
+
+AUTHOR:
+        Lennart Poettering
+        Kay Sievers
+        ...and many others
+
+LICENSE:
+        LGPLv2.1+ for all code
+        - except src/shared/MurmurHash2.c which is Public Domain
+        - except src/shared/siphash24.c which is CC0 Public Domain
+        - except src/journal/lookup3.c which is Public Domain
+        - except src/udev/* which is (currently still) GPLv2, GPLv2+
+
+REQUIREMENTS:
+        Linux kernel >= 3.7
+        Linux kernel >= 3.8 for Smack support
+
+        Kernel Config Options:
+          CONFIG_DEVTMPFS
+          CONFIG_CGROUPS (it is OK to disable all controllers)
+          CONFIG_INOTIFY_USER
+          CONFIG_SIGNALFD
+          CONFIG_TIMERFD
+          CONFIG_EPOLL
+          CONFIG_NET
+          CONFIG_SYSFS
+          CONFIG_PROC_FS
+          CONFIG_FHANDLE (libudev, mount and bind mount handling)
+
+        udev will fail to work with the legacy sysfs layout:
+          CONFIG_SYSFS_DEPRECATED=n
+
+        Legacy hotplug slows down the system and confuses udev:
+          CONFIG_UEVENT_HELPER_PATH=""
+
+        Userspace firmware loading is not supported and should
+        be disabled in the kernel:
+          CONFIG_FW_LOADER_USER_HELPER=n
+
+        Some udev rules and virtualization detection relies on it:
+          CONFIG_DMIID
+
+        Support for some SCSI devices serial number retrieval, to
+        create additional symlinks in /dev/disk/ and /dev/tape:
+          CONFIG_BLK_DEV_BSG
+
+        Required for PrivateNetwork in service units:
+          CONFIG_NET_NS
+
+        Optional but strongly recommended:
+          CONFIG_IPV6
+          CONFIG_AUTOFS4_FS
+          CONFIG_TMPFS_POSIX_ACL
+          CONFIG_TMPFS_XATTR
+          CONFIG_SECCOMP
+
+        Required for CPUShares in resource control unit settings
+          CONFIG_CGROUP_SCHED
+          CONFIG_FAIR_GROUP_SCHED
+
+        For systemd-bootchart, several proc debug interfaces are required:
+          CONFIG_SCHEDSTATS
+          CONFIG_SCHED_DEBUG
+
+        For UEFI systems:
+          CONFIG_EFIVAR_FS
+          CONFIG_EFI_PARTITION
+
+        Note that kernel auditing is broken when used with systemd's
+        container code. When using systemd in conjunction with
+        containers, please make sure to either turn off auditing at
+        runtime using the kernel command line option "audit=0", or
+        turn it off at kernel compile time using:
+          CONFIG_AUDIT=n
+        If systemd is compiled with libseccomp support on
+        architectures which do not use socketcall() and where seccomp
+        is supported (this effectively means x86-64 and ARM, but
+        excludes 32-bit x86!), then nspawn will now install a
+        work-around seccomp filter that makes containers boot even
+        with audit being enabled. This works correctly only on kernels
+        3.14 and newer though. TL;DR: turn audit off, still.
+
+        glibc >= 2.14
+        libcap
+        libseccomp >= 1.0.0 (optional)
+        libblkid >= 2.20 (from util-linux) (optional)
+        libkmod >= 15 (optional)
+        PAM >= 1.1.2 (optional)
+        libcryptsetup (optional)
+        libaudit (optional)
+        libacl (optional)
+        libselinux (optional)
+        liblzma (optional)
+        liblz4 >= 119 (optional)
+        libgcrypt (optional)
+        libqrencode (optional)
+        libmicrohttpd (optional)
+        libpython (optional)
+        libidn (optional)
+        gobject-introspection > 1.40.0 (optional)
+        elfutils >= 158 (optional)
+        make, gcc, and similar tools
+
+        During runtime, you need the following additional
+        dependencies:
+
+        util-linux >= v2.25 required
+        dbus >= 1.4.0 (strictly speaking optional, but recommended)
+        dracut (optional)
+        PolicyKit (optional)
+
+        When building from git, you need the following additional
+        dependencies:
+
+        docbook-xsl
+        xsltproc
+        automake
+        autoconf
+        libtool
+        intltool
+        gperf
+        gtkdocize (optional)
+        python (optional)
+        python-lxml (optional, but required to build the indices)
+        sphinx (optional)
+
+        When systemd-hostnamed is used, it is strongly recommended to
+        install nss-myhostname to ensure that, in a world of
+        dynamically changing hostnames, the hostname stays resolvable
+        under all circumstances. In fact, systemd-hostnamed will warn
+        if nss-myhostname is not installed.
+
+        To build HTML documentation for python-systemd using sphinx,
+        please first install systemd (using 'make install'), and then
+        invoke sphinx-build with 'make sphinx-<target>', with <target>
+        being 'html' or 'latexpdf'. If using DESTDIR for installation,
+        pass the same DESTDIR to 'make sphinx-html' invocation.
+
+USERS AND GROUPS:
+        Default udev rules use the following standard system group
+        names, which need to be resolvable by getgrnam() at any time,
+        even in the very early boot stages, where no other databases
+        and network are available:
+
+        audio, cdrom, dialout, disk, input, kmem, lp, tape, tty, video
+
+        During runtime, the journal daemon requires the
+        "systemd-journal" system group to exist. New journal files will
+        be readable by this group (but not writable), which may be used
+        to grant specific users read access.
+
+        It is also recommended to grant read access to all journal
+        files to the system groups "wheel" and "adm" with a command
+        like the following in the post installation script of the
+        package:
+
+        # setfacl -nm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/
+
+        The journal gateway daemon requires the
+        "systemd-journal-gateway" system user and group to
+        exist. During execution this network facing service will drop
+        privileges and assume this uid/gid for security reasons.
+
+        Similarly, the NTP daemon requires the "systemd-timesync" system
+        user and group to exist.
+
+        Similarly, the network management daemon requires the
+        "systemd-network" system user and group to exist.
+
+        Similarly, the name resolution daemon requires the
+        "systemd-resolve" system user and group to exist.
+
+        Similarly, the kdbus dbus1 proxy daemon requires the
+        "systemd-bus-proxy" system user and group to exist.
+
+NSS:
+        systemd ships with three NSS modules:
+
+        nss-myhostname resolves the local hostname to locally
+        configured IP addresses, as well as "localhost" to
+        127.0.0.1/::1.
+
+        nss-resolve enables DNS resolution via the systemd-resolved
+        DNS/LLMNR caching stub resolver "systemd-resolved".
+
+        nss-mymachines enables resolution of all local containers
+        registered with machined to their respective IP addresses.
+
+        To make use of these NSS modules, please add them to the
+        "hosts: " line in /etc/nsswitch.conf. The "resolve" module
+        should replace the glibc "dns" module in this file.
+
+        The three modules should be used in the following order:
+
+                hosts: files mymachines resolve myhostname
+
+WARNINGS:
+        systemd will warn you during boot if /etc/mtab is not a
+        symlink to /proc/mounts. Please ensure that /etc/mtab is a
+        proper symlink.
+
+        systemd will warn you during boot if /usr is on a different
+        file system than /. While in systemd itself very little will
+        break if /usr is on a separate partition, many of its
+        dependencies very likely will break sooner or later in one
+        form or another. For example, udev rules tend to refer to
+        binaries in /usr, binaries that link to libraries in /usr or
+        binaries that refer to data files in /usr. Since these
+        breakages are not always directly visible, systemd will warn
+        about this, since this kind of file system setup is not really
+        supported anymore by the basic set of Linux OS components.
+
+        systemd requires that the /run mount point exists. systemd also
+        requires that /var/run is a a symlink to /run.
+
+        For more information on this issue consult
+        http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken
+
+        To run systemd under valgrind, compile with VALGRIND defined
+        (e.g. ./configure CPPFLAGS='... -DVALGRIND=1'). Otherwise,
+        false positives will be triggered by code which violates
+        some rules but is actually safe.