MAKEDEV(8)              NetBSD System Manager's Manual              MAKEDEV(8)

NAME
     MAKEDEV -- create system and device special files

SYNOPSIS
     MAKEDEV [-fMs] [-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 work-
     ing 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(1) 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.]

     MAKEDEV has several possible methods of creating device nodes:

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

     o   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) com-
         mand, 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.

     o   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 avail-
     able.

     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
     wscons    Make wscons devices
     usbs      Make USB devices
     isdns     Make ISDN devices

     Please note that any hash marks (``#'') in the following list of sup-
     ported 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:
         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), i386/fdc(4), sparc64/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
         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 emu-
                     lators
         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), hp300/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
         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 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 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), i386/lpt(4),
                     mvme68k/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)
         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
         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)
         fb#         PMAX generic framebuffer pseudo-device
         fd          File descriptors
         grf#        Graphics frame buffer device, see amiga/grf(4),
                     hp300/grf(4)
         hil         HP300 HIL input devices, see hp300/hil(4)
         icp         ICP-Vortex/Intel RAID control interface, see icp(4)
         iic#        IIC bus device
         io          X86 IOPL access for COMPAT_10, COMPAT_FREEBSD, see
                     hp700/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), hp300/ite(4)
         joy#        Joystick device, see joy(4)
         kttcp       Kernel ttcp helper device, see kttcp(4)
         lkm         Loadable kernel modules interface, see lkm(4)
         lockstat    Kernel locking statistics
         magma#      Magma multiport serial/parallel cards, see sparc/magma(4)
         midi#       MIDI, see midi(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)
         nsmb#       SMB requester, see nsmb(4)
         openfirm    OpenFirmware accessor
         pad#        Pseudo-audio device driver, see pad(4)
         pci#        PCI bus access devices, see pci(4)
         pf          PF packet filter
         pow#        Power management device (x68k), see x68k/pow(4)
         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    Verified executable fingerprint loader, see veriexec(4)
         video#      Video capture devices, see video(4)
         view#       Generic interface to graphic displays (Amiga)
         vmegen#     Generic VME access
         wsfont#     Console font control, see wsfont(4)
         wsmux#      wscons event multiplexor, see wsmux(4)
         xenevt      Xen event interface

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 argu-
             ments.  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), init(1), pax(1), intro(4), MAKEDEV.local(8), diskless(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 follow-
     ing techniques may be useful to populate a directory of device nodes on
     the foreign server:

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

     o   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 envi-
         ronment using TOOLDIR/bin/nbpax.  Finally, use apropriate tools on
         the foreign server to unpack the archive and create the device nodes.

NetBSD 5.0_STABLE              September 6, 2008             NetBSD 5.0_STABLE
