E aí, cara!
(...)
(...)
Outro dia resolvi pegar esse maldito mouse de jeito. Gastei um bom
tempo caçando uma solução por aí até achar. No momento em que achei,
concluí que estava usando palavras chaves erradas na pesquisa (a gente
vai aprendendo com os erros), mas mesmo assim achei e é isso o que
importa:
http://bugzilla.kernel.org/show_bug.cgi?id=5703
É interessante ler toda a discussão em torno do problema mas, se você
não quiser, basta aplicar esse patch
http://bugzilla.kernel.org/attachment.cgi?id=6855&action=view no
arquivo psmouse-base.c do source do kernel 2.6.15 e compilar o danado.
Moleza.
O source do kernel você baixa desse link:
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.2.tar.bz2
Tô mandando em anexo o patch com uma modificação que fiz para ser
rodado a partir da raíz do diretório criado após a extração dos
arquivos do source do kernel (no meu caso: /usr/src/linux-2.6.15). Pra
aplicá-lo, antes você deve copiar o arquivo psmouse-base.c para
psmouse-base.c.orig com o comando:
cp drivers/input/mouse/psmouse-base.c drivers/input/mouse/psmouse-base.c.orig
Depois aplica o patch (a partir do diretório raíz criado pela extração
do source!):
patch -p0 < patch-mouse.txt
E compila o kernel:
http://www.debian.org/doc/manuals/reference/ch-kernel.en.html
No mais, é isso. Espero que ajude. Qualquer coisa, estamos aí...
Forte abraço,
--
.''`. Pablo Aguiar <pabloaguiar at gmail dot com>
: :' : Proud Debian GNU/Linux Admin and User
`. `'` GNU/Linux User #346447 - PC #238975
`- Debian, when you have better things to do than fix a system.
------------------------------------------------------------------------
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---
drivers/input/mouse/psmouse-base.c | 15 ++++++---------
1 files changed, 6 insertions(+), 9 deletions(-)
Index:drivers/input/mouse/psmouse-base.c
===================================================================
--- drivers/input/mouse/psmouse-base.c.orig
+++ drivers/input/mouse/psmouse-base.c
@@ -527,11 +527,15 @@ static int psmouse_extensions(struct psm
if (max_proto > PSMOUSE_IMEX && ps2pp_init(psmouse, set_properties) == 0)
return PSMOUSE_PS2PP;
+ if (max_proto > PSMOUSE_IMEX && trackpoint_detect(psmouse, set_properties) == 0)
+ return PSMOUSE_TRACKPOINT;
+
/*
* Reset to defaults in case the device got confused by extended
- * protocol probes.
+ * protocol probes. Note that we do full reset becuase some mice
+ * put themselves to sleep when see PSMOUSE_RESET_DIS.
*/
- ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
+ psmouse_reset(psmouse);
if (max_proto >= PSMOUSE_IMEX && im_explorer_detect(psmouse, set_properties) == 0)
return PSMOUSE_IMEX;
@@ -540,12 +544,6 @@ static int psmouse_extensions(struct psm
return PSMOUSE_IMPS;
/*
- * Try to initialize the IBM TrackPoint
- */
- if (max_proto > PSMOUSE_IMEX && trackpoint_detect(psmouse, set_properties) == 0)
- return PSMOUSE_TRACKPOINT;
-
-/*
* Okay, all failed, we have a standard mouse here. The number of the buttons
* is still a question, though. We assume 3.
*/
@@ -559,7 +557,6 @@ static int psmouse_extensions(struct psm
* extensions.
*/
psmouse_reset(psmouse);
- ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
}
return PSMOUSE_PS2;