MAKEDEV(8)

NAME
MAKEDEV - create devices

SYNOPSIS
cd /dev; ./MAKEDEV [ -n ] [ -v ] [ update ]
cd /dev; ./MAKEDEV [ -n ] [ -v ] [ generic ] [ local ] [ group-keyword ... device ... ]
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.

OPTIONS

-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.

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 currently 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 subset consists of the standard devices, plus floppy drives, various hard drives, CD-ROM drives, pseudo-terminals, console devices, basic serial devices, busmice, audio devices, video framebuffers, printer ports, and some specialized devices. The generic subset varies somewhat according to architecture; see the /dev/MAKEDEV script itself for details.

local
    This simply runs MAKEDEV.local. This is a script that can create any local devices.

DEVICE GROUPS
MAKEDEV creates groups of devices when passed keywords for the group. Each listing below shows the MAKEDEV keyword and then lists the devices which will be created. Many devices can also be specified individually.

STANDARD DEVICES

std Creates this group of standard devices: mem for access to physical memory, kmem for access to kernel virtual memory, null the null device (infinite sink), port for access to I/O ports, zero the null byte source (infinite source), core, a symlink to /proc/kcore (for kernel debugging), full which always returns ENOSPACE on write, random and urandom random byte generators, and tty to access the controlling tty of a process. The loopback disk devices loop0 through loop7 are also created in the std group. These allow you to use a regular file as a block device. A filesystem image can be mounted, and used as though it were a filesystem on a partition or other block device. loop may also be used as a separate keyword to create the 8 loop devices. Finally, the ram group of memory devices is also created by the std keyword (see below).

MEMORY DEVICES

ram This is the keyword used to generate the ramdisk devices ram{0..16} and the ram symlink. This group does not include initrd.

initrd
    Ramdisk which has been pre-initialized by a bootloader. initrd is not created in the ram group; it must be specifically included in the command line if you want it to be created.

cpu or microcode
    Creates the CPU microcode update interface in the cpu/ folder, with devices microcode, and subfolders {0..3} each containing devices msr and cpuid.

rom Creates the rom{0..7} rrom{0..7} flaxh{0..7} and rflash{0..7} flash memory card devices. rrom and rflash devices are read-only.

CONSOLE DEVICES

console
    This keyword creates virtual consoles; tty{0..63} devices, the corresponding vcs and vcsa devices which are used to generate screen-dumps, and the console device itself plus appropriate symlinks. To create the console device alone, use consoleonly. The device tty0 is the currently active virtual console. The console device serves the same function.

PSEUDO TERMINALS

pty This keyword creates the Pseudo-TTY masters pty{a..e,p..z} and corresponding tty{a..e,p..z} devices, along with ptmx. Each possible argument will create a bank of 16 master and slave pairs. The master pseudo-terminals are pty{p..s}{0..9a..f}, and the slaves are tty{p..s}{0..9a..f}.

SERIAL DEVICES

ttyS{0..63}
    Standard serial ports. There is no group keyword, you must specify these individually. However ttyS{0..3} are created under the generic option for most architectures.

cyclades or ttyC
    Creates Cyclades ports ttyC{0..31}.

digi or ttyD
    Creates Digiboard serial card ports ttyD{0..15}.

stallion or ttyE
    Creates Stallion devices ttyE{0..255} and staliomem{0..3}.

computone or ttyF
    Creates CompuTone serial card ports ttyH{0..255} and special devices ip2ipl{0,4,8,12} and ip2stat{1,5,9,13}.

chase or ttyH
    Creates Chase serial card ports ttyH{0..15}.

isdnmodem or ttyI
    Creates isdn4linux virtual modem ports ttyI{0..63}.

isdn-tty
    Also creates isdn4linux virtual modem ports ttyI{0..7}.

isdnbri
    Creates ISDN BRI driver devices isdn{0..63} isdnctrl{0..63} ippp{0..63} and isdninfo.

isdn-io
    Also creates ISDN BRI driver devices isdn{0..7} isdnctrl{0..7} ippp{0..7} and isdninfo. The isdn-ippp keyword can be used separately to create only the ippp{0..7} devices.

ppp Creates a device independent PPP interface.

dcbri
    Creates Spellcaster DataComm/BRI ISDN card devices dcbri{0..3}.

riscom or ttyL
    Creates Riscom serial card ports ttyL{0..15}.

PAM or ttyM
    Creates PAM multimodem (or ISI serial card) ports ttyM{0..15}.

ESP or ttyP
    Creates ESP ports ttyP{0..4}.

rocketport or ttyR
    Creates Rocketport devices ttyR{0..63}.

ttyV
    Creates Comtrol VS-1000 serial controller ports ttyV{0..15}.

specialixIO8 or ttyW
    Creates Specialix IO8+ ports ttyW{0..15}.

specialix or ttyX
    Creates Specialix ports ttyX{0..15}.

i2c Creates i2c{0..7} devices for the I2C bus interface.

tlk Philips SAA5249 Teletext signal decoder {2.6} ports tlk{0..3}.

PARALLEL PORTS

lp  Creates the standard parallel ports lp0, lp1, and lp2 normally used for printers. 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. The same ports are created, but are named par{0..2} instead of lp{0..2}.

parport
    Creates raw parallel ports parport0, parport1, and parport2.

slm Creates the Atari SLM ACSI laser printer (68k/Atari) ports slm{0..3}.

pg  Parallel port generic ATAPI interface (devices pg{0..3}.

paride
    Parallel port IDE disk devices pd{a..d} with 15 partitions on each. Also creates pcd{0..3} and pf{0..3}.

OTHER BUS PORTS

netlink or tap
    Creates NetLink devices route skip fwmonitor and tap{0..15} Ethertap devices. The tapx virtual ethernet device was designed as low level kernel support for Ethernet tunneling. Userland application can write Ethernet frame to /dev/tapX and the kernel will receive this frame from tapX interface. Every frame the kernel writes to a tapX interface can be read by a userland application from the corresponding /dev/tapX device.

enskip
    ENskip kernel encryption package.

qng ComScire Quantum Noise Generator.

ipsec
    The Free S/WAN implementation of IPSEC.

adb On powerpc, creates adb for the Apple Data Bus and adbmouse. On m68k, adb creates the ACSI disk device adb and partitions adb1 through adb15.

hamradio
    Creates the scc{0..7} and bc{0..3} device groups.

comx
    Creates COMX devices comx{0..4}.

irda
    Creates IrCOMM devices (IrDA serial/parallel emulation) ircomm0 ircomm1 irlpt0 and irlpt1.

comedi
    Control and Measurement devices comedi{0..3}.

MOUSE DEVICES

busmice
    This keyword creates the following devices: logibm (Logitech bus mouse), psaux (PS/2-style mouse), inportbm (Microsoft Inport bus mouse) and atibm (ATI XL bus mouse) and jbm (J-mouse).

m68k-mice
    Creates mouse devices for the m68k architecture, including: amigamouse, amigamouse1, atarimouse and adbmouse.

input
    On powerpc, this keyword creates the input folder which groups input devices mice, mouse{0..3}, event{0..3}, and js{0..3} (joystick), and creates these devices inside.

JOYSTICK DEVICES

js  Joystick. Creates js0 and js1.

djs Digital joystick. Creates djs0 and djs1.

USB DEVICES

usb USB is a general purpose I/O bus which can serve many purposes. The usb keyword creates a usb folder, and devices in the folder: lp{0..15} (printer), mouse{0..15} (USB connected mice), ez{0..15} (firmware loaders) scanner{0..15} (scanner interfaces), ttyACM{0..15} and ttyUSB{0..15} (dialout devices), and rio500 the Diamond Rio 500 device.

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 fdx{dqhu}n. The single letter (d, q, hor u) signifies the type of drive: 5.25" Double Density (d), 5.25" Quad Density (q), 5.25" High Density (h) or 3.5" (any model, u). The number n represents the capacity of that format in K. Thus the standard formats are fdxd360, fdxh1200, fdx720, fdx1440, and fdx2880.

    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.

fd{0..7}-bare
    Creates just the autodetecting floppy device specified, without the fixed format devices.

hd{a..l}
    AT (ide) hard disks. The device hdx provides access to the whole disk, with the partitions being hdx{1..63}. For i386, 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). Other architectures may not differentiate partition types. By default, devices for 20 logical partitions are made. The kernel supports up to 63 partitions per device.

    Drives hda and hdb are the two on the primary controller hdc and hdd are the two drives on the secondary controller. These devices can also be used to access IDE CDROMs. Additional devices hd{e..l} can be created.

xd{a..d}
    XT hard disks. Partitions are the same as IDE disks, except only 8 partitions are created.

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, to allow there to be 8 SCSI disks on a system (addresses 0 through 7).

sd{i..z}
    and sd{a..d}{a..z} The kernel (and MAKEDEV) can handle up to 128 SCSI disks (up to sddx). 15 partition devices are created for each.

eda edb
    MCA ESDI hard disk. Partitions are handled the same as hd.

dasd{a..z}
    Direct Access Storage Devices for the s390 architecture. Currently only one device partition is created (for example, dasda1).

ada{a..p}
    ACSI disk (68k/Atari). 15 partitions are created for each.

dac960.{0..7}
    Mylex DAC960 PCI RAID controller. For this device, an rd directory is created. 32 logical devices cxd{0..31} are created for each unit x specified, each with 7 partitions cxd{0..31}p{1..7}. The dac960 keyword will create all 7 units at once.

dpti
    Adaptec I2O RAID and DPT SmartRAID V I2O controllers. Creates 7 devices for handling up to 7 controllers.

ataraid.{0..7}
    Obsolete, device not in current devices.txt. For this device, an ataraid directory is created. dx is created for each unit x specified, and 15 partitions dxp{1..15}. The ataraid keyword will create all 7 units at once.

i2o.hd{a..d}{a..z}
    I2O based harddisk drives. Device nodes are located in the i2o directory. The filename is followed by a number that specifies the partition on each disk. The numbers are handled the same as hd.

ida.{0..7}
    Compaq Intelligent Drive Array. For this device, an ida directory is created. 16 logical devices cxd{0..15} are created for each unit x specified, each with 15 partitions cxd{0..15}p{1..15}. The ida keyword will create the first three units.

cciss.{0..7}
    Compaq Next Generation Drive Array. For this device, a cciss directory is created. 16 logical devices cxd{0..15} are created for each unit x specified, each with 15 partitions cxd{0..15}p{1..15}. The cciss keyword will create the first three units.

md  Creates Metadisk (RAID) disk array with 16 devices.

TAPE DEVICES

st{0..7}
    SCSI tape devices. This creates the rewinding tape device stx and the non-rewinding tape device nstx, for each of modes 0 through 3.

qic QIC-11, -24, -120, and -150 tapes. The devices created are ntpqic11 tpqic11 ntpqic24 tpqic24 ntpqic120 tpqic120 ntpqic150 and tpqic150 tape devices, along with 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 qftx zqftx and rawqftx (rewinding) and nqftx nzqftx nrawqdtx (non-rewinding) are created. For compatibility, devices ftape and nftape are symlinks to qft0 and nqft0 respectively.

ht0 Creates IDE tape devices ht0 and nht0.

pt{0..3}
    Creates parallel port ATAPI tape devices pt{0..3} and npt{0..3}.

CDROM DEVICES

sr or scd or scd-all
    Creates scd{0..16} SCSI CD players and sr{0..16} symlinks for these devices. cdrom is a symlink which can be created by the user to the active CD device. It is not created by MAKEDEV.

pktcdvd
    Provides packet writing devices pktcdvd{0..3} for CD/DVD.

pcd{0..3}
    Parallel port ATAPI CD-ROM devices

sonycd
    Sony CDU-31a CD-ROM

mcd Mitsumi CD-ROM

mcdx
    Obsolete, device not in current devices.txt.

cdu535
    Sony CDU-535 CD-ROM

lmscd
    Philips LMS CM-205 CD-ROM. The newer name for this device is cm205, but MAKEDEV creates only lmscd at this time.

cm206cd
    Philips LMS CM-206 CD-ROM

bpcd
    MicroSolutions BackPack parallel port CD-ROM (Obsolete - use pcd)

sbpcd{0..15}
    Matsushita (Panasonic/SoundBlaster) CD-ROM. Units {0..3} are created with the keyword sbpcd.

aztcd
    Aztech/Orchid/Okano/Wearnes CD-ROM

gscd
    GoldStar CD-ROM

optcd
    Optics Storage CD-ROM

sjcd
    Sanyo CD-ROM

hitcd
    Hitachi CD-ROM

SCANNERS

logiscan
    Logitech ScanMan32 & ScanMan 256.

m105scan
    Mustek M105 Handscanner.

ac4096
    A4Tek Color Handscanner.

AUDIO DEVICES

audio
    This creates the audio devices used by the sound driver. These include mixer mixer{1..3} (Mixer controls), sequencer (Audio sequencer), dsp dsp{1..3} (Digital audio), sndstat (Sound card status information), audioctl (SPARC audio control device) and audio audio{1..3} (Sun-compatible digital audio). MIDI devices are midi00 through midi03, midi{0..3}, rmidi{0..3}, smpte{0..3}. In addition, devices mpu401data and mpu401stat are created.

pcaudio
    Devices for the PC Speaker sound driver. These are pcmixer, pxsp, and pcaudio.

VIDEO DEVICES

fb  Creates framebuffer devices fb{0..7}, fb{0..7}current, fb{0..7}autodetect.

fb{0..7}
    If the framebuffer number x is specified, a group of fbxuser{0..7} devices is created.

3dfx
    is the 3Dfx Voodoo Graphics device.

agpgart
    AGP Graphics Address Remapping Table

video video4linux v4l radio
    Each of these keywords produces the same result: Video capture/overlay devices video{0..63}, Radio devices radio{0..63}, Teletext devices vtx{0..31}, and Vertical blank interrupt devices vbi{0..31}. In addition, the winradio0 and winradio1 devices, and vtx and vttuner devices, and symlinks radio video and vbi are created.

srnd
    miroMEDIA Surround board devices srnd0 and srnd1.

fgrab
    Matrox Meteor frame grabber {2.6}. Creates mmetfgrab, wvisfgrab, iscc0, iscc1, isccctl0, isccctl1, dcxx0, and dcxx1.

MISCELLANEOUS DEVICES

sg or sg-all
    Generic SCSI devices. The devices created are sg0 through sg16. These allow arbitrary commands to be sent to any SCSI device, to query information or control SCSI devices that are not disk, tape or CDROM (for example, scanner or writeable CDROM).

fd  To allow an arbitrary 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 socksys spx (and symlinks nfsd XOR) needed by the IBCS2 emulation.

apm apm_bios Advanced Power Management BIOS device.

dcf Driver for DCF-77 radio clock.

helloworld
    Kernel modules demonstration device. See the modules source.

xfs or arla
    Arla XFS network file system.

capi
    CAPI 2.0 interface ports capi20{01..20}.

ubd User-mode block devices ubd{0..255}.

nb{0..7}
    Network block devices.

raw Creates the raw block device interface raw device, the rawctl symlink, and raw{1..8}.

raw1394
    IEEE 1394 (Firewire).

misc
    This keyword creates all the following devices. You may find the device explanations in other categories in this man page, many under OTHER DEVICES below. logibm, psaux, inportbm, atibm, jbm, amigamouse, atarimouse, sunmouse, amigamouse1, smouse, pc110pad, adbmouse, beep, modreq, watchdog, temperature, hwtrap, exttrp, apm_bios, rtc, openprom, relay8, relay16, msr, pciconf, nvram, hfmodem, led, mergemem, pmu.

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.

OTHER DEVICES

Many of these devices are architecture-specific.

scc Z8530 HDLC driver (HAM radio)

bc  Baycom radio modem (HAM radio)

cfs0 or cfs or coda
    Coda network file system

sunmouse
    Sun mouse

smouse
    Simple serial mouse driver

pc110pad
    IBM PC-110 digitizer pad

vrtpanel
    Vr41xx embedded touch panel

vpcmouse
    Connectix Virtual PC Mouse

beep
    Fancy beep device

modreq
    Kernel module load request {2.6}

watchdog
    Watchdog timer port

temperature
    Machine internal temperature

hwtrap
    Hardware fault trap

exttrp
    External device trap

rtc Real Time Clock

efirtc
    Real Time Clock

openprom
    SPARC OpenBoot PROM

relay8
    Berkshire Products Octal relay card

relay16
    Berkshire Products ISO-16 relay card

msr x86 model-specific registers {2.6}

pciconf
    PCI configuration space

nvram
    Non-volatile configuration RAM

hfmodem
    Soundcard shortwave modem control {2.6}

graphics
    Linux/SGI graphics device

opengl
    Linux/SGI OpenGL pipe

gfx Linux/SGI graphics effects device

lcd Front panel LCD display

led Front panel LEDs

mergemem
    Memory merge device

pmu Macintosh PowerBook power manager

isictl
    MultiTech ISICom serial control

ac  Applicom Intl Profibus card

nwbutton
    Netwinder external button

nwdebug
    Netwinder debug interface

nwflash
    Netwinder flash memory

userdma
    User-space DMA access

smbus
    System Management Bus

lik Logitech Internet Keyboard

ipmo
    Intel Intelligent Platform Management

vmmon
    VMWare virtual machine monitor

tcldrv
    Technology Concepts serial control

specialix_sxctl
    Specialix serial control

specialix_rioctl
    Specialix RIO serial control

smapi or thinkpad
    IBM Thinkpad smapi device, and a symlink thinkpad.

srripc
    QNX4 API IPC manager

usemaclone
    Semaphore clone device

ipmi or ipmikcs
    Intelligent Platform Management

uctrl
    SPARCbook 3 microcontroller

gtrsc
    Gorgy Timing radio clock

cbm Serial CBM bus

jsflash
    JavaStation OS flash SIMM

xsvc
    High-speed shared-mem/semaphore service

vrbuttons
    Vr41xx button input device

toshiba
    Toshiba laptop SMM support

perfctr
    Performance-monitoring counters

intel_rng
    Intel i8x0 random number generator

atomicps
    Atomic shapshot of process state data

irnet
    IrNET device

smbusbios
    SMBus BIOS

ussp_ctl
    User space serial port control

crash
    Mission Critical Linux crash dump facility

nas_xbus
    NAS xbus LCD/buttons access

d7s SPARC 7-segment display

zkshim
    Zero-Knowledge network shim control

sexec
    Signed executable interface

kchuid
    Inter-process chuid control

mptctl
    Message passing technology (MPT) control

button/gulpb
    Transmeta GULP-B buttons

compaq/cpqphpc
    Compaq PCI Hot Plug Controller

compaq/cpqrid
    Compaq Remote InsightDriver

elographics/e2201
    Elographics touchscreen E271-2201

fujitsu/apanel
    Fujitsu/Siemens application panel

i2o/ctl
    I2O configuration manager

impi/bt
    IMPI coprocessor block transfer

impi/smic
    IMPI coprocessor stream interface

input/mouse
    Linux/SGI Irix emulation mouse

input/keyboard
    Linux/SGI Irix emulation keyboard

modems/mwave
    MWave modem firmware upload

mvista/hssdsi
    Montavista PICMG hot swap system driver

mvista/hasi
    Montavista PICMG high availability

net/tun
    TAP/TUN network device

ni/natmotn
    National Instruments Motion

scanners/cuecat
    :CueCat barcode scanner

touchscreen/ucb1x00
    UCB 1x00 touchscreen

touchscreen/mk712
    MK712 touchscreen

video/em8300
    EM8300 DVD decoder control

video/em8300_mv
    EM8300 DVD decoder video

video/em8300_ma
    EM8300 DVD decoder audio

video/em8300_sp
    EM8300 DVD decoder subpicture

watchdogs/{0..3}
    Watchdog devices 0 through 3

SEE ALSO
Linux Allocated Devices, maintained by H. Peter Anvin, <Peter.Anvin@linux.org>, and devices.txt in the Linux kernel source.

AUTHOR
Nick Holloway, rewritten and updated by Chris Tillman