C.2. Linux Devices

In Linux you have various special files in /dev. These files are called device files. In the Unix world accessing hardware is different. There you have a special file which actually runs a driver which in turn accesses the hardware. The device file is an interface to the actual system component. Files under /dev also behave differently than ordinary files. Below are the most important device files listed.

fd0 First Floppy Drive
fd1 Second Floppy Drive

hda IDE Hard disk / CD-ROM on the first IDE port (Master)
hdb IDE Hard disk / CD-ROM on the first IDE port (Slave)
hdc IDE Hard disk / CD-ROM on the second IDE port (Master)
hdd IDE Hard disk / CD-ROM on the second IDE port (Slave)
hda1 First partition of the first IDE hard disk
hdd15 Fifteenth partition of the fourth IDE hard disk

sda SCSI Hard disk with lowest SCSI ID (e.g. 0)
sdb SCSI Hard disk with next higher SCSI ID (e.g. 1)
sdc SCSI Hard disk with next higher SCSI ID (e.g. 2)
sda1 First partition of the first SCSI hard disk
sdd10 Tenth partition of the fourth SCSI hard disk

sr0 SCSI CD-ROM with the lowest SCSI ID
sr1 SCSI CD-ROM with the next higher SCSI ID

ttyS0 Serial port 0, COM1 under MS-DOS
ttyS1 Serial port 1, COM2 under MS-DOS
psaux PS/2 mouse device
gpmdata Pseudo device, repeater data from GPM (mouse) daemon

cdrom Symbolic link to the CD-ROM drive
mouse Symbolic link to the mouse device file

null Everything pointed to this device will disappear
zero One can endlessly read zeros out of this device

C.2.1. Setting Up Your Mouse

The mouse can be used in both the Linux console (with gpm) and the X window environment. The two uses can be made compatible if the gpm repeater is used to allow the signal to flow to the X server as shown:

mouse => /dev/psaux  => gpm => /dev/gpmdata -> /dev/mouse => X
         /dev/ttyS0             (repeater)        (symlink)

Set the repeater protocol to be raw (in /etc/gpm.conf) while setting X to the original mouse protocol in /etc/X11/XF86Config or /etc/X11/XF86Config-4.

This approach to use gpm even in X has advantages when the mouse is unplugged inadvertently. Simply restarting gpm with

# /etc/init.d/gpm restart

will re-connect the mouse in software without restarting X.

If gpm is disabled or not installed with some reason, make sure to set X to read directly from the mouse device such as /dev/psaux. For details, refer to the 3-Button Mouse mini-Howto at /usr/share/doc/HOWTO/en-txt/mini/3-Button-Mouse.gz, man gpm, /usr/share/doc/gpm/FAQ.gz, and README.mouse.

For PowerPC, in /etc/X11/XF86Config or /etc/X11/XF86Config-4, set the mouse device to "/dev/input/mice".

Modern kernels give you the capability to emulate a three-button mouse when your mouse only has one button. Just add the following lines to /etc/sysctl.conf file.

# 3-button mouse emulation
# turn on emulation
/dev/mac_hid/mouse_button_emulation = 1
# Send middle mouse button signal with the F11 key
/dev/mac_hid/mouse_button2_keycode = 87
# Send right mouse button signal with the F12 key
/dev/mac_hid/mouse_button3_keycode = 88
# For different keys, use showkey to tell you what the code is.