Using very large hard disks in PCs can lead to problems because of the limitations of the BIOS and IDE standards on which most PCs are based. Problems arise because the BIOS can manage only hard disks with a maximum of 256 heads, 63 sectors, and 1024 cylinders because the IDE standard is based on a model that specifies the Cylinders, Heads, and Sectors of the hard disks (CHS model), but only allows a maximum of 16 heads, 255 sectors, and 65536 cylinders. The lowest limits of both of these standards combine to give a maximum size for standard hard disks of 504MB (16 heads, 63 sectors, and 1024 cylinders).
The newer Enhanced-IDE (EIDE) standard avoids this limitation by not using the CHS model. Instead, a Logical Block Addressing model is used (LBA). This model numbers all sectors on the disk sequentially.
Newer BIOS versions overcome the 504MB limitation by using an Extended CHS model that extends the maximum number of heads to 256. The new upper size limit, from the Enhanced-IDE and Extended CHS models, is almost 7.9GB.
Linux does not use the BIOS to access your hard disk, so IDE and EIDE hard disks should not cause problems on Linux systems. If problems occur, however, Linux might be obtaining incorrect hard disk size parameters from the BIOS. To correct this problem, use boot parameters to pass the correct information to Linux. The parameter to pass is hdx=cyl,heads,sect
, where hdx is the hard disk device (hda, hdb, hdc
, or hdd
). More information is provided below on using these parameters to create cylinder counts of less than 1024.
In general, all SCSI hard disks use the LBA model mentioned above. SCSI hard disks do have a separate problem that EIDE hard disks do not have, however. SCSI hard disks larger than 1GB must have special treatment with the fdisk
utility and while configuring the LILO boot manager. If your SCSI hard disk is affected by this problem, fdisk
will display messages regarding the problem when you prepare your hard disk. The expert mode of fdisk
can be used to correct SCSI problems. The LILO problems are fixed by adjusting the /etc/disktab
file. Both of these fixes are described below with an example.
The problem with these larger hard disks is that the partition table must be read before any operating system becomes active. The partition table is accessed via the BIOS, which is limited to 256 heads, 63 sectors, and 1024 cylinders. Because of this, the hard disk controller attempts to convert (or translate) the true parameters of hard disks with more than 1024 cylinders into values that can be accepted by the BIOS.
The partition table itself can always be found at the first cylinder, first sector, and first header (which is the same in any translation); but because of this translation from the controller, if all data for the boot process (such as the boot loader and operating system kernel) are not found in the first 1024 cylinders, the BIOS cannot successfully boot the system.
Partitions can be created above 1024 cylinders, but you cannot boot these partitions because boot data in those higher partitions cannot be accessed until after the system is booted. This only causes trouble when a system has multiple operating systems and the user attempts to choose which to boot.
A work-around solution is to create a small Linux partition below 1024 cylinders that can be used to boot the Linux system. This partition can be as little as 15MB because it only needs to contain the kernel and root filesystem. The /usr
directory and other information can be stored in a second Linux partition located above 1024 cylinders. Use the fdisk
utility of another operating system such as OS/2 to create these partitions. Then use the Linux fdisk
during installation to mark the partitions as Type 0x83, Linux.
A better solution is to enter the correct combination of cylinders, sectors, and heads that the hard disk controller is passing to the BIOS. Use the fdisk
expert mode, as described below.
SCSI hard disks are usually reported as 64 heads and 32 sectors, giving a size of 64*32*512 bytes = 1MB per cylinder. EIDE usually reports 255 heads. The last translation is done by the operating system itself. Here Linux uses LBA to refer to the blocks sequentially from the first block to the last block on the hard disk.
Many controllers use two different models to provide cylinder numbers under 1024. In most cases, the controller first tries to double the number of heads. If this does not result in a cylinder count of less than 1024, the controller increases the actual values for heads and sectors to the maximum possible number to minimize the number of cylinders. This process is used by the extended translation of the Adaptec controllers, AH 274x/284x/294x. For example, the translation by an Adaptec controller of a 4GB disk gives a count of 255 heads, 63 sectors, and 522 cylinders. The NCR controller uses a variant by which the number of heads and sectors is chosen to provide the correct size while being within the 1024 cylinder limit. Overlap between partitions is thereby minimized because each partition begins and ends on a cylinder boundary.
Your task is to find out the translation that the controller is doing and enter the values that it passes for the hard disk into the expert mode of fdisk
. As you do this, remember that the total size of the hard disk must remain constant.
For example, assume that we have a computer with a 4GB SCSI hard disk. This is more than 1024 cylinders, so fdisk
gives a warning during installation:
The number of cylinders for this disk is set to 4095. This is larger than 1024, and may cause problems with: 1. software that runs at boot time (e.g., LILO) 2. booting and partitioning software form other OSs (e.g., DOS FDISK, OS/2 FDISK)
When you use the p command to display the partition table, you see a sequence of error messages:
Device Boot Begin Start End Blocks Id System /dev/sda1 1 1 754 771088+ 6 DOS 16-bit>32M Partition 1 does not end on cylinder boundary: phys=(95, 254, 63) should be (95, 63, 32) /dev/sda2 * 97 754 1954 1228972+ 82 Linux swap Partition 2 does not end on cylinder boundary: phys=(248, 254, 63) should be (248, 63, 32) /dev/sda3 1274 1954 2456 514080 a5 BSD/386 Partition 3 does not end on cylinder boundary: phys=(312, 254, 63) should be (312, 63, 32) /dev/sda4 2362 2456 4095 1678792+ 5 Extended Partition 4 does not end on cylinder boundary: phys=(521, 254, 63) should be (521, 63, 32) /dev/sda5 2362 2456 2707 257008+ 83 Linux /dev/sda6 2394 2707 2770 64228+ 83 Linux native /dev/sda7 2402 2770 3436 682731 6 DOS 16-bit>32M /dev/sda8 2487 3436 4095 674698+ 6 DOS 16-bit>32M
To correct these errors, new values must be provided for fdisk
so that the partition boundaries match the values reported by the hard disk and controller. In this example, the 4GB hard disk shown above has 64 heads, 32 sectors, and 4095 cylinders, for a total capacity of 64*32*4095 bytes = 4095MB.
If you set the number of heads to 255 and the number of sectors to 63 (a hint that this value is correct appears in the error messages shown above), the partition still must have 4095MB. So, if 255*63*cylinders = 4095MB, then the number of cylinders would be 522.
These new values must be entered in fdisk
. First, you must change to the expert mode with the x
command, and then you enter the new parameters for the heads, sectors, and cylinders. In expert mode, the commands c
(cylinders), h
(heads), and s
(sectors) can be used. According to the calculation above, these values should be 255 heads and 63 sectors.
Note that if you are using DOS on your system, never enter a head count of 256. This value will cause DOS to crash without comment.
Below is how the screen might look as you enter these new values in fdisk
.
Expert command (m for help): h Number of heads (1-256): 255 Expert command (m for help): s Number of sectors (1-63): 63 Warning: Setting sector offset for DOS compatibility Expert command (m for help): c Number of cylinders (1-65535): 522
After these values are entered in the fdisk
expert mode, return to the normal main menu of fdisk
with r
. Now, using the p
command should show all partitions without the warnings shown in the first listing above.
Command (m for help): p Disk /dev/sda: 255 heads, 63 sectors, 522 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Begin Start End Blocks Id Systemg /dev/sda1 1 1 96 771088+ 6 DOS 16-bit>32M /dev/sda2 * 97 97 249 1228972+ 82 Linux swap /dev/sda3 250 250 313 514080 a5 BSD/386 /dev/sda4 314 314 522 1678792+ 5 Extended /dev/sda5 314 314 345 257008+ 83 Linux native /dev/sda6 346 346 353 64228+ 83 Linux native /dev/sda7 354 354 438 682731 6 DOS 16-bit>32M /dev/sda8 439 439 522 674698+ 6 DOS 16-bit>32M
If the error messages have not disappeared, you have not yet found the right values. Try again with new values until the error messages do not appear.
When you find the correct values, make note of them in your system documentation. You must enter these values each time you run fdisk
. They are not saved.
After the correct values are entered in expert mode, you can continue working normally with fdisk
to create the partitions that you need to install Linux on.
If you want to use LILO to boot Linux directly from the hard disk, you must list the correct partitions in the file /etc/fstab/
. These partitions are shown from the main menu of fdisk
once you have corrected the information in expert mode. Change the partition display of fdisk
from units to sectors with the u
command. The sector values shown correspond to the block values of the LBA mode.
Command (m for help): u Changing display/entry units to sectors Display the revised partition table: Command (m for help): p Disk /dev/sda: 255 heads, 63 sectors, 522 cylinders Units = sectors of 1 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/sda1 63 63 1542239 771088+ 6 DOS 16-bit>32M /dev/sda2 * 1542240 1542240 4000184 1228972+ 82 Linux swap /dev/sda3 4000185 4000185 5028344 514080 a5 BSD/386 /dev/sda4 5028345 5028345 8385929 1678792+ 5 Extended /dev/sda5 5028408 5028408 5542424 257008+ 83 Linux native /dev/sda6 5542488 5542488 5670944 64228+ 83 Linux native /dev/sda7 5671008 5671008 7036469 682731 6 DOS 16-bit>32M /dev/sda8 7036533 7036533 8385929 674698+ 6 DOS 16-bit>32M
Now the start, size, and end of the partition are no longer displayed in cylinders, but in sectors (which Linux uses to access the hard disk). Enter these sector values in the file /etc/disktab
. The entries in this file would look like this for our example:
# Dev. BIOS Secs/ Heads/ Cylin Part. # num. code track cylin. ders offset 0x801 0x80 63 255 522 63 # /dev/sda1 0x802 0x80 63 255 522 1542240 # /dev/sda2 0x803 0x80 63 255 522 4000185 # /dev/sda3 0x805 0x80 63 255 522 5028408 # /dev/sda5 0x806 0x80 63 255 522 5542488 # /dev/sda6 0x807 0x80 63 255 522 5671008 # /dev/sda7 0x808 0x80 63 255 522 7036533 # /dev/sda8
The process described here is a difficult one, and we cannot guarantee your success for any particular hardware configuration. We hope that the principal steps and concepts are clear, however. If you have trouble, please contact Caldera for additional information or suggestions.
Maintained by H. Peter Anvin <[email protected]>
Last revised: May 29, 1995
This list is the successor to Rick Miller's Linux Device List, which he stopped maintaining when he lost network access in 1993. It is a registry of allocated major device numbers, as well as the recommended /dev
directory nodes for these devices.
This list is available via FTP from ftp.yggdrasil.com
in the directory /pub/device-list;
filename is devices.<format>
where <format>
is txt
(ASCII), tex
(LaTeX), dvi
(DVI) or ps
(PostScript). In cases of discrepancy, the LaTeX version has priority.
This document is included by reference into the Linux Filesystem Standard (FSSTND). The FSSTND is available via FTP from tsx-11.mit.edu
in the directory /pub/linux/docs/linux-standards/fsstnd
.
To have a major number allocated, or a minor number in situations where that applies (e.g., busmice), please contact me. Also, if you have additional information regarding any of the devices listed below, I would like to know.
Allocations marked (68k
) apply to Linux/68k only.
0 Unnamed devices (NFS mounts, loopback devices) 0 = reserved as null device number 1 char Memory devices 1 = /dev/mem Physical memory access 2 = /dev/kmem Kernel virtual memory access 3 = /dev/null Null device 4 = /dev/port I/O port access 5 = /dev/zero Null byte source 6 = /dev/core OBSOLETE - replaced by /proc/kcore 7 = /dev/full Returns ENOSPC on write block RAM disk 1 = /dev/ramdiskRAM disk 2 char Reserved for PTY's <[email protected]> block Floppy disks 0 = /dev/fd0 First floppy disk autodetect 1 = /dev/fd1 Second floppy disk autodetect 2 = /dev/fd2 Third floppy disk autodetect 3 = /dev/fd3 Fourth floppy disk autodetect To specify format, add to the autodetect device number: 0 = /dev/fd? Autodetect format 4 = /dev/fd?d360 5.25" 360K in a 360K drive 20 = /dev/fd?h360 5.25" 360K in a 1200K drive 48 = /dev/fd?h410 5.25" 410K in a 1200K drive 64 = /dev/fd?h420 5.25" 420K in a 1200K drive 24 = /dev/fd?h720 5.25" 720K in a 1200K drive 80 = /dev/fd?h880 5.25" 880K in a 1200K drive 8 = /dev/fd?h1200 5.25" 1200K in a 1200K drive 40 = /dev/fd?h1440 5.25" 1440K in a 1200K drive 56 = /dev/fd?h1476 5.25" 1476K in a 1200K drive 72 = /dev/fd?h1494 5.25" 1494K in a 1200K drive 92 = /dev/fd?h1600 5.25" 1600K in a 1200K drive 12 = /dev/fd?u360 3.5" 360K Double Density 120 = /dev/fd?u800 3.5" 800K Double Density 52 = /dev/fd?u820 3.5" 820K Double Density 68 = /dev/fd?u830 3.5" 830K Double Density 84 = /dev/fd?u1040 3.5" 1040K Double Density 88 = /dev/fd?u1120 3.5" 1120K Double Density 28 = /dev/fd?u1440 3.5" 1440K High Density 124 = /dev/fd?u1600 3.5" 1600K High Density 44 = /dev/fd?u1680 3.5" 1680K High Density 60 = /dev/fd?u1722 3.5" 1722K High Density 76 = /dev/fd?u1743 3.5" 1743K High Density 96 = /dev/fd?u1760 3.5" 1760K High Density 116 = /dev/fd?u1840 3.5" 1840K High Density 100 = /dev/fd?u1920 3.5" 1920K High Density 32 = /dev/fd?u2880 3.5" 2880K Extra Density 104 = /dev/fd?u3200 3.5" 3200K Extra Density 108 = /dev/fd?u3520 3.5" 3520K Extra Density 112 = /dev/fd?u3840 3.5" 3840K Extra Density 36 = /dev/fd?CompaQ Compaq 2880K drive; obsolete? NOTE: The letter in the device name (d, q, h or 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 use of the capital letters D, H and E for the 3.5" models have been deprecated, since the drive type is insignificant for these devices. 3 char Reserved for pty's <[email protected]> block First MFM, RLL and IDE hard disk/CD-ROM interface 0 = /dev/hda Master: whole disk (or CD-ROM) 64 = /dev/hdb Slave: whole disk (or CD-ROM) For partitions, add to the whole disk device number: 0 = /dev/hd? Whole disk 1 = /dev/hd?1 First primary partition 2 = /dev/hd?2 Second primary partition 3 = /dev/hd?3 Third primary partition 4 = /dev/hd?4 Fourth primary partition 5 = /dev/hd?5 First logical partition 6 = /dev/hd?6 Second logical partition 7 = /dev/hd?7 Third logical partition ... 63 = /dev/hd?63 59th logical partition 4 char TTY devices 0 = /dev/console Console device 1 = /dev/tty1 First virtual console ... 63 = /dev/tty63 63rd virtual console 64 = /dev/ttyS0 First serial port ... 127 = /dev/ttyS63 64th serial port 128 = /dev/ptyp0 First pseudo-tty master ... 191 = /dev/ptysf 64th pseudo-tty master 192 = /dev/ttyp0 First pseudo-tty slave ... 255 = /dev/ttysf 64th pseudo-tty slave Pseudo-tty's are named as follows: * Masters are "pty", slaves are "tty"; * the fourth letter is one of p, q, r, s indicating the 1st, 2nd, 3rd, 4th series of 16 pseudo-ttys each, and * the fifth letter is one of 0123456789abcdef indicating the position within the series. 5 char Alternate TTY devices 0 = /dev/tty Current TTY device 64 = /dev/cua0 Callout device corresponding to ttyS0 ... 127 = /dev/cua63 Callout device corresponding to ttyS63 6 char Parallel printer devices 0 = /dev/lp0 First parallel printer (0x3bc) 1 = /dev/lp1 Second parallel printer (0x378) 2 = /dev/lp2 Third parallel printer (0x278) Not all computers have the 0x3bc parallel port; hence the "first" printer may be either /dev/lp0 or /dev/lp1. 7 char Virtual console capture devices 0 = /dev/vcs Current vc text contents 1 = /dev/vcs1 tty1 text contents ... 63 = /dev/vcs63 tty63 text contents 128 = /dev/vcsa Current vc text/attribute contents 129 = /dev/vcsa1 tty1 text/attribute contents ... 191 = /dev/vcsa63 tty63 text/attribute contents NOTE: These devices permit both read and write access. 8 block SCSI disk devices 0 = /dev/sda First SCSI disk whole disk 16 = /dev/sdb Second SCSI disk whole disk 32 = /dev/sdc Third SCSI disk whole disk ... 240 = /dev/sdp Sixteenth SCSI disk whole disk Partitions are handled in the same way as for IDE disks (see major number 3) except that the limit on logical partitions is 11. 9 char SCSI tape devices 0 = /dev/st0 First SCSI tape 1 = /dev/st1 Second SCSI tape ... 128 = /dev/nst0 First SCSI tape, no rewind-on-close 129 = /dev/nst1 Second SCSI tape, no rewind-on-close ... block Multiple disk devices 0 = /dev/md0 First device group 1 = /dev/md1 Second device group ... The multiple devices driver is used to span a filesystem across multiple physical disks. 10 char Non-serial mice, misc features 0 = /dev/logibm Logitech bus mouse 1 = /dev/psaux PS/2-style mouse port 2 = /dev/inportbm Microsoft Inport bus mouse 3 = /dev/atibm ATI XL bus mouse 4 = /dev/jbm J-mouse 4 = /dev/amigamouse Amiga Mouse (68k) 5 = /dev/atarimouse Atari Mouse (68k) 128 = /dev/beep Fancy beep device 129 = /dev/modreq Kernel module load request The use of the suffix -mouse instead of -bm or -aux has also been used. 11 block SCSI CD-ROM devices 0 = /dev/sr0 First SCSI CD-ROM 1 = /dev/sr1 Second SCSI CD-ROM ... The prefix /dev/scd instead of /dev/sr has been used as well, and might make more sense. 12 char QIC-02 tape 2 = /dev/ntpqic11 QIC-11, no rewind-on-close 3 = /dev/tpqic11 QIC-11, rewind-on-close 4 = /dev/ntpqic24 QIC-24, no rewind-on-close 5 = /dev/tpqic24 QIC-24, rewind-on-close 6 = /dev/ntpqic120 QIC-120, norewind-on-close 7 = /dev/tpqic120 QIC-120, rewind-on-close 8 = /dev/ntpqic150 QIC-150, no rewind-on-close 9 = /dev/tpqic150 QIC-150, rewind-on-close The device names specified are proposed -- if there are "standard" names for these devices, please let me know. block MSCDEX CD-ROM callback support 0 = /dev/dos_cd0 First MSCDEX CD-ROM 1 = /dev/dos_cd1 Second MSCDEX CD-ROM ... 13 char PC speaker 0 = /dev/pcmixer Emulates /dev/mixer 1 = /dev/pcsp Emulates /dev/dsp (8-bit) 4 = /dev/pcaudio Emulates /dev/audio 5 = /dev/pcsp16 Emulates /dev/dsp (16-bit) block 8-bit MFM/RLL/IDE controller 0 = /dev/xda First XT disk whole disk 64 = /dev/xdb Second XT disk whole disk Partitions are handled in the same way as IDE disks (see major number 3). 14 char Sound card 0 = /dev/mixer Mixer control 1 = /dev/sequencer Audio sequencer 2 = /dev/midi00 First MIDI port 3 = /dev/dsp Digital audio 4 = /dev/audio Sun-compatible digital audio 6 = /dev/sndstat Sound card status information 8 = /dev/sequencer2 Sequencer -- alternate device 16 = /dev/mixer1 Second soundcard mixer control 17 = /dev/patmgr0 Sequencer patch manager 18 = /dev/midi01 Second MIDI port 19 = /dev/dsp1 Second soundcard digital audio 20 = /dev/audio1 Second soundcard Sun digital audio 33 = /dev/patmgr1 Sequencer patch manager 34 = /dev/midi02 Third MIDI port 50 = /dev/midi03 Fourth MIDI port block BIOS harddrive callback support 0 = /dev/dos_hda First BIOS harddrive whole disk 64 = /dev/dos_hdb Second BIOS harddrive whole disk 128 = /dev/dos_hdc Third BIOS harddrive whole disk 192 = /dev/dos_hdd Fourth BIOS harddrive whole disk Partitions are handled in the same way as IDE disks (see major number 3). 15 char Joystick 0 = /dev/js0 First joystick 1 = /dev/js1 Second joystick block Sony CDU-31A/CDU-33A CD-ROM 0 = /dev/sonycd Sony CDU-31a CD-ROM 16 char Reserved for scanners block GoldStar CD-ROM 0 = /dev/gscd GoldStar CD-ROM 17 char Chase serial card 0 = /dev/ttyH0 First Chase port 1 = /dev/ttyH1 Second Chase port ... block Optics Storage CD-ROM (under development) 0 = /dev/optcd Optics Storage CD-ROM 18 char Chase serial card - alternate devices 0 = /dev/cuh0 Callout device corresponding to ttyH0 1 = /dev/cuh1 Callout device corresponding to ttyH1 ... block Sanyo CD-ROM (under development) 0 = ? Sanyo CD-ROM 19 char Cyclades serial card 32 = /dev/ttyC0 First Cyclades port ... 63 = /dev/ttyC31 32nd Cyclades port It would make more sense for these to start at 0... block Double" compressed disk 0 = /dev/double0 First compressed disk ... 7 = /dev/double7 Eighth compressed disk 128 = /dev/cdouble0 Mirror of first compressed disk ... 135 = /dev/cdouble7 Mirror of eighth compressed disk See the Double documentation for the meaning of the mirror devices. 20 char Cyclades serial card - alternate devices 32 = /dev/cub0 Callout device corresponding to ttyC0 ... 63 = /dev/cub31 Callout device corresponding to ttyC31 block Hitachi CD-ROM (under development) 0 = /dev/hitcd Hitachi CD-ROM 21 char Generic SCSI access 0 = /dev/sg0 First generic SCSI device 1 = /dev/sg1 Second generic SCSI device ... 22 char Digiboard serial card 0 = /dev/ttyD0 First Digiboard port 1 = /dev/ttyD1 Second Digiboard port ... block Second MFM, RLL and IDE hard disk/CD-ROM interface 0 = /dev/hdc Master: whole disk (or CD-ROM) 64 = /dev/hdd Slave: whole disk (or CD-ROM) Partitions are handled the same way as for the first interface (see major number 3). 23 char Digiboard serial card - alternate devices 0 = /dev/cud0 Callout device corresponding to ttyD0 1 = /dev/cud1 Callout device corresponding to ttyD1 ... block Mitsumi proprietary CD-ROM 0 = /dev/mcd Mitsumi CD-ROM 24 char Stallion serial card 0 = /dev/ttyE0 Stallion port 0 card 0 1 = /dev/ttyE1 Stallion port 1 card 0 ... 64 = /dev/ttyE64 Stallion port 0 card 1 65 = /dev/ttyE65 Stallion port 1 card 1 ... 128 = /dev/ttyE128 Stallion port 0 card 2 129 = /dev/ttyE129 Stallion port 1 card 2 ... 192 = /dev/ttyE192 Stallion port 0 card 3 193 = /dev/ttyE193 Stallion port 1 card 3 ... block Sony CDU-535 CD-ROM 0 = /dev/cdu535 Sony CDU-535 CD-ROM 25 char Stallion serial card - alternate devices 0 = /dev/cue0 Callout device corresponding to ttyE0 1 = /dev/cue1 Callout device corresponding to ttyE1 ... 64 = /dev/cue64 Callout device corresponding to ttyE64 65 = /dev/cue65 Callout device corresponding to ttyE65 ... 128 = /dev/cue128 Callout device corresponding to ttyE128 129 = /dev/cue129 Callout device corresponding to ttyE129 ... 192 = /dev/cue192 Callout device corresponding to ttyE192 193 = /dev/cue193 Callout device corresponding to ttyE193 ... block First Matsushita (Panasonic/SoundBlaster) CD-ROM 0 = /dev/sbpcd0 Panasonic CD-ROM controller 0 unit 0 1 = /dev/sbpcd1 Panasonic CD-ROM controller 0 unit 1 2 = /dev/sbpcd2 Panasonic CD-ROM controller 0 unit 2 3 = /dev/sbpcd3 Panasonic CD-ROM controller 0 unit 3 26 char Frame grabbers 0 = /dev/wvisfgrab Quanta WinVision frame grabber block Second Matsushita (Panasonic/SoundBlaster) CD-ROM 0 = /dev/sbpcd4 Panasonic CD-ROM controller 1 unit 0 1 = /dev/sbpcd5 Panasonic CD-ROM controller 1 unit 1 2 = /dev/sbpcd6 Panasonic CD-ROM controller 1 unit 2 3 = /dev/sbpcd7 Panasonic CD-ROM controller 1 unit 3 27 char QIC-117 tape 0 = /dev/ftape QIC-117 tape block Third Matsushita (Panasonic/SoundBlaster) CD-ROM 0 = /dev/sbpcd8 Panasonic CD-ROM controller 2 unit 0 1 = /dev/sbpcd9 Panasonic CD-ROM controller 2 unit 1 2 = /dev/sbpcd10 Panasonic CD-ROM controller 2 unit 2 3 = /dev/sbpcd11 Panasonic CD-ROM controller 2 unit 3 28 char Stallion serial card - card programming 0 = /dev/staliomem0 First Stallion card I/O memory 1 = /dev/staliomem1 Second Stallion card I/O memory 2 = /dev/staliomem2 Third Stallion card I/O memory 3 = /dev/staliomem3 Fourth Stallion card I/O memory block Fourth Matsushita (Panasonic/SoundBlaster) CD-ROM 0 = /dev/sbpcd12 Panasonic CD-ROM controller 3 unit 0 1 = /dev/sbpcd13 Panasonic CD-ROM controller 3 unit 1 2 = /dev/sbpcd14 Panasonic CD-ROM controller 3 unit 2 3 = /dev/sbpcd15 Panasonic CD-ROM controller 3 unit 3 block ACSI disk (68k) 0 = /dev/ada First ACSI disk whole disk 16 = /dev/adb Second ACSI disk whole disk 32 = /dev/adc Third ACSI disk whole disk ... 240 = /dev/adp 16th ACSI disk whole disk Partitions are handled in the same way as for IDE disks (see major number 3) except that the limit on logical partitions is 11. 29 char Universal frame buffer 0 = /dev/fb0current First frame buffer 1 = /dev/fb0autodetect ... 16 = /dev/fb1current Second frame buffer 17 = /dev/fb1autodetect ... block Aztech/Orchid/Okano/Wearnes CD-ROM 0 = /dev/aztcd Aztech CD-ROM The universal frame buffer device is currenly only supported on Linux/68k. The "current" device accesses the fame buffer at current resolution; the "autodetect" one at bootup (default) resolution. Minor numbers 2-15 within each frame buffer assignment are used for specific device-dependent resolutions. There appears to be no standard naming for these devices. 30 char iBCS-2 compatibility devices 0 = /dev/socksys Socket access 1 = /dev/spx SVR3 local X interface 2 = /dev/inet/arp Network access 2 = /dev/inet/icmp Network access 2 = /dev/inet/ip Network access 2 = /dev/inet/udp Network access 2 = /dev/inet/tcp Network access iBCS-2 requires /dev/nfsd to be a link to /dev/socksys, and /dev/X0R to be a link to /dev/null. block Philips LMS CM-205 CD-ROM 0 = /dev/cm205cd Philips LMS CM-205 CD-ROM /dev/lmscd is an older name for this device. This driver does not work with the CM-205MS CD-ROM. 31 char MPU-401 MIDI 0 = /dev/mpu401data MPU-401 data port 1 = /dev/mpu401stat MPU-401 status port block ROM/flash memory card 0 = /dev/rom0 First ROM card (rw) ... 7 = /dev/rom7 Eighth ROM card (rw) 8 = /dev/rrom0 First ROM card (ro) ... 15 = /dev/rrom7 Eighth ROM card (ro) 16 = /dev/flash0 First flash memory card (rw) ... 23 = /dev/flash7 Eighth flash memory card (rw) 24 = /dev/rflash0 First flash memory card (ro) ... 31 = /dev/rflash7 Eighth flash memory card (ro) The read-write (rw) devices support back-caching written data in RAM, as well as writing to flash RAM devices. The read-only devices (ro) support reading only. 32 block Philips LMS CM-206 CD-ROM 0 = /dev/cm206cd Philips LMS CM-206 CD-ROM 33 block Modular RAM disk device 0 = /dev/ram0 First modular RAM disk 1 = /dev/ram1 Second modular RAM disk ... 255 = /dev/ram255 256th modular RAM disk 34-223 UNALLOCATED 224-254 LOCAL USE Allocated for local/experimental use Please note that MAX_CHRDEV and MAX_BLKDEV in linux/include/linux/major.h must be set to a value greater than the highest used major number. For a kernel using local/experimental devices, it is probably easiest to set both of these equal to 256. The memory cost above using the default value of 64 is 3K. 255 RESERVED
This section details additional entries that should or may exist in the /dev
directory. It is preferred that symbolic links use the same form (absolute or relative) as is indicated here. Links are classified as "hard" or "symbolic" depending on the preferred type of link; if possible, the indicated type of link should be used.
These links should exist on all systems:
/dev/fd /proc/self/fd symbolic File descriptors /dev/stdin fd/0 symbolic stdin file descriptor /dev/stdout fd/1 symbolic stdout file descriptor /dev/stderr fd/2 symbolic stderr file descriptor
It is recommended that these links exist on all systems:
/dev/X0R null symbolic Used by iBCS-2 /dev/nfsd socksys symbolic Used by iBCS-2 /dev/core /proc/kcore symbolic Backward compatibility /dev/scd? /dev/cd? hard Alternate SCSI CD-ROM name
The following links may be established locally to conform to the system configuration. This is merely a tabulation of existing practice, and does not constitute a recommendation. However, if they exist, they should have the following uses.
/dev/mouse mouse port symbolic Current mouse device /dev/tape tape device symbolic Current tape device /dev/cdrom CD-ROM device symbolic Current CD-ROM device /dev/modem modem port symbolic Current dialout device /dev/root root device symbolic Current root filesystem /dev/swap swap device symbolic Current swap device
/dev/modem
should not be used for a modem that supports dial-in as well as dial-out, as it tends to cause lock file problems. If it exists, /dev/modem
should point to the appropriate dial-out (alternate) device.
3.129.22.164