FAQ FreeBSD - Клавиатура и мышь. Часть 3
ОГЛАВЛЕНИЕ
2.14. Похоже, что моя мышь не работает. Её курсор прыгает по экрану. Мышь имеет колёсико и подключено к порту мыши PS/2.
В драйвере psm для мыши PS/2 во FreeBSD версий 3.2 и ранее имеются проблемы при
работе с некоторыми мышками, у которых есть колёсико, в том числе с мышками
Logitech модель M-S48 и их OEM-разновидностями. Исправьте файл /sys/i386/isa/
psm.c с помощью следующего патча и перестройте ядро.
Index: psm.c
===================================================================
RCS file: /src/CVS/src/sys/i386/isa/Attic/psm.c,v
retrieving revision 1.60.2.1
retrieving revision 1.60.2.2
diff -u -r1.60.2.1 -r1.60.2.2
--- psm.c 1999/06/03 12:41:13 1.60.2.1
+++ psm.c 1999/07/12 13:40:52 1.60.2.2
@@ -959,14 +959,28 @@
sc->mode.packetsize = vendortype[i].packetsize;
/* set mouse parameters */
+#if 0
+ /*
+ * A version of Logitech FirstMouse+ won't report wheel movement,
+ * if SET_DEFAULTS is sent... Don't use this command.
+ * This fix was found by Takashi Nishida.
+ */
i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS);
if (verbose >= 2)
printf("psm%d: SET_DEFAULTS return code:%04x\n", unit, i);
+#endif
if (sc->config & PSM_CONFIG_RESOLUTION) {
sc->mode.resolution
= set_mouse_resolution(sc->kbdc,
- (sc->config & PSM_CONFIG_RESOLUTION) - 1);
+ (sc->config & PSM_CONFIG_RESOLUTION) - 1);
+ } else if (sc->mode.resolution >= 0) {
+ sc->mode.resolution
+ = set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution);
+ }
+ if (sc->mode.rate > 0) {
+ sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate);
}
+ set_mouse_scaling(sc->kbdc, 1);
/* request a data packet and extract sync. bits */
if (get_mouse_status(sc->kbdc, stat, 1, 3) < 3) {
Версии FreeBSD выше чем 3.2 должны работать нормально.
2.15. Как использовать мышь/трэкболл/сенсорную панель на лэптопе?
Посмотрите один из предыдущих разделов. И посмотрите это замечание на странице
о мобильных вычислениях.