chiark / gitweb /
update README
[elogind.git] / README
diff --git a/README b/README
index 1a46a3c1eebf6b0d96d7b21bee77326badecb83c..139c6e1a6ff00e77052a0e9b4bd6093b799ee25e 100644 (file)
--- a/README
+++ b/README
@@ -1,39 +1,99 @@
 
-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.
 
 To use:
 
-- Edit the udev.h file and replace the following variables with values
-  that make sense for your system:
-       #define SYSFS_ROOT      "/sys"
-       #define UDEV_ROOT       "/home/greg/linux/udev/"
-       #define DEV_FILE        "/dev"
-       #define MKNOD           "/bin/mknod"
-  The only value most people will have to change is the UDEV_ROOT
-  variable, as I doubt you really want device nodes to be created in my
-  home directory :)
+- You must be running a 2.6 version of the Linux kernel.
 
-- Run make to build the project.
+- Your 2.6 kernel must have had CONFIG_HOTPLUG enabled when it was built.
 
-- Make sure sysfs is mounted.
+- Make sure sysfs is mounted at /sys. No other location is supported.
+  You can mount it by running:
+       mount -t sysfs none /sys
 
-- Point /proc/sys/kernel/hotplug at the location of the udev binary that
-  is created.  Then plug some block devices in, or other types of
-  devices that create dev files in sysfs.  An easy way to do this,
-  without any hardware is to use the scsi_debug module to create virtual
-  scsi devices.
+- 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.
 
-- Watch as the nodes get created and removed.
+- 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.
 
-Yes this is a really rough first cut, I know.  It's mostly a proof of
-concept that this can actually work.  See the TODO file for a list of
-things left to be done.
+- Build the project:
+       make
 
-Any comment/questions/concerns please let me know.
+  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
+
+      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 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 /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.
+
+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
+