X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=README;h=9891c696d374c95765dabc307dbb37db57bc106c;hp=07fa162bbd87d6f26e561f51b59d3fe4bac76d1e;hb=2321ba6fd89635f321ec08fa3803aa7e20aa76bf;hpb=cee360d32efd8392f7e342dcaeda1de50a2c1bcf diff --git a/README b/README index 07fa162bb..9891c696d 100644 --- a/README +++ b/README @@ -1,37 +1,107 @@ -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 UDEV_ROOT "/udev/" - #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. + 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 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. Running udevstart should populate an empty /dev +directory. You may test, if a node is recreated after running udevstart. + +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 +