Friday, August 5, 2011

Linux Device Node

A device node is a special file type represents a device. It is kept under /dev. mknod create a device node. For example,

mknod /dev/xyz1 c 234 0

This create a file xyz1 under /dev. It is a character device (crw-r--r--) with a mojor number of 234 and minor number of 0.

By itself, the device node is just another file in /dev. But we can use it to bind to an installed device driver. When an open() call is excuted with this device node as the path parameter, kernel search for device driver that registered with a major number of 234. This is how kernel associate the driver with our device node.

Minor number is a mechanism for handling multiple devices or subdevices with a single device driver. It is not used by the OS but simply passed over to the driver. What to do with the minor number is entirely up to the driver. For example, the minor number can denote one of the ports on the card managed by the driver.

Device node is usually created by udev rather than manually using the command.

No comments: