Kernel Uevents And Udev; Drivers, Kernel Modules, And Devices - Novell LINUX ENTERPRISE DESKTOP 10 SP2 - DEPLOYMENT GUIDE 08-05-2008 Deployment Manual

Table of Contents

Advertisement

21.2 Kernel uevents and udev

The required device information is exported by the sysfs file system. For every device
the kernel has detected and initialized, a directory with the device name is created. It
contains attribute files with device-specific properties. Every time a device is added or
removed, the kernel sends a uevent to notify udev of the change.
The udev daemon reads and parses all provided rules from the /etc/udev/rules
.d/*.rules files once at start-up and keeps them in memory. If rules files are
changed, added, or removed, the daemon receives an event and updates the in-memory
representation of the rules.
Every received event is matched against the set of provides rules. The rules can add or
change event environment keys, request a specific name for the device node to create,
add symlinks pointing to the node, or add programs to run after the device node is cre-
ated. The driver core uevents are received from a kernel netlink socket.
21.3 Drivers, Kernel Modules, and
Devices
The kernel bus drivers probe for devices. For every detected device, the kernel creates
an internal device structure and the driver core sends a uevent to the udev daemon. Bus
devices identify themselves by a specially-formatted ID, which tells what kind of device
it is. Usually these IDs consist of vendor and product ID and other subsystem-specific
values. Every bus has its own scheme for these IDs, called MODALIAS. The kernel
takes the device information, composes a MODALIAS ID string from it, and sends that
string along with the event. For a USB mouse, it looks like this:
MODALIAS=usb:v046DpC03Ed2000dc00dsc00dp00ic03isc01ip02
Every device driver carries a list of known aliases for devices it can handle. The list is
contained in the kernel module file itself. The program depmod reads the ID lists and
creates the file modules.alias in the kernel's /lib/modules directory for all
currently available modules. With this infrastructure, module loading is as easy as
calling modprobe for every event that carries a MODALIAS key. If modprobe
$MODALIAS is called, it matches the device alias composed for the device with the
464
Deployment Guide

Advertisement

Table of Contents
loading

This manual is also suitable for:

Linux enterprise desktop 10 sp2

Table of Contents