X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=README;h=19ed4468eab0806207bacf6f27dc3f606413789a;hp=1a46a3c1eebf6b0d96d7b21bee77326badecb83c;hb=c2df8b5f517216ab7763c1b25655c170cfcee097;hpb=d2ce1817117daa9523b1572523f1e7684bae779f diff --git a/README b/README index 1a46a3c1e..19ed4468e 100644 --- a/README +++ b/README @@ -1,39 +1,77 @@ +udev - userspace device management -udev - a userspace implementation of devfs +For more information see the files in the docs/ directory. -For more information on the design, and structure of this project, see the -files in the docs/ directory. +Important Note: + Integrating udev in the system is a whole lot of work, has complex dependencies + and differs a lot from distro to distro. All reasonable distros use udev these + days, the major ones make it mandatory and the system will not work without it. -To use: + The upstream udev project does not support or recomend to replace a distro's udev + installation with the upstream version. The installation of a unmodified upstream + version may render your system unusable! There is no "default" setup or a set + of "default" rules provided by the upstream udev version. -- 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 :) +udev requires: + - 2.6 version of the Linux kernel -- Run make to build the project. + - the kernel must have sysfs, netlink, and hotplug enabled -- Make sure sysfs is mounted. + - proc must be mounted on /proc -- 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. + - sysfs must be mounted at /sys, no other location is supported -- Watch as the nodes get created and removed. + - udev creates and removes device nodes in /dev based on events + the kernel sends out on device discovery or removal + - during bootup /dev usually gets a tmpfs mounted which is populated scratch + by udev (created nodes don't survive a reboot, it always starts from scratch) -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. + - udev replaces the hotplug event management invoked from /sbin/hotplug + by the udevd daemon, which receives the kernel events over netlink -Any comment/questions/concerns please let me know. + - all kernel events are matched against a set of specified rules which + make it posible to hook into the event processing + + - there is a copy of the rules files for all major distros in the etc/udev + directory (you may look there how others distros are doing it) + +Setting which are used for building udev: + prefix + set this to the default root that you want to use + Only override this if you really know what you are doing + DESTDIR + prefix for install target for package building + 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.) + DEBUG + if set to 'true', verbose debugging messages will be compiled into + the udev binaries. Default value is 'false'. + USE_SELINUX + if set to 'true', udev will be built with SELinux support + enabled. This is disabled by default. + USE_KLIBC + if set to 'true', udev is built and linked against the + included version of klibc. 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.) + +if you want to build udev using klibc with debugging messages: + make USE_KLIBC=true DEBUG=true + +if you want to build the udev helper program cdrom_id and scsi_id: + make EXTRAS="extras/cdrom_id extras/scsi_id" + +Please direct any comment/question/concern to the linux-hotplug-devel mailing list at: + linux-hotplug-devel@lists.sourceforge.net -greg k-h -greg@kroah.com