Device nodes

Most devices in Linux are represented by device nodes, in accordance with the Unix philosophy that everything is a file (except network interfaces, which are sockets). A device node may refer to a block device or a character device. Block devices are mass storage devices such as SD cards or hard drives. A character device is pretty much anything else, once again with the exception of network interfaces. The conventional location for device nodes is the directory /dev. For example, a serial port may be represented by the device node /dev/ttyS0.

Device nodes are created using the program mknod (short for make node):

mknod <name> <type> <major> <minor>

name is the name of the device node that you want to create, type is either, c for character devices, and b for block. They each have a major number and a minor number which is used by the kernel to route file requests to the appropriate device driver code. There is a list of standard major and minor numbers in the kernel source in Documentation/devices.txt.

You will need to create device nodes for all the devices you want to access on your system. You can do that manually by using the mknod command as I will illustrate here, or you can use one of the device managers mentioned later to create them automatically, at runtime.

You need just two nodes to boot with BusyBox: console and null. The console only needs to be accessible to root, the owner of the device node, so the access permissions are 600. The null device should be readable and writable by everyone, so the mode is 666. You can use the -m option to mknod to set the mode when creating the node. You need to be root to create a device node:

$ cd ~/rootfs
$ sudo mknod -m 666 dev/null c 1 3
$ sudo mknod -m 600 dev/console c 5 1
$ ls -l dev
total 0
crw------- 1 root root 5, 1 Oct 28 11:37 console
crw-rw-rw- 1 root root 1, 3 Oct 28 11:37 null

You delete device nodes by using the standard rm command: there is no rmnod command because, once created, they are just files.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.22.216.59