Mouse Support in XFree86® : OS Support for Mice
Previous: Supported Hardware
Next: Configuring Your Mouse

## 3. OS Support for Mice

### 3.1. Summary of Supported Mouse Protocol Types

                                    Protocol Types
                    serial     PnP     BusMouse    PS/2   Extended PS/2
    OS platforms   protocols  serial   protocol  protocol  protocols
                              "Auto"  "BusMouse"  "PS/2"   "xxxPS/2"    USB
    -------------------------------------------------------------------------
    BSD/OS            Ok        ?         ?         ?         ?          ?
    FreeBSD           Ok        Ok        Ok        Ok        SP*1       SP*1
    FreeBSD(98)       Ok        ?         Ok        NA        NA         ?
    Interactive Unix  Ok        NA        ?*1       ?*1       NA         ?
    Linux             Ok        Ok        Ok        Ok        Ok         ?
    Linux/98          Ok        ?         Ok        NA        NA         ?
    LynxOS            Ok        NA        Ok        Ok        NA         ?
    NetBSD            Ok        Ok        Ok        SP*1      SP*1       SP*1
    NetBSD/pc98       Ok        ?         Ok        NA        NA         NA
    OpenBSD           Ok        Ok        Ok        Ok*1      Ok*1       Ok*1
    OS/2              SP*2      SP*2      SP*2      SP*2      SP*2       ?
    SCO               Ok        ?         SP*1      SP*1      NA         ?
    Solaris 2.x       Ok        NA*1      ?*1       Ok        Ok         ?
    SVR4              Ok        NA*1      SP*1      SP*1      NA         ?
    PANIX             Ok        ?         SP*1      SP*1      NA         ?

    Ok: support is available,  NA: not available, ?: untested or unknown.
    SP: support is available in a different form

    *1 Refer to the following sections for details.
    *2 XFree86/OS2 will support any type of mouse that the OS supports,
       whether it is serial, bus mouse, or PnP type.

### 3.2. BSD/OS

No testing has been done with BSD/OS.

### 3.3. FreeBSD

FreeBSD supports the `"SysMouse"` protocol which must be specified when the `moused` daemon is running in versions 2.2.1 or later.

When running the `moused`daemon, you must always specify the `/dev/sysmouse` device and the `"SysMouse"` protocol to the X server, regardless of the actual type of your mouse.

FreeBSD versions 2.2.6 or later include the kernel-level support for extended PS/2 mouse protocols and there is no need to specify the exact protocol name to the X server. Instead specify the `"PS/2"` or `"Auto"` protocol and the X server will automatically make use of the kernel-level support.

In fact, `"Auto"` protocol support is really efficient in these versions. You may always specify `"Auto"` to any mouse, serial, bus or PS/2, unless the mouse is an old serial model which does not support PnP.

FreeBSD versions 2.2.5 or earlier do not support extended PS/2 mouse protocols (`"xxxPS/2"`). Always specify the `"PS/2"` protocol for any PS/2 mouse in these versions regardless of the brand of the mouse.

FreeBSD versions 3.1 or later have support for USB mice. Specify the `"Auto"` protocol for the `/dev/ums0` device. (If the `moused` daemon is running for the USB mouse, you must use `/dev/sysmouse` instead of `/dev/ums0` as explained above.) See the ums(4) manual page for details.

### 3.4. FreeBSD(98)

The PS/2 mouse is not supported.

### 3.5. Interactive Unix

The PnP serial mouse support (the `"Auto"` protocol) is not supported for the moment.

The bus mouse and PS/2 mouse should be supported by using the appropriate device drivers. Use `/dev/mouse` for the `"BusMouse"` protocol and `/dev/kdmouse` for the `"PS/2"` protocol. These protocols are untested but may work. Please send success/failure reports to michael.rohleder@stadt-frankfurt.de .

### 3.6. Linux

All protocol types should work.

### 3.7. Linux/98

The PS/2 mouse is not supported.

### 3.8. LynxOS

The PnP serial mouse support (the `"Auto"` protocol) is disabled in LynxOS, because of limited TTY device driver functionality.

### 3.9. NetBSD

NetBSD 1.3.x and former does not support extended PS/2 mouse protocols (`"xxxPS/2"`). The PS/2 mouse device driver `/dev/pms` emulates the bus mouse. Therefore, you should always specify the `"BusMouse"` protocol for any PS/2 mouse regardless of the brand of the mouse.

The `"wsmouse"` protocol introduced in NetBSD 1.4 along with the wscons console driver is supported. You need to run binaries compiled on NetBSD 1.4 to have support for it though. Use `"/dev/wsmouse0"` for the device. Refer to the wsmouse(4) manual page for kernel configuration informations.

This driver also provides support for USB mices. See the ums(4) manual page for details.

### 3.10. NetBSD/pc98

The PS/2 mouse is not supported.

### 3.11. OpenBSD

The raw PS/2 mouse device driver `/dev/psm0` uses the raw PS/2 mouse protocol.

OpenBSD 2.2 and earlier does not support extended PS/2 mouse protocols (`"xxxPS/2"`) . Therefore, you should specify the `"PS/2"` protocol for any PS/2 mouse regardless of the brand of the mouse.

OpenBSD 2.3 through 2.8 supports all extended PS/2 mouse protocols by selecting the `"Auto"` protocol for PnP PS/2 mice or any specific extended (`"xxxPS/2"`) protocol for non PnP mice. There is also a cooked PS/2 mouse device driver `/dev/pms0` which emulates the bus mouse. Specify the `"BusMouse"` protocol for any PS/2 mouse regardless of the brand of the mouse when using this device.

OpenBSD 2.9 and later supports the `"wsmouse"` protocol and `/dev/wsmouse0` device as described above for NetBSD 1.4 and later (though of course the remark about binaries does not apply). Again, see the wsmouse(4) man page.

XFree86 3.3.6 support USB mices on OpenBSD 2.6 and later though the generic Human Interface Device (hid) `/dev/uhid*`. Select the `"usb"` protocol and the `/dev/uhid*` instance corresponding to your mouse as the device name. For OpenBSD 2.9 and later, USB mice are supported by the wsmouse driver (see above).

### 3.12. OS/2

XFree86/OS2 always uses the native mouse driver of the operating system and will support any type of pointer that the OS supports, whether it is serial, bus mouse, or PnP type. If the mouse works under Presentation Manager, it will also work under XFree86/OS2.

Always specify `"OSMouse"` as the protocol type.

### 3.13. SCO

The bus and PS/2 mouse are supported with the `"OSMouse"` protocol type.

The `"OSMouse"` may also be used with the serial mouse.

### 3.14. Solaris

Testing has been done with Solaris 2.5.1 and 2.6. Logitech and Microsoft bus mice have not been tested, but might work with the `/dev/logi` and `/dev/msm` devices. Standard 2 and 3 button PS/2 mice work with the `"PS/2"` protocol type and the `/dev/kdmouse` device. The PnP serial mouse support (the `"Auto"` protocol) has been tested and does not work.

### 3.15. SVR4

The bus and PS/2 mouse may be supported with the `"Xqueue"` protocol type.

The `"Xqueue"` may also be used with the serial mouse.

The PnP serial mouse support (the `"Auto"` protocol) is not tested.

### 3.16. PANIX

The PC/AT version of PANIX supports the bus and PS/2 mouse with the `"Xqueue"` protocol type. The PC-98 version of PANIX supports the bus mouse with the `"Xqueue"` protocol type.

Mouse Support in XFree86® : OS Support for Mice
Previous: Supported Hardware
Next: Configuring Your Mouse