X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=README;h=9891c696d374c95765dabc307dbb37db57bc106c;hp=fffa7939879a1d814d30425490715dcb907c4497;hb=db481105c2cf2092e1499736d6619bf194f91711;hpb=e1b579406db58dc4ced1bec6339f7647c4fd69ea diff --git a/README b/README index fffa79398..9891c696d 100644 --- 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 - -