MAKEDEV(8) Linux Programmer's Manual MAKEDEV(8)
MAKEDEV - create devices
cd dev; ./MAKEDEV -V
cd dev; ./MAKEDEV [ -d directory ] [ -c configdir ] [ -m maxdevices ] [-n] [-v] [-i] [-M]
[-S] device ...
MAKEDEV is a program that will create the devices in /dev used to interface with drivers
in the kernel.
Note that programs giving the error ``ENOENT: No such file or directory'' normally means
that the device file is missing, whereas ``ENODEV: No such device'' normally means the
kernel does not have the driver configured or loaded.
-V Print out version and exit.
-n Do not actually update the devices, just print the actions that would be performed.
-M Create symlinks, directories, and sockets belonging to the current user, and print
out the list of devices which would be created in a format which is understood by
-S Do not actually update the devices, just print the actions that would be performed
in a format which can be fed to a shell.
Create the devices under directory instead of the default (usually /dev).
-v Be verbose. Print out the actions as they are performed. This is the same output
as produced by the -n option.
-i Ignore errors parsing configuration files.
Since there is currently no standardization in what names are used for system users and
groups, it is possible that you may need to modify MAKEDEV's configuration files to
reflect your site's settings.
Certain devices are required for minimal functionality. These are:
mem - access to physical memory; kmem - access to kernel virtual memory; null -
null device (infinite sink); port - access to I/O ports; zero - null byte source
(infinite source); core - symlink to /proc/kcore (for kernel debugging); full -
always returns ENOSPACE on write; ram - ramdisk; tty - to access the controlling
tty of a process.
This creates the devices associated with the console. These are the virtual termi-
nals ttyx, where x can be from 0 though 63. The device tty0 is the currently
active VT, and is also known as console. For each VT, there are two devices: vcsx
and vcsax, which can be used to generate screen-dumps of the VT (vcsx is just the
text, and vcsax includes the attributes).
Each possible argument will create a bank of 16 master and slave pairs. The cur-
rent kernel (1.2) is limited to 64 such pairs. The master pseudo-terminals are
pty[p-s][0-9a-f], and the slaves are tty[p-s][0-9a-f].
lp Standard parallel ports. The devices are created lp0, lp1, and lp2.
The various bus mice devices. This creates the following devices: logimouse (Log-
itech bus mouse), psmouse (PS/2-style mouse), msmouse (Microsoft Inport bus mouse)
and atimouse (ATI XL bus mouse) and jmouse (J-mouse).
js Joystick. Creates js0 and js1.
Floppy disk devices. The device fdx is the device which autodetects the format,
and the additional devices are fixed format (whose size is indicated in the name).
The other devices are named as fdxLn. The single letter L identifies the type of
floppy disk (d = 5.25" DD, h = 5.25" HD, D = 3.5" DD, H = 3.5" HD, E = 3.5" ED).
The number n represents the capacity of that format in K. Thus the standard for-
mats are fdxd360, fdxh1200, fdxD720, fdxH1440, and fdxE2880.
For more information see Alain Knaff's fdutils package.
Devices fd0* through fd3* are floppy disks on the first controller, and devices
fd4* through fd7* are floppy disks on the second controller.
AT hard disks. The device hdx provides access to the whole disk, with the parti-
tions being hdx[0-20]. The four primary partitions are hdx1 through hdx4, with the
logical partitions being numbered from hdx5 though hdx20. (A primary partition can
be made into an extended partition, which can hold 4 logical partitions). By
default, only the devices for 4 logical partitions are made. The others can be
made by uncommenting them.
Drives hda and hdb are the two on the first controller. If using the new IDE
driver (rather than the old HD driver), then hdc and hdd are the two drives on the
secondary controller. These devices can also be used to acess IDE CDROMs if using
the new IDE driver.
XT hard disks. Partitions are the same as IDE disks.
sd[a-z], sd[a-c][a-z], sdd[a-x]
SCSI hard disks. The partitions are similar to the IDE disks, but there is a limit
of 11 logical partitions (sdx5 through sdx15). This is to allow there to be 128
loop Loopback disk devices. These allow you to use a regular file as a block device.
This means that images of filesystems can be mounted, and used as normal. This
creates 16 devices loop0 through loop15.
SCSI tapes. This creates the rewinding tape device stx and the non-rewinding tape
qic QIC-80 tapes. The devices created are rmt8, rmt16, tape-d, and tape-reset.
ftape Floppy driver tapes (QIC-117). There are 4 methods of access depending on the
floppy tape drive. For each of access methods 0, 1, 2 and 3, the devices rftx
(rewinding) and nrftx (non-rewinding) are created. For compatability, devices
ftape and nftape are symlinks to rft0 and nrft0 respectively.
SCSI CD players.
sonycd Sony CDU-31A CD player.
mcd Mitsumi CD player.
cdu535 Sony CDU-535 CD player.
lmscd LMS/Philips CD player.
Sound Blaster CD player. The kernel is capable of supporting 16 CDROMs, each of
which is accessed as sbpcd[0-9a-f]. These are assigned in groups of 4 to each con-
troller. sbpcd is a symlink to sbpcd0.
Logitech ScanMan32 & ScanMan 256.
Mustek M105 Handscanner.
ac4096 A4Tek Color Handscanner.
sound This creates the audio devices used by the sound driver. These include mixer,
sequencer, dsp, and audio.
sg Generic SCSI devices. The devices created are sga through sgh and sg0 through sg7.
These allow arbitary commands to be sent to any SCSI device. This allows for
querying information about the device, or controlling SCSI devices that are not one
of disk, tape or CDROM (e.g. scanner, CD-R, CD-RW).
fd To allow an arbitary program to be fed input from file descriptor x, use /dev/fd/x
as the file name. This also creates /dev/stdin, /dev/stdout, and /dev/stderr.
(Note, these are just symlinks into /proc/self/fd).
ibcs2 Devices (and symlinks) needed by the IBCS2 emulation.
apm Devices for power management.
Linux used to have devices in /dev for controlling network devices, but that is no
longer the case. To see what network devices are known by the kernel, look in
Note that the list of devices above is not exhaustive. MAKEDEV can create more
devices nodes. Its aim is to be able to create everything listed in the
devices.txt file distributed with Linux 2.4.
MAKEDEV doesn't actually know anything about devices. It reads all of the information
from files stored in /etc/makedev.d. MAKEDEV will read any and all files in the subdirec-
tory, processing lines in them like so:
[b|c] mode owner group major minor inc count fmt [base]
count devices will be created, with permissions set to mode and owned by owner and
group. The first device will be named fmt, and additional devices will be created
if count is larger than 1. If fmt contains a C-style formatting string, it will be
filled with the sum of base and zero. Subsequent devices will be filled with the
sum of base and n * inc, where n is the order this device is being created in. If
the format string did not already include a format specifier, a "%d" will automati-
cally be appended to it to make this work.
l linkname target
A symbolic link pointing to target named linkname will be created.
a alias value
Any commands that create devices for alias will also include devices that would be
crated for value.
Linux Allocated Devices, maintained by H. Peter Anvin, <Peter.Anvin@linux.org>.
Let's hope not. If we're lucky, any problems we'll find will be confined to the configu-
ration files, which were written by examining the devices.txt file.
Nalin Dahyabhai, based largely on work done by Nick Holloway and Michael K. Johnson.
Linux 26 June 2001 MAKEDEV(8)