NAME
MAKEDEV —
create system and device
special files
SYNOPSIS
MAKEDEV |
[-fMsu]
[-m mknod]
[-p pax]
[-t mtree]
{special | device}
[...] |
DESCRIPTION
MAKEDEV is used to create system and device special files. As
arguments it takes the names of known devices, like
sd0,
or of special targets, like
all or
std,
which create a collection of device special files, or
local,
which invokes
MAKEDEV.local(8) with the
all argument.
The script is in
/dev/MAKEDEV. Devices are created in the
current working directory; in normal use,
MAKEDEV should be
invoked with
/dev as the current working directory.
Supported options are:
-
-
- -f
- Force permissions to be updated on existing devices. This
works only if MAKEDEV invokes
mknod(8); it is not
compatible with the -p, -s, or
-t options.
-
-
- -M
- Create a memory file system, union mounted over the current
directory, to contain the device special files. The memory file system is
created using
mount_tmpfs(8) or
mount_mfs(8), in that
order of preference.
If the -M flag is specified more than once, then
MAKEDEV assumes that it is being invoked from
init(8) to populate a memory
file system for /dev. In this case,
MAKEDEV will also redirect its output to the system
console.
-
-
- -m
mknod
- Force the use of
mknod(8), and specify the
name or path to the mknod(8)
program. [Usually, $TOOL_MKNOD or mknod.]
-
-
- -p
pax
- Force the use of
pax(1), and specify the name or
path to the pax(1) program.
[Usually, $TOOL_PAX or pax.]
-
-
- -s
- Generate an
mtree(8) specfile instead of
creating devices.
-
-
- -t
mtree
- Force the use of
mtree(8), and specify the
name or path to the mtree(8)
program. [Usually, $TOOL_MTREE or mtree.]
-
-
- -u
- Don't re-create devices that already exist.
MAKEDEV has several possible methods of creating device nodes:
- By invoking the
mknod(8) command once for
each device node. This is the traditional method, but it is slow because
each device node is created using a new process.
The -m option forces MAKEDEV to use the
mknod(8) method.
- By internally creating a specfile in a format usable by
mtree(8), and providing the
specfile on standard input to a
pax(1) or
mtree(8) command, invoked
with options that request it to create the device nodes as well as any
necessary subdirectories. This is much faster than creating device nodes
with mknod(8), because it
requires much fewer processes; however, it's not compatible with the
-f option.
The -p or -t options force
MAKEDEV to use the
pax(1) or
mtree(8) methods.
- If the -s option is specified, then
MAKEDEV will not create device nodes at all, but will
output a specfile in a format usable by
mtree(8).
The
-m,
-p,
-s, and
-t flags are mutually exclusive. If none of these flags is
specified, then
MAKEDEV will use
mtree(8),
pax(1), or
mknod(8), in that order of
preference, depending on which commands appear to be available and usable. In
normal use, it's expected that
mtree(8) will be available, so it
will be chosen. If
MAKEDEV is invoked by
init(8), it's expected that
mtree(8) will not be available,
but
pax(1) may be available.
The special targets supported on
NetBSD are:
- all
- Makes all known devices, including local devices. Tries to
make the 'standard' number of each type.
- init
- A set of devices that is used for MFS /dev by init. May be
equal to ``all''.
- floppy
- Devices to be put on install floppies
- ramdisk
- Devices to be put into INSTALL kernel ramdisks.
- std
- Standard devices
- local
- Configuration specific devices
- lua
- Lua device
- wscons
- Make wscons devices
- usbs
- Make USB devices
- isdns
- Make ISDN devices
Please note that any hash marks (“#”) in the following list of
supported device targets must be replaced by digits when calling
MAKEDEV:
-
-
- Tapes:
-
- st#
- SCSI tapes, see
st(4)
- wt#
- QIC-interfaced (e.g. not SCSI) 3M cartridge tape, see
wt(4)
- ht#
- MASSBUS TM03 and TU??, see
vax/ht(4)
- mt#
- MSCP tapes (e.g. TU81, TK50), see
vax/mt(4)
- tm#
- UNIBUS TM11 and TE10 emulations (e.g. Emulex TC-11),
see vax/tm(4)
- ts#
- UNIBUS TS11, see
vax/ts(4)
- ut#
- UNIBUS TU45 emulations (e.g. si 9700), see
vax/ut(4)
- uu#
- TU58 cassettes on DL11 controller, see
vax/uu(4)
-
-
- Disks:
-
- dk#
- Wedge disk slices, see
dk(4)
- ccd#
- Concatenated disk devices, see
ccd(4)
- cd#
- SCSI or ATAPI CD-ROM, see
cd(4)
- cgd#
- Cryptographic disk devices, see
cgd(4)
- raid#
- RAIDframe disk devices, see
raid(4)
- sd#
- SCSI disks, see
sd(4)
- wd#
- ``winchester'' disk drives (ST506,IDE,ESDI,RLL,...),
see wd(4)
- bmd#
- Nereid bank memory disks, see
x68k/bmd(4)
- ed#
- IBM PS/2 ESDI disk devices, see
edc(4)
- fd#
- ``floppy'' disk drives (3 1/2", 5 1/4"), see
amiga/fdc(4),
sparc64/fdc(4),
x86/fdc(4)
- fss#
- Files system snapshot devices, see
fss(4)
- gdrom#
- Dreamcast ``gigadisc'' CD-ROM drive, see
dreamcast/gdrom(4)
- hk#
- UNIBUS RK06 and RK07, see
vax/hk(4)
- hp#
- MASSBUS RM??, see
vax/hp(4)
- ld#
- Logical disk devices (e.g., hardware RAID), see
ld(4)
- mcd#
- Mitsumi CD-ROM, see
mcd(4)
- md#
- Memory pseudo-disk devices, see
md(4)
- ofdisk#
- OpenFirmware disk devices
- ra#
- MSCP disks (RA??, RD??)
- rb#
- 730 IDC w/ RB80 and/or RB02
- rd#
- HDC9224 RD disks on VS2000, see
hp300/rd(4)
- rl#
- UNIBUS RL02, see
vax/rl(4)
- rx#
- MSCP floppy disk (RX33/50/...)
- up#
- Other UNIBUS devices (e.g. on Emulex SC-21V
controller), see
vax/up(4)
- vnd#
- ``file'' pseudo-disks, see
vnd(4)
- xbd#
- Xen virtual disks, see
xbd(4)
- xd#
- Xylogic 753/7053 disks, see
sparc/xd(4)
- xy#
- Xylogic 450/451 disks, see
sparc/xy(4)
-
-
- Pointing devices:
-
- wsmouse#
- wscons mouse events, see
wsmouse(4)
- lms#
- Logitech bus mouse, see
i386/lms(4)
- mms#
- Microsoft bus mouse, see
dreamcast/mms(4),
i386/mms(4)
- qms#
- ``quadrature mouse'', see
acorn32/qms(4)
- pms#
- PS/2 mouse
- mouse
- Mouse (provides events, for X11)
-
-
- Keyboard devices:
-
- wskbd#
- wscons keyboard events, see
wskbd(4)
- kbd
- Raw keyboard (provides events, for X11), see
sparc/kbd(4),
sun2/kbd(4),
sun3/kbd(4)
- kbdctl
- Keyboard control
-
-
- Terminals/Console ports:
-
- tty[01]#
- Standard serial ports, see
tty(4)
- tty0#
- SB1250 (``sbscn'') serial ports (sbmips), see
tty(4)
- ttyE#
- wscons - Workstation console (``wscons'') glass-tty
emulators
- ttyCZ?
- Cyclades-Z multiport serial boards. Each ``unit'' makes
64 ports., see cz(4)
- ttyCY?
- Cyclom-Y multiport serial boards. Each ``unit'' makes
32 ports., see cy(4)
- ttye#
- ITE bitmapped consoles, see
amiga/ite(4)
- ttyv0
- pccons
- ttyC?
- NS16550 (``com'') serial ports
- ttyS#
- SA1110 serial port (hpcarm)
- ttyTX?
- TX39 internal serial ports (hpcmips)
- ttyB?
- DEC 3000 ZS8530 (``scc'') serial ports (alpha), see
scc(4)
- ttyA#
- Mfc serial ports (amiga)
- ttyB#
- Msc serial ports (amiga)
- ttyC#
- Com style serial ports (DraCo, HyperCom) (amiga) On the
DraCo, units 0 and 1 are the built-in ``modem'' and ``mouse'' ports,
if configured.
- ttyA0
- 8530 Channel A (formerly ser02) (atari)
- ttyA1
- 8530 Channel B (formerly mdm02) (atari)
- ttyB0
- UART on first 68901 (formerly mdm01) (atari)
- ixpcom
- IXP12x0 COM ports
- epcom
- EP93xx COM ports
- plcom
- ARM PL01[01] serial ports
- wmcom
- EPOC Windermere COM ports
- ttyM?
- HP200/300 4 port serial mux interface (hp300)
- ttya
- ``ttya'' system console (luna68k)
- ttyb
- Second system serial port (luna68k)
- tty#
- Onboard serial ports (mvme68k) On the mvme147 these
are: ttyZ1, ttyZ2 and ttyZ3. On the mvme167, and '177: ttyC1, ttyC2
and ttyC3. Note that tty[CZ]0 is grabbed by the console device so is
not created by default, see
tty(4)
- dc#
- PMAX 4 channel serial interface (kbd, mouse, modem,
printer)
- scc#
- 82530 serial interface (pmax), see
scc(4)
- ttyZ#
- Zilog 8530 (``zstty'') serial ports, see
zstty(4)
- tty[abcd]
- Built-in serial ports (sparc)
- tty#
- Z88530 serial controllers (sparc64), see
tty(4)
- ttyh#
- SAB82532 serial controllers (sparc64), see
sparc64/sab(4)
- tty[a-j]
- Built-in serial ports (sun2, sun3)
- ttyC?
- pccons (arc)
- dz#
- UNIBUS DZ11 and DZ32 (vax), see
emips/dz(4),
vax/dz(4)
- dh#
- UNIBUS DH11 and emulations (e.g. Able DMAX, Emulex
CS-11) (vax), see
vax/dh(4)
- dmf#
- UNIBUS DMF32 (vax), see
vax/dmf(4)
- dhu#
- UNIBUS DHU11 (vax), see
vax/dhu(4)
- dmz#
- UNIBUS DMZ32 (vax), see
vax/dmz(4)
- dl#
- UNIBUS DL11 (vax), see
vax/dl(4)
- xencons
- Xen virtual console
-
-
- Terminal multiplexors:
-
- dc#
- 4 channel serial interface (keyboard, mouse, modem,
printer)
- dh#
- UNIBUS DH11 and emulations (e.g. Able DMAX, Emulex
CS-11), see
vax/dh(4)
- dhu#
- UNIBUS DHU11, see
vax/dhu(4)
- dl#
- UNIBUS DL11, see
vax/dl(4)
- dmf#
- UNIBUS DMF32, see
vax/dmf(4)
- dmz#
- UNIBUS DMZ32, see
vax/dmz(4)
- dz#
- UNIBUS DZ11 and DZ32, see
emips/dz(4),
vax/dz(4)
- scc#
- 82530 serial interface, see
scc(4)
-
-
- Call units:
-
- dn#
- UNIBUS DN11 and emulations (e.g. Able Quadracall), see
vax/dn(4)
-
-
- Pseudo terminals:
-
- ptm
- Pty multiplexor device, and pts directory, see
ptm(4)
- pty#
- Set of 16 master and slave pseudo terminals, see
pty(4)
- opty
- First 16 ptys, to save inodes on install media
- ipty
- First 2 ptys, for install media use only
-
-
- Printers:
-
- arcpp#
- Archimedes parallel port
- lpt#
- Stock lp, see
lpt(4),
acorn32/lpt(4),
mvme68k/lpt(4),
x86/lpt(4)
- lpa#
- Interruptless lp
- par#
- Amiga motherboard parallel port
- cpi#
- Macintosh Nubus CSI parallel printer card, see
mac68k/cpi(4)
-
-
- USB devices:
-
- usb#
- USB control devices, see
usb(4)
- uhid#
- USB generic HID devices, see
uhid(4)
- ulpt#
- USB printer devices, see
ulpt(4)
- ugen#
- USB generic devices, see
ugen(4)
- urio#
- USB Diamond Rio 500 devices, see
urio(4)
- uscanner#
- USB scanners, see
uscanner(4)
- ttyHS#
- USB Option N.V. modems
- ttyU#
- USB modems, see
ucom(4)
- ttyY#
- USB serial adapters
-
-
- ISDN devices:
-
- isdn
- Communication between userland isdnd and kernel, see
isdn(4)
- isdnctl
- Control device, see
isdnctl(4)
- isdnbchan#
- Raw b-channel access, see
isdnbchan(4)
- isdntel#
- Telephony device, see
isdntel(4)
- isdnteld#
- Telephony dialout device
- isdntrc#
- Trace device, see
isdntrc(4)
-
-
- Video devices:
-
- bwtwo#
- Monochromatic frame buffer, see
sparc/bwtwo(4),
sun2/bwtwo(4),
sun3/bwtwo(4)
- cgtwo#
- 8-bit color frame buffer, see
sparc/cgtwo(4),
sun3/cgtwo(4)
- cgthree#
- 8-bit color frame buffer, see
sparc/cgthree(4)
- cgfour#
- 8-bit color frame buffer, see
sparc/cgfour(4),
sun3/cgfour(4)
- cgsix#
- Accelerated 8-bit color frame buffer, see
sparc/cgsix(4)
- cgeight#
- 24-bit color frame buffer, see
sparc/cgeight(4)
- etvme
- Tseng et-compatible cards on VME (atari)
- ik#
- UNIBUS interface to Ikonas frame buffer, see
vax/ik(4)
- leo
- Circad Leonardo VME-bus true color (atari)
- ps#
- UNIBUS interface to Picture System 2, see
vax/ps(4)
- qv#
- QVSS (MicroVAX) display
- tcx#
- Accelerated 8/24-bit color frame buffer, see
sparc/tcx(4)
-
-
- Maple bus devices:
-
- maple
- Maple bus control devices, see
dreamcast/maple(4)
- mlcd#
- Maple bus LCD devices, see
dreamcast/mlcd(4)
- mmem#
- Maple bus storage devices, see
dreamcast/mmem(4)
-
-
- IEEE1394 bus devices:
-
- fw#
- IEEE1394 bus generic node access devices
- fwmem#
- IEEE1394 bus physical memory of the remote node access
devices
-
-
- Special purpose devices:
-
- ad#
- UNIBUS interface to Data Translation A/D converter, see
vax/ad(4)
- agp#
- AGP GART devices, see
agp(4)
- altq
- ALTQ control interface, see
altq(4)
- amr#
- AMI MegaRaid control device, see
amr(4)
- apm
- Power management device, see
i386/apm(4)
- audio#
- Audio devices, see
audio(4)
- bell#
- OPM bell device (x68k)
- bktr
- Brooktree 848/849/878/879 based TV cards, see
bktr(4)
- bpf
- Packet filter, see
bpf(4)
- bthub
- Bluetooth Device Hub control interface, see
bthub(4)
- cfs#
- Coda file system device
- ch#
- SCSI media changer, see
ch(4)
- cir#
- Consumer IR, see
cir(4)
- clockctl
- Clock control for non root users, see
clockctl(4)
- cpuctl
- CPU control
- crypto
- Hardware crypto access driver, see
crypto(4)
- dmoverio
- Hardware-assisted data movers, see
dmoverio(4)
- dpt#
- DPT/Adaptec EATA RAID management interface, see
dpt(4)
- dpti#
- DPT/Adaptec I2O RAID management interface, see
dpti(4)
- drm#
- Direct Rendering Manager interface, see
drm(4)
- dtv#
- Digital TV interface, see
dtv(4)
- fb#
- PMAX generic framebuffer pseudo-device
- fd
- File descriptors
- grf#
- Graphics frame buffer device, see
amiga/grf(4)
- hdaudio#
- High Definition audio control device, see
hdaudio(4)
- hdmicec#
- HDMI CEC devices
- hil
- HP300 HIL input devices, see
hil(4)
- icp
- ICP-Vortex/Intel RAID control interface, see
icp(4)
- iic#
- IIC bus device, see
iic(4)
- io
- X86 IOPL access for COMPAT_10, COMPAT_FREEBSD, see
hppa/io(4),
i386/io(4)
- iop#
- I2O IOP control interface, see
iop(4)
- ipl
- IP Filter
- irframe#
- IrDA physical frame, see
irframe(4)
- ite#
- Terminal emulator interface to HP300 graphics devices,
see amiga/ite(4)
- joy#
- Joystick device, see
joy(4)
- kttcp
- Kernel ttcp helper device, see
kttcp(4)
- lockstat
- Kernel locking statistics
- magma#
- Magma multiport serial/parallel cards, see
sparc/magma(4)
- midi#
- MIDI, see
midi(4)
- mfi#
- LSI MegaRAID/MegaSAS control interface, see
mfi(4)
- mlx#
- Mylex DAC960 control interface, see
mlx(4)
- mly#
- Mylex AcceleRAID/eXtremeRAID control interface, see
mly(4)
- np#
- UNIBUS Ethernet co-processor interface, for
downloading., see
vax/np(4)
- npf
- NPF packet filter
- nsmb#
- SMB requester, see
nsmb(4)
- nvme#
- Non-Volatile Memory Host Controller Interface device
driver, see nvme(4)
- nvme#ns*
- Non-Volatile Memory namespace
- openfirm
- OpenFirmware accessor
- pad#
- Pseudo-audio device driver, see
pad(4)
- pci#
- PCI bus access devices, see
pci(4)
- pf
- PF packet filter
- putter
- Pass-to-Userspace Transporter
- px#
- PixelStamp Xserver access, see
px(4)
- radio#
- Radio devices, see
radio(4)
- random
- Random number generator, see
rnd(4)
- rtc#
- RealTimeClock, see
atari/rtc(4),
evbppc/rtc(4),
hp300/rtc(4)
- satlink#
- PlanetConnect satellite receiver driver
- scsibus#
- SCSI busses, see
scsi(4)
- se#
- SCSI Ethernet, see
se(4)
- ses#
- SES/SAF-TE SCSI Devices, see
ses(4)
- speaker
- PC speaker, see
speaker(4)
- sram
- Battery backuped memory (x68k)
- ss#
- SCSI scanner, see
ss(4)
- stic#
- PixelStamp interface chip
- sysmon
- System Monitoring hardware, see
envsys(4)
- tap#
- Virtual Ethernet device, see
tap(4)
- tun#
- Network tunnel driver, see
tun(4)
- twa
- 3ware Apache control interface, see
twa(4)
- twe
- 3ware Escalade control interface, see
twe(4)
- uk#
- Unknown SCSI device, see
uk(4)
- veriexec
- Veriexec fingerprint loader, see
veriexec(4)
- video#
- Video capture devices, see
video(4)
- view#
- Generic interface to graphic displays (Amiga)
- wsfont#
- Console font control, see
wsfont(4)
- wsmux#
- wscons event multiplexor, see
wsmux(4)
- xenevt
- Xen event interface
-
-
- iSCSI communication
devices
-
- iscsi#
- ISCSI driver and /sbin/iscsid communication
-
-
- Trusted Computing
devices
-
- tpm
- Trusted Platform Module, see
tpm(4)
-
-
- Debugging and tracing
-
- dtrace
- Dynamic tracing framework
ENVIRONMENT
The following environment variables affect the execution of
MAKEDEV:
-
-
MAKEDEV_AS_LIBRARY
- If this is set, then MAKEDEV will define
several shell functions and then return, ignoring all its command line
options and arguments. This is used to enable
MAKEDEV.local(8) to
use the shell functions defined in MAKEDEV.
FILES
- /dev
- special device files directory
- /dev/MAKEDEV
- script described in this man page
- /dev/MAKEDEV.local
- script for site-specific devices
DIAGNOSTICS
If the script reports an error that is difficult to understand, you can get more
debugging output by using
sh -x
MAKEDEV argument.
SEE ALSO
config(1),
pax(1),
intro(4),
diskless(8),
init(8),
MAKEDEV.local(8),
mknod(8),
mount_mfs(8),
mount_tmpfs(8),
mtree(8)
HISTORY
The
MAKEDEV command appeared in
4.2BSD. The
-f,
-m, and
-s options were added in
NetBSD 2.0. The
-p,
-t, and
-M options were added in
NetBSD 5.0. The ability to be used as a function
library was added in
NetBSD 5.0.
BUGS
The
-f option is not compatible with the use of
mtree(8) or
pax(1).
NOTES
Not all devices listed in this manpage are supported on all platforms.
This man page is generated automatically from the same sources as
/dev/MAKEDEV, in which the device files are not always
sorted, which may result in an unusual (non-alphabetical) order.
In order to allow a diskless
NetBSD client to obtain its
/dev directory from a file server running a foreign
operating system, one of the following techniques may be useful to populate a
directory of device nodes on the foreign server:
- If the foreign server is sufficiently similar to
NetBSD, run MAKEDEV in an
appropriate directory of the foreign server, using the
-m flag to refer to a script that converts from command
line arguments that would be usable with the
NetBSD
mknod(8) command to the
equivalent commands for the foreign server.
- Run MAKEDEV with the
-s flag to generate an
mtree(8) specification file;
this can be done on any host with a POSIX-compliant shell and a few
widely-available utilities. Use the
pax(1) command with the
-w -M flags to convert the
mtree(8) specification file
into an archive in a format that supports device nodes (such as
ustar format); this can be done on a
NetBSD host, or can be done in a cross-build
environment using TOOLDIR/bin/nbpax.
Finally, use appropriate tools on the foreign server to unpack the archive
and create the device nodes.