========
Bugfixes.
-The udev daemon will now create /dev/null, /dev/console, /dev/kmsg at
-startup, if they don't exist already.
-
Libudev allows to subscribe to udev events. To prevent unwanted messages
to be delivered, and waking up the subscribing process, a filter can be
installed, to drop messages inside a kernel socket filter. The filters
}
}
-/* create the nodes the we depend on to properly start up */
-static void setup_initial_nodes(struct udev *udev)
-{
- struct udev_device *dev;
-
- dev = udev_device_new_from_subsystem_sysname(udev, "mem", "null");
- if (dev != NULL) {
- udev_node_mknod(dev, "null", makedev(0,0), 0666, 0, 0);
- udev_device_unref(dev);
- }
- dev = udev_device_new_from_subsystem_sysname(udev, "mem", "kmsg");
- if (dev != NULL) {
- udev_node_mknod(dev, "kmsg", makedev(0,0), 0660, 0, 0);
- udev_device_unref(dev);
- }
- dev = udev_device_new_from_subsystem_sysname(udev, "tty", "console");
- if (dev != NULL) {
- udev_node_mknod(dev, "console", makedev(0,0), 0600, 0, 0);
- udev_device_unref(dev);
- }
-}
-
static void startup_log(struct udev *udev)
{
FILE *f;
goto exit;
}
- setup_initial_nodes(udev);
-
/* make sure std{in,out,err} fd's are in a sane state */
fd = open("/dev/null", O_RDWR);
if (fd < 0) {