MAKEDEV(8) Linux Programmer's Manual MAKEDEV(8)
NAME
MAKEDEV - create devices
SYNOPSIS
cd dev; MAKEDEV -V
cd dev; MAKEDEV [ -n ] [ -v ] update
cd dev; MAKEDEV [ -n ] [ -v ] [ -d ] device ...
DESCRIPTION
MAKEDEV is a script 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.
Warning! This man page is not up to date. There are various devices that /sbin/MAKEDEV knows how to create that are not documented in
this man page. Read the script for more information.
OPTIONS
-V Print out version (actually RCS version information) and exit.
-n Do not actually update the devices, just print the actions that would be performed.
-d Delete the devices. The main use for this flag is by MAKEDEV itself.
-v Be verbose. Print out the actions as they are performed. This is the same output as produced by -n.
CUSTOMISATION
Since there is currently no standardisation in what names are used for system users and groups, it is possible that you may need to modify
MAKEDEV to reflect your site's settings. Near the top of the file is a mapping from device type to user, group and permissions (e.g. all
CD-ROM devices are set from the $cdrom variable). If you wish to change the defaults, this is the section to edit.
DEVICES
General Options
update This only works on kernels which have /proc/interrupts (introduced during 1.1.x). This file is scanned to see what devices are cur-
rently configured into the kernel, and this is compared with the previous settings stored in the file called DEVICES. Devices which
are new since then or have a different major number are created, and those which are no longer configured are deleted.
generic
Create a generic subset of devices. This is the standard devices, plus floppy drives, various hard drives, pseudo-terminals, con-
sole devices, basic serial devices, busmice, and printer ports.
std Standard devices. These are: mem - acess 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.
local This simply runs MAKEDEV.local. This is a script that can create any local devices.
Virtual Terminals
console
This creates the devices associated with the console. This is the virtual terminals 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 are
used to generate screen-dumps of the vt (the vcsx is just the text, and vcsax includes the attributes).
Serial Devices
ttyS{0..63}
Serial ports and corresponding dialout device. For device ttySx, there is also the device cuax which is used to dial out with.
This can avoid the need for cooperative locks in simple situations.
cyclades
Dial-in and dial-out devices for the cyclades intelligent I/O serial card. The dial in device is ttyCx and the corresponding dial-
out device is cubx By default devices for 7 lines are created, but this can be changed to 15 by removing the comment.
Pseudo Terminals
pty[p-s]
Each possible argument will create a bank of 16 master and slave pairs. The current 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].
Parallel Ports
lp Standard parallel ports. The devices are created lp0, lp1, and lp2. These correspond to ports at 0x3bc, 0x378 and 0x278. Hence,
on some machines, the first printer port may actually be lp1.
par Alternative to lp. Ports are named parx instead of lpx.
Bus Mice
busmice
The various bus mice devices. This creates the following devices: logimouse (Logitech bus mouse), psmouse (PS/2-style mouse),
msmouse (Microsoft Inport bus mouse) and atimouse (ATI XL bus mouse) and jmouse (J-mouse).
Joystick Devices
js Joystick. Creates js0 and js1.
Disk Devices
fd[0-7]
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 formats 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.
hd[a-d]
AT hard disks. The device hdx provides access to the whole disk, with the partitions 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 oth-
ers 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.
xd[a-d]
XT hard disks. Partitions are the same as IDE disks.
sd[a-h]
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 8 SCSI disks.
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 8 devices loop0 through loop7.
Tape Devices
st[0-7]
SCSI tapes. This creates the rewinding tape device stx and the non-rewinding tape device nstx.
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 sym-
links to rft0 and nrft0 respectively.
CDROM Devices
scd[0-7]
SCSI CD players.
sonycd Sony CDU-31A CD player.
mcd Mitsumi CD player.
cdu535 Sony CDU-535 CD player.
lmscd LMS/Philips CD player.
sbpcd{,1,2,3}
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 controller. sbpcd is a symlink to sbpcd0.
Scanner
logiscan
Logitech ScanMan32 & ScanMan 256.
m105scan
Mustek M105 Handscanner.
ac4096 A4Tek Color Handscanner.
Audio
audio This creates the audio devices used by the sound driver. These include mixer, sequencer, dsp, and audio.
pcaudio
Devices for the PC Speaker sound driver. These are pcmixer. pxsp, and pcaudio.
Miscellaneous
sg Generic SCSI devices. The devices created are 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,
writeable CDROM).
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 BR
/dev/stdin , BR /dev/stdout , and BR /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.
dcf Driver for DCF-77 radio clock.
helloworld
Kernel modules demonstration device. See the modules source.
Network Devices
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 at /proc/net/dev.
SEE ALSO
Linux Allocated Devices, maintained by H. Peter Anvin, <Peter.Anvin@linux.org>.
AUTHOR
Nick Holloway
Linux 14th August 1994 MAKEDEV(8)