Getting your mouse working.

# 3. Getting your mouse working.

Contents of this section

Once you have figured out your mouse interface and protocol types, you're ready to proceed.

## 3.1 Mouse protocols.Setting the mouse interrupt.

Now, you'll need to know which interrupt number your mouse is using, and make sure it doesn't conflict with any other peripherals you have installed.

You should make sure that your mouse is not trying to use the same interrupt as any of your other devices --- it is not possible for the mouse to share an interrupt under Linux, even though it may work fine under other operating systems. Check the documentation for all your peripherals to see which interrupt they use. In most cases IRQ4 is used for the first serial port (`/dev/ttyS0`), IRQ3 for the second (`/dev/ttyS1`) (these are assuming you actually have such devices --- if you don't you can happily use their IRQ's), and IRQ5 for some SCSI adaptors.

Note that for ATI-XL, Inport and Logitech mice the kernel default is to use IRQ5, so if you are stuck with a pre-compiled kernel (eg, CD-ROM users) you will have to use that.

## 3.2 Inport and Logitech mice.

If you open up your computer's case and look at the card which your mouse plugs into, you should notice a block of jumpers on the card (hopefully labeled ``INTERRUPT'') with positions for interrupt (otherwise known as IRQ) numbers 2,3,4 and 5. To change the interrupt simply move the jumper from its current position onto the correct pair of pins.

> `

>     ***************************************************
>     ***     MAKE SURE YOUR COMPUTER IS TURNED OFF   ***
>     ***     BEFORE CHANGING THE JUMPERS AROUND.     ***
>     ***************************************************

> `

## 3.3 ATI-XL mice.

ATI-XL busmice have a software selectable IRQ - you should have received with your mouse a MS-DOS program (`VSETUP.EXE`) to set the IRQ. In order to do so you must (temporarily) boot MS-DOS and run this program. Note that the VSETUP program takes an optional parameter ``/70'' to increase the vertical refresh rate (which results in less flicker). The VSETUP program also allows you to select either the primary or secondary mouse address - you should set this to the primary address or the kernel will not be able to detect your mouse.

Once VSETUP has been run you must perform a hard reset for the new configuration to take effect.

## 3.4 PS/2 mice.

The PS/2 mouse always uses IRQ12 -- there is no way of changing this (except with a soldering gun.) In the rare case that some other device is using IRQ12, you'll have to rejumper that peripheral to use another IRQ number.

## 3.5 Compiling the kernel.

In order for your busmouse to operate correctly you will need to recompile your kernel with the busmouse support compiled in.

Change to your kernel directory (here assumed to be (`/usr/src/linux`) and do a

> `

>     make config

> `

If you are unsure as to your mouse type, the first time you recompile the kernel you may wish to enable all of the busmouse options in the hope that the kernel will autodetect your mouse properly. People have mixed sucess with this: it doesn't always work, but on the other hand it might save you any further compiles.

### Inport, Logitech and ATI-XL mice.

Answer ``y'' to the question pertaining to your type of busmouse interface and ``n'' to all the other busmouse questions. For example, if you have an Inport mouse you should answer ``y'' to

> `Microsoft busmouse support`

and ``n'' to all other busmouse questions. Answer the non-mouse related questions as you usually would.

If you have a Logitech or Inport mouse, edit the file `/usr/src/linux/include/linux/busmouse.h` and change the line which says

> ``#define MOUSE_IRQ 5``

to reflect the interrupt number for your mouse (see section setting the mouse interrupt for details on finding your interrupt number).

If you have an ATI-XL mouse, edit the file `/usr/src/linux/drivers/char/atixlmouse.c` and change the line which says

> `#define ATIXL_MOUSE_IRQ 5`

to reflect your mouse's interrupt number.

Due to the vagaries of the PC architecture, if you have set your mouse to use interrupt 2, you must set the #define to use interrupt 9.

Examples

For a mouse on interrupt 3, you should change the line to read

> `#define MOUSE_IRQ 3`

For a mouse on interrupt 2, you should change the line to read

> `#define MOUSE_IRQ 9`

Next, compile your kernel as per the instructions which come with it, and boot from the new kernel. You should now have the busmouse support correctly compiled in.

### PS/2 mice.

To compile the kernel with PS/2 mouse support answer ``y'' to the question.

> `PS/2 mouse (aka "auxiliary device") support`

The PS/2 mouse driver actually supports two kinds of devices: the standard PS/2 Auxiliary Device controller and a special PS/2 mouse interface chip from Chips & Technologies which is used in the Texas Instruments Travelmate and Gateway Nomad laptops. To compile in support for the trackballs on these computers, answer ``y'' to the

> `C&T 82C710 mouse port support (as on TI Travelmate)`

question. Note that you will still have to answer ``y'' to the question about the standard PS/2 driver to even get a chance to answer this question, since the 82C710 driver is actually an add-on to the standard PS/2 mouse driver.

When configured both for a standard PS/2 mouse device and the 82C710 device, the driver first tries to locate a 82C710 chip at boot time. Failing this, the standard driver is used instead, so using a kernel configured for both types of interface on a machine with a standard PS/2 mouse port should work too. However, there has been one report of a falsely detected 82C710 chip, so to be on the safe side do not configure in support for the 82C710 if you don't need it.

Compile your new kernel and boot from it as you normally would.

### Selection.

Regardless of your mouse type you should answer ``y'' to the

> `Selection (cut and paste for virtual consoles)`

question if you wish to run the selection program (see section selection for more details).

## 3.6 The mouse devices.

Mice under Linux are accessed via the devices in the `/dev` directory. The following table gives a list of interface types and which device you should use.

> `

>     INTERFACE        DEVICE        MAJOR    MINOR
>     ---------------------------------------------
>     Logitech        /dev/logibm      10       0
>     PS/2            /dev/psaux       10       1
>     Inport          /dev/inportbm    10       2
>     ATI-XL          /dev/atibm       10       3

>         Table 1.  Mouse devices.

> `

Note:

  If you are using your ATI-XL mouse with the Inport driver, you should use the `/dev/inportbm` device, not the `/dev/atibm` device.

The major and minor entries are the device numbers for that particular device.

If you find that you do not have these devices, you should create them first. To do so, execute the following as root.

> `

>     mknod /dev/logibm   c 10 0
>     mknod /dev/psaux    c 10 1
>     mknod /dev/inportbm c 10 2
>     mknod /dev/atibm    c 10 3

> `

Note:

  Some time in the (progressively less) recent history of Linux the names for the busmouse devices have changed. The following device names have been superceded by those above and should be removed: `bmousems, bmouseps2, bmouseatixl, bmouselogitech`.

Many people like to create a symbolic link from their mouse device to `/dev/mouse` so that they don't have to remember which device they need to be using. If you have one of the current Linux distributions you will almost certainly find that you have such a link. If you have such a link, or create one, you should make sure that it is pointing to the correct device for your mouse.

## 3.7 Testing your mouse.

Get the file `selection-1.6.tar.gz` from your local Linux ftp site and compile the program ``test-mouse'' within it, according to the instructions (all you should need to do is type ``make~test-mouse''). Run the program like this

> `test-mouse -t <mouse arg> -m <mouse dev>`

where <mouse arg> is ``bm'' (without the quotes) if you use the BusMouse protocol, or ``ps2'' if you use the PS/2 protocol, and <mouse dev> is your mouse device name from table 1.

If your mouse is working correctly, you should be able to paint on the screen by holding down the right or left mouse button and dragging the mouse. Push the left and right mouse buttons simultaneously to exit the program.

Next Chapter, Previous Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter