]> git.ipfire.org Git - thirdparty/systemd.git/blame - FAQ
[PATCH] 036 release
[thirdparty/systemd.git] / FAQ
CommitLineData
b1830e79
GKH
1Frequently Asked Questions about udev
2
3
4Q: What's this udev thing, and what is it trying to do?
5A: Read the OLS 2003 paper about udev, available in the docs/ directory,
6 and at:
7 <http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf>
8 There is also a udev presentation given at OLS 2003 available at:
9 <http://www.kroah.com/linux/talks/ols_2003_udev_talk/>
10
11Q: How is udev related to devfs?
12A: udev works entirely in userspace, using /sbin/hotplug calls that the
13 kernel makes whenever a device is added or removed from the kernel. All
14 naming policy, and permission control is done in userspace. devfs
15 operated from within the kernel.
16
17Q: Why was devfs marked OBSOLETE if udev is not finished yet?
18A: To quote Al Viro (Linux VFS kernel maintainer):
19 - it was determined that the same thing could be done in userspace
20 - devfs had been shoved into the tree in hope that its quality will
21 catch up
22 - devfs was found to have fixable and unfixable bugs
23 - the former had stayed around for many months with maintainer
24 claiming that everything works fine
25 - the latter had stayed, period.
4723bf98 26 - the devfs maintainer/author disappeared and stopped maintaining
b1830e79
GKH
27 the code.
28
29Q: But udev will not automatically load a driver if a /dev node is opened
30 when it is not present like devfs will do.
31A: If you really require this functionality, then use devfs. It is still
32 present in the kernel.
33
10a479f5
GKH
34Q: But wait, I really want udev to automatically load drivers when they
35 are not present but the device node is opened. It's the only reason I
36 like using devfs. Please make udev do this.
37A: No. udev is for managing /dev, not loading kernel drivers.
38
39Q: Oh come on, pretty please. It can't be that hard to do.
40A: Such a functionality isn't needed on a properly configured system. All
41 devices present on the system should generate hotplug events, loading
42 the appropriate driver, and udev will notice and create the
43 appropriate device node. If you don't want to keep all drivers for your
44 hardware in memory, then use something else to manage your modules
45 (scripts, modules.conf, etc.) This is not a task for udev.
46
470e365d
GKH
47Q: But I love that feature of devfs, please?
48A: The devfs approach caused a lot of spurious modprobe attempts as
49 programs probed to see if devices were present or not. Every probe
50 attempt created a process to run modprobe, almost all of which were
51 spurious.
52
10a479f5 53Q: I really like the devfs naming scheme, will udev do that?
b1830e79
GKH
54A: Yes, udev can create /dev nodes using the devfs naming policy. A
55 configuration file needs to be created to map the kernel default names
786f9231 56 to the devfs names. See the initial udev.rules.devfs file in the udev
10a479f5
GKH
57 release. It is the start of such a configuration file. If there are
58 any things missing, please let the udev authors know.
b1830e79
GKH
59
60Q: What kinds of devices does udev create nodes for?
61A: All devices that are shown in sysfs will work with udev. If more
62 support is added for devices to the kernel, udev will automatically
63 start working for them. All block devices are currently supported, and
64 almost all major char devices are supported. Kernel developers are
65 working on adding support for all char devices at this time. See the
66 linux-kernel mailing list for patches and status of these patches.
67
68Q: Will udev remove the limit on the number of anonymous devices?
69A: udev is entirely in userspace. If the kernel supports a greater number
70 of anonymous devices, udev will support it.
71
72Q: Will udev support symlinks?
10a479f5 73A: Yes, It now does. Multiple symlinks per device node too.
b1830e79
GKH
74
75Q: How will udev support changes to device permissions?
76A: On shutdown, udev will save the state of existing device permissions to
77 its database, and then used the on the next boot time.
78
79Q: How will udev handle the /dev filesystem?
80A: /dev can be a ramfs, or a backing filesystem. udev does not care what
81 kind of filesystem it runs on.
82
83Q: How will udev handle devices found before init runs?
84A: udev will be placed in initramfs and run for every device that is found.
85 Work to get this implemented is still underway.
86
166612d7
GKH
87Q: Can I use udev to automount a USB device when I connect it?
88A: Technically, yes, but udev is not intended for this. Projects that do
89 automount hotplugged storage devices are:
90 * Usb-mount http://users.actrix.co.nz/michael/usbmount.html
91 * devlabel http://linux.dell.com/projects.shtml#devlabel
92
93 Alternatively, it is easy to add the following to fstab:
94 /udev/pendrive /pendrive vfat user,noauto 0 0
95
96 This means that users can access the device with:
97 $ mount /pendrive
98 And don't have to be root but will get full permissions on /pendrive.
99 This works even without udev if /udev/pendrive is replaced by /dev/sda1
100
4723bf98
BM
101Q: Are there any security issues that I should be aware of?
102A: When using dynamic device numbers, a given pair of major/minor numbers may
103 point to different hardware over time. If a user has permission to access a
104 specific device node directly and is able to create hard links to this node,
105 he or she can do so to create a copy of the device node. When the device is
106 unplugged and udev removes the device node, the user's copy remains.
107 If the device node is later recreated with different permissions the hard
108 link can still be used to access the device using the old permissions.
109 (The same problem exists when using PAM to change permissions on login.)
110
111 The simplest solution is to prevent the creation of hard links by putting
112 /dev in a separate filesystem (tmpfs, ramfs, ...).
113
b1830e79
GKH
114Q: I have other questions about udev, where do I ask them?
115A: The linux-hotplug-devel mailing list is the proper place for it. The
116 address for it is linux-hotplug-devel@lists.sourceforge.net
117 Information on joining can be found at
118 <https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel>
119 Archives of the mailing list can be found at:
120 <http://marc.theaimsgroup.com/?l=linux-hotplug-devel>
121