chiark / gitweb /
prepare for new HAL udevdb dump
[elogind.git] / README
diff --git a/README b/README
index fffa793..9891c69 100644 (file)
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
 
-udev - a userspace implementation of devfs
+udev - a userspace device manager
 
 For more information on the design, and structure of this project, see the
 files in the docs/ directory.
@@ -8,54 +8,100 @@ To use:
 
 - You must be running a 2.6 version of the Linux kernel.
 
-- Make sure sysfs is mounted.  udev will figure out where sysfs is mounted, but
-  the traditional place for it is at /sys.  You can mount it by hand by running:
+- Your 2.6 kernel must have had CONFIG_HOTPLUG enabled when it was built.
+
+- Make sure sysfs is mounted at /sys. No other location is supported.
+  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.
+- Make sure you integrate udev with your hotplug setup. There is a copy of
+  the rules files for all major distros in the etc/udev folder. You may look
+  there how others are doing it.
 
-  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:
+- Make sure you integrate with the kernel hotplug events. Later versions of
+  udev are able to listen directly to a netlink socket, older versions used
+  udevsend to feed the udev daemon with the kernel event. The most basic
+  setup to run udev is to let the kernel for the udev binary directly:
        echo "/sbin/udev" > /proc/sys/kernel/hotplug
 
+  While this may work in some setups, it is not recommended to do. A recent
+  kernel and udev version is able to operate with the event serializing daemon
+  udevd, that makes sure, that no "remove" event will beat a "add" event for
+  the same device.
+
 - 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.
+       EXTRAS
+               if set, will build the "extra" helper programs as specified
+               as listed (see below for an example.)
+
+      So, if you want to build udev using klibc with debugging messages, you
+      would do:
+       make USE_KLIBC=true DEBUG=true
+
+      If you want to build the udev helper program cdrom_id and scsi_id you
+      would do:
+       make EXTRAS="extras/cdrom_id extras/scsi_id"
+
+      udev will follow the setting of the debug level in udev.conf. Adapt this
+      value to see the debug in syslog.
+
 - 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 namedev.* files to create custom naming
+  This will put the udev binaries in /sbin, create the 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.
+  and removed in /dev based on the device types.
 
 - If you later get sick of it, uninstall it:
        make uninstall
 
+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. Running udevstart should populate an empty /dev
+directory. You may test, if a node is recreated after running udevstart.
 
-Things are still quite rough, and it's a bit beyond proof of concept
-code.  Help is very much appreciated, see the TODO file for a list of
-things left to be done.
+Development and documentation help is very much appreciated, see the TODO
+file for a list of things left to be done.
 
-If you want to build using klibc, use the Makefile.klibc file:
-       - read the klibc/klibc/README file for how to set up the linux
-         symlink properly.
-       - make clean
-       - make -f Makefile.klibc
-and marvel at the tiny binary you just created :)
-
-Any comment/questions/concerns please let me know.
+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
 
-
-