D.1. Linux Devices

In Linux various special files can be found under the directory /dev. These files are called device files and behave unlike ordinary files. The most common types of device files are for block devices and character devices. These files are an interface to the actual driver (part of the Linux kernel) which in turn accesses the hardware. Another, less common, type of device file is the named pipe. The most important device files are listed in the tables below.

fd0 First Floppy Drive
fd1 Second Floppy Drive

sda First hard disk
sdb Second hard disk
sda1 First partition of the first hard disk
sdb7 Seventh partition of the second hard disk

sr0 First CD-ROM
sr1 Second CD-ROM

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 Anything written to this device will disappear
zero One can endlessly read zeros out of this device

D.1.1. Setting Up Your Mouse

The mouse can be used in both the Linux console (with gpm) and the X window environment. Normally, this is a simple matter of installing gpm and the X server itself. Both should be configured to use /dev/input/mice as the mouse device. The correct mouse protocol is named exps2 in gpm, and ExplorerPS/2 in X. The respective configuration files are /etc/gpm.conf and /etc/X11/xorg.conf.

Certain kernel modules must be loaded in order for your mouse to work. In most cases the correct modules are autodetected, but not always for old-style serial and bus mice[23], which are quite rare except on very old computers. Summary of Linux kernel modules needed for different mouse types:

Module Description
psmouse PS/2 mice (should be autodetected)
usbhid USB mice (should be autodetected)
sermouse Most serial mice
logibm Bus mouse connected to Logitech adapter card
inport Bus mouse connected to ATI or Microsoft InPort card

To load a mouse driver module, you can use the modconf command (from the package with the same name) and look in the category kernel/drivers/input/mouse.

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.

[23] Serial mice usually have a 9-hole D-shaped connector; bus mice have an 8-pin round connector, not to be confused with the 6-pin round connector of a PS/2 mouse or the 4-pin round connector of an ADB mouse.