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) .. st[0-1] or 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) .. st[0-1] or 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 | Ricxjo Muelisto Occupation: Husband, Father, WEPCo. WAN Mgr., Discus Sys0p, and Linux fan