T H E   L I N U X   D E V I C E   L I S T

   maintained by rick@ee.uwm.edu (Rick Miller, Linux Device Registrar)

                    Last revised:  February 20, 1993

This is a list of the device names, along with Major and minor numbers,
which the Linux kernel may currently recognize.  I say "may" because some
of them may require patches to your kernel, others must be configured-in
using the Linux kernel's "make config" routine before compiling.

Many thanks to all the folks that have gone to such trouble to write the
drivers for the devices listed here.  I hope this list helps you folks!

	IF YOU WANT ANY CHANGES OR ADDITIONS TO THIS LIST, *TELL ME*!

	DEVICES NOT LISTED HERE SHOULD USE MAJOR NUMBERS *ABOVE 127*
	UNTIL ALLOCATED A MORE PERMANENT NUMBER IN THE LOWER RANGE.
	(I suggest using a more-or-less random number to avoid the
	 chance of collisions with any other experimental drivers.)

	TO HAVE MAJOR/MINOR NUMBERS ALLOCATED (OFICIALLY) FOR
	YOUR DEVICE DRIVER, SEND E-MAIL TO:  RICK@EE.UWM.EDU

Majors:
 0.  Unnamed .	(unknown) ....	for proc-fs, NFS clients, etc.
 1.  Memory ..	(character) ..	ram, mem, kmem, null, port, zero, core
 2.  Floppy ..	(block) ......	fd[0-1]<[dhDH]{360,720,1200,1440}>
 3.  AT-Disk .	(block) ......	hd[a-d]<[0-8]>
 4.  Tty .....	(character) ..	tty's and pty's
 5.  tty .....	(character) ..	tty, cua[0-63]
 6.  Lp ......	(character) ..	lp[0-2]
 7.  Tape? ...	(block) ......	t[0-?] (reserved for Non-SCSI tape drives)
 8.  SCSI-Disk	(block) ......	sd[a-h]<[0-8]>
 9.  SCSI-Tape	(character) ..	<n>st[0-1] or <n>rmt[0-1]
10.  Mouse	(character) ..	logibm, psaux, inportbm, atibm, (mouse)
11.  CD-ROM ..	(block) ......	scd[0-1]
12.  Loop? ...  (block) ......  loop[0-1]
12.  QIC-tape?  (character) ..  rmt{8,16}, tape<{-d,-reset}>
13.  XT-disk .  (block) ......  xd[a-b]<[0-8]>
14.  Audio ...  (character) ..  audio, dsp, midi, mixer, sequencer
15.  Joystick   (?) ..........  js0, js1
16.  Socket ..  (character) ..  net, arp
17.  AF_UNIX .  (character) ..  unix
18.  AF_INET .  (character) ..  inet, ip, icmp, tcp, udp
19.  "WE"-drv   (character) ..  we[0-3]
20.  "DP8390"   (character) ..  wd[0-3], ec[0-3], ne[0-3]

Breakdown of minors by Majors:
------------------------------
 0.  Unnamed .	(unknown) ....	for proc-fs, NFS clients, etc.
	Minors?

 1.  Memory ..	(character) ..	ram, mem, kmem, null, port, zero
	0.  /dev/ram:  a BLOCK device (RAM-disk)
	1.  /dev/mem
	2.  /dev/kmem
	3.  /dev/null
	4.  /dev/port
	5.  /dev/zero
	6.  /dev/core:  like /dev/mem, but in "core"-file format for gdb

 2.  Floppy ..	(block) ......	fd[0-1]<[dhDH]{360,720,1200,1440}>
	Minors are [drive + [4 * type]] where drive 0-3 == A:-D: (floppy)
	and type is:	0: Autodetect		4: 720k on 3.5" DD
			1: 360k on 5.25" DD	5: 360k on 5.25" HD
			2: 1.2M on 5.25" HD	6. 720k on 5.25" HD
			3: 360k on 3.5" DD	7. 1.44M on 3.5" HD

	0. /dev/fd0:  Autodetected first floppy.
	1. /dev/fd1:  Autodetected second floppy.
	2. /dev/fd2:  Autodetected third floppy.
	3. /dev/fd3:  Autodetected fourth floppy.
	4. /dev/fd0d360:  360k on 5.25" DD in first drive
	5. /dev/fd1d360:  360k on 5.25" DD in second drive
		(You can work out the rest of the intermediates...)
	8. /dev/fd0h1200:  1.2M on 5.25" HD in first drive
	12. /dev/fd0D360 (/dev/fd0H360):  360k on 3.5" DD in first drive
	16. /dev/fd0D720 (/dev/fd0H720):  720k on 3.5" DD in first drive
	20. /dev/fd0h360:  360k on 5.25" HD in first drive
	24. /dev/fd0h720:  720k on 5.25" HD in first drive
	28. /dev/fd0H1440:  1.44M on 3.5" HD in first drive

     Naming goes like this:
	fd[drive][media][size]
	 where: [drive]=0-3:  Corresponds to DOS's "A:"-"D:".
		[media]={d,h,D,H}:  d=Double Density 5.25" diskette
				    h=High Density 5.25" diskette
				    D=Double Density 3.5" diskette
				    H=High Density 3.5" diskette
		[size]={360,720,1200,1440} kilobytes.

     Floppies are assumed to be double-sided (DS), and
	drives are assumed to be high-density devices.

 3.  AT-Disk .	(block) ......	hd[a-d]<[0-8]>
     (For IDE, MFM, and RLE drives and controllers.)
      On the first AT controller card:
	0.  /dev/hda (/dev/hda0):  The whole first HD, including its MBR.
	1-4.  /dev/hda{1-4}:  Primary partitions on the first hard drive.
	5-8.  /dev/hda{5-8}:  Extended partitions on the first hard drive.
	64.  /dev/hdb (/dev/hdb0):  The whole second HD, including its MBR.
	65-68.  /dev/hdb{1-4}:  Primary partitions on the second hard drive.
	69-72.  /dev/hdb{5-8}:  Extended partitions on the second hard drive.
      On the second AT controller card:
	128.  /dev/hdc (/dev/hdc0):  The whole third HD, including its MBR.
	129-132.  /dev/hdc{1-4}:  Primary partitions on the third hard drive.
	133-136.  /dev/hdc{5-8}:  Extended partitions on the third hard drive.
	192.  /dev/hdd (/dev/hdd0):  The whole fourth HD, including its MBR.
	193-196.  /dev/hdd{1-4}:  Primary partitions on the fourth hard drive.
	197-200.  /dev/hdd{5-8}:  Extended partitions on the fourth hard drive.

	Notes:	BE *VERY* CAREFUL WITH the four "whole drive" devices (hda,
		hdb, hdc, and hdd)!!  These four devices embody the *entire*
		*drive*, not just one partition.  The only things that use
		them are things that need to read/change the partition table
		(like fdisk).

		Linux doesn't order anything.  It perceives partitions in the
		order in which they appear in the partition table.  Thus,
		/dev/hd?1 may follow /dev/hd?2 in the cylinder numbering.

		The names of the hard drives are not the same as under Minix.

 4.  Tty .....	(character) ..	tty's and pty's
	0.  /dev/tty0:  This is the currently active Virtual Console.
	1-63.  /dev/tty[1-63]:  Specific virtual consoles.
	64-127.  /dev/ttyS[0-63]:  Serial ports (dial-in mode).
	128-191.  /dev/pty[p-s][0-f]:  PTY Masters.
	192-255.  /dev/tty[p-s][0-f]:  PTY Slaves. ([0-f]=0123456789abcdef)

	Notes:  There are several constants set in the kernel sources which
		can be changed to compile a more customized kernel.  They're
		found in [/usr/src]/linux/include/linux/tty.h:

			NR_CONSOLES	The number of virtual consoles.
			NR_SERIALS	The number of serial lines.

 5.  tty .....	(character) ..	tty, cua[0-63]
	0.  /dev/tty:  the tty that owns the process calling it.
	64-127.  /dev/cua[0-63]:  Serial ports (dial-out mode).

 6.  Lp ......	(character) ..	lp[0-2]
     Parallel (printer) ports.  (Increasable in include/linux/lp.h)
	0.  /dev/lp0
	1.  /dev/lp1:  Same as MS-DOS's "LPT1:" on my machine...
	2.  /dev/lp2

	Notes:	The number of line printers is defined by LP_NO which is
		found in [/usr/src]/linux/include/lp.h.

		Even if you only have one printer port, Linux may still call
		it /dev/lp1 (rather than /dev/lp0).  Watch during boot-up to
		see how it recognizes your printer port.

 7.  Tape ....	(block) ......	t[0-?] (reserved for Non-SCSI tape drives)
	This one's getting old.  No minor numbers are yet assigned.
	It's not even in the source code.  Maybe it never will be...

 8.  SCSI-Disk	(block) ......	sd[a-h]<[0-8]>
	Minors numbers are ((16 * Drive) + Partition)
	where
	  Drive is the number of the physical drive in order of detection
	and
	  Partition is as follows:
		0   is the whole drive
		1-4 are the DOS "primary" partitions
		5-15 are the DOS "extended" (or "logical") partitions, so...

	0.  /dev/sda (/dev/sda0):  The first (detected) SCSI drive.
	1-4.  /dev/sda[1-4]:  Primary partitions on the first SCSI drive.
	5-15.  /dev/sda[5-15]:  Extended partitions on the first SCSI drive.
	16.  /dev/sdb (/dev/sdb0):  The second (detected) SCSI drive.
	17-20.  /dev/sdb[1-4]:  Primary partitions on the second drive.
	21-31.  /dev/sdb[5-15]:  Extended partitions on the second drive.
	32.  /dev/sdc (/dev/sdc0):  The third (detected) SCSI drive.
	...and so on.

 9.  SCSI-Tape	(character) ..	<n>st[0-1] or <n>rmt[0-1]
	0.  /dev/st0:  First (detected) SCSI tape drive, rewind-on-close.
	1.  /dev/st1:  Second (detected) SCSI tape drive, rewind-on-close.
	128.  /dev/nst0:  First (detected) SCSI tape, *no* rewind-on-close.
	129.  /dev/nst1:  Second (detected) SCSI tape, *no* rewind-on-close.

10.  Mouse	(character) ..	logibm, psaux, inportbm, atibm, (mouse)
     (MGR may require that /dev/mouse be linked to one of these...)
		NOTE THE CHANGES TO DIFFERENTIATE MOUSE TYPES!
		(Please implement these in the distributions.)
	0.  /dev/logibm:  Logitec-'compatible' bus mouse
	1.  /dev/psaux:  PS/2 mouse port (may not work on some lap-tops, yet)
	2.  /dev/inportbm:  MicroSoft "InPort" bus mouse
	3.  /dev/atibm:  ATI XL bus mouse

11.  CD-ROM ..	(block) ......	scd[0-1]
	0.  /dev/scd0:  The first (detected) SCSI CD-ROM.
	1.  /dev/scd1:  The second (detected) SCSI CD-ROM.
	("There's not much more to it than that" says Eric Youngdale.)

12.  Loop? ...  (block) ......  loop[0-1]
     (I have no idea what this is... Loopback Ethernet device, maybe?)
	0.  /dev/loop0
	1.  /dev/loop1

12.  QIC-tape?  (character) ..  rmt{8,16}, tape<{-d,-reset}>
     (I really don't have much info on this one... )
	6.  /dev/rmt8:  QIC-120
	8.  /dev/rmt16 (/dev/tape):  QIC-150
	136.  /dev/tape-d:  (It has something to do with being 128+8... ?)
	255.  /dev/tape-reset:  For resetting only.

13.  XT-disk .  (block) ......  xd[a-b]<[0-8]>
     XT (8-bit) hard disk controller devices.
	Minor numbers are assigned in the same manner as for the
	normal (AT-type) Hard Drive devices ("/dev/hd*").

14.  Audio ...  (character) ..  audio, dsp, midi, mixer, sequencer
	0.  /dev/mixer:  Mixer and Control Device
	1.  /dev/sequencer:  FM-synthesizer and Midi
	2.  /dev/midi:  (for future use)
	3.  /dev/dsp:  Digitized voice (DAC/ADC)
	4.  /dev/audio:  (Reserved for compatibility with Sun)

15.  Joystick   (?) ..........  js0, js1
	0.  /dev/js0:  (Left/Right?) joystick.
	1.  /dev/js1:  (Right/Left?) joystick.

16.  Socket ..  (character) ..  net, arp
	0.  /dev/net:  Generic layer (sockets)
	1.  /dev/arp:  Address Resolution Protocol (ARP)

17.  AF_UNIX .  (character) ..  unix
	0.  /dev/unix:  AF_UNIX protocol layer

18.  AF_INET .  (character) ..  inet, ip, icmp, tcp, udp
	0.  /dev/inet:  AF_INET protocol layer
	1.  /dev/ip:  Iner-net Protocol (IP)
	2.  /dev/icmp:  Internet Communications Management(?) Protocol (ICMP)
	3.  /dev/tcp:  Transport Control(?) Protocol (TCP)
	4.  /dev/udp:  (?) Protocol (UDP)

19.  "WE"-drv   (character) ..  we[0-3]
	0-3.  /dev/we[0-3]:  "WE" driver

20.  "DP8390"   (character) ..  wd[0-3], ec[0-3], ne[0-3]
	0-3.  /dev/wd[0-3]:  "DP8390" driver, WD8003
	8-11.  /dev/ec[0-3]:  "DP8390" driver, 3C503
	16-19.  /dev/ne[0-3]:  "DP8390" driver, NE2000


Rick Miller   <rick@ee.uwm.edu> | <rick@discus.mil.wi.us>   Ricxjo Muelisto
Occupation:  Husband, Father, WEPCo. WAN Mgr., Discus Sys0p, and  Linux fan