Chapter 25. Makedev syntax documentation

The makedev syntax is used in several places in Buildroot to define changes to be made for permissions, or which device files to create and how to create them, in order to avoid calls to mknod.

This syntax is derived from the makedev utility, and more complete documentation can be found in the package/makedevs/README file.

It takes the form of a space separated list of fields, one file per line; the fields are:

name

type

mode

uid

gid

major

minor

start

inc

count

There are a few non-trivial blocks:

Let’s say you want to change the ownership and permissions of a given file; using this syntax, you will need to write:

/usr/bin/foo f 755 0 0 - - - - -
/usr/bin/bar f 755 root root - - - - -
/data/buz f 644 buz-user buz-group - - - - -
/data/baz f -1 baz-user baz-group - - - - -

Alternatively, if you want to change owner of a directory recursively, you can write (to set UID to foo and GID to bar for the directory /usr/share/myapp and all files and directories below it):

/usr/share/myapp r -1 foo bar - - - - -

On the other hand, if you want to create the device file /dev/hda and the corresponding 15 files for the partitions, you will need for /dev/hda:

/dev/hda b 640 root root 3 0 0 0 -

and then for device files corresponding to the partitions of /dev/hda, /dev/hdaX, X ranging from 1 to 15:

/dev/hda b 640 root root 3 1 1 1 15

Extended attributes are supported if BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES is enabled. This is done by adding a line starting with |xattr after the line describing the file. Right now, only capability is supported as extended attribute.

|xattr

capability

If you want to add the capability cap_sys_admin to the binary foo, you will write :

/usr/bin/foo f 755 root root - - - - -
|xattr cap_sys_admin+eip

You can add several capabilities to a file by using several |xattr lines. If you want to add the capability cap_sys_admin and cap_net_admin to the binary foo, you will write :

/usr/bin/foo f 755 root root - - - - -
|xattr cap_sys_admin+eip
|xattr cap_net_admin+eip