¿Cómo hacer que Logitech Anywhere MX funcione en Ubuntu 12.X?

14

Tengo un mouse Logitech Anywhere MX (inalámbrico), cuando lo conecto a la computadora no funciona.

El mouse funciona en otras computadoras con Windows y con Fedora 17 y Fedora 19, pero no funciona en dos computadoras diferentes con Ubuntu 12.04 y 12.10. Además, estas mismas computadoras funcionan con otro mouse inalámbrico de Microsoft.

Así que creo que la combinación de Logitech MX y Ubuntu no funciona bien.

La dmesgentrada del registro se ve así:

[  578.845838] usb 3-2: Product: USB Receiver
[  578.845841] usb 3-2: Manufacturer: Logitech
[  578.851625] logitech-djreceiver 0003:046D:C52B.0009: hiddev0,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:14.0-2/input2
[  578.851899] logitech-djreceiver 0003:046D:C52B.0009: logi_dj_probe:logi_dj_recv_query_paired_devices error:-32
[  578.854518] logitech-djreceiver: probe of 0003:046D:C52B.0009 failed with error -32

En lugar de lo esperado (tomado de Fedora):

[154344.634520] usb 2-1.2: Manufacturer: Logitech
[154344.647935] logitech-djreceiver 0003:046D:C52B.000D:
hiddev0,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on
usb-0000:00:1d.0-1.2/input2
[154344.653788] input: Logitech Unifying Device. Wireless PID:1017 as
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.2/0003:046D:C52B.000D/input/input21
[154344.654192] logitech-djdevice 0003:046D:C52B.000E: input,hidraw1:
USB HID v1.11 Mouse [Logitech Unifying Device. Wireless PID:1017] on
usb-0000:00:1d.0-1.2:1

ACTUALIZACIÓN: Yo diría que en este punto, solaares el camino a seguir. Así que acepté una respuesta anterior que sugiere esto.

alfC
fuente
Parece que esta es una solución, funcionó para mí las dos veces que lo intenté: askubuntu.com/a/196915/15943 . También se agradece una solución permanente.
alfC
ok, hablé demasiado temprano, el truco anterior no funcionó nuevamente.
alfC
Permítanme aclarar que esto parece ser un problema con el núcleo, porque el mismo problema ocurre en Fedora 18 (usando el núcleo 3.7.2). Afortunadamente, la solución marcada también resuelve este problema en Fedora 18.
alfC
Esto puede resolver el problema de los dispositivos Logitech: webupd8.org/2013/07/pair-unpair-logitech-unifying-devices.html . No lo intenté todavía.
alfC

Respuestas:

5

Solaar trabajó para mí en 12.04. En tipo de terminal:

sudo add-apt-repository ppa:daniel.pavel/solaar  
sudo apt-get update  
sudo apt-get install solaar  

Una vez instalado, abra Solaar desde el menú del Tablero y haga clic en en la esquina superior izquierda. Haga clic en en la esquina inferior derecha y siga las instrucciones.

Si ya tenía los dispositivos de Logitech emparejados con otra computadora, es posible que primero necesite desvincular los dispositivos de Logitech de las otras computadoras. Después de que reinicie Ubuntu sin el receptor Logitech en USB, inicie Solaar desde Dash / menu, conecte el receptor Logitech, haga clic en 'agregar nuevos dispositivos' y encienda / apague el nuevo dispositivo para que sea reconocido. Repita para cada dispositivo.

Una vez emparejados, los dispositivos se reconocen cada vez que inicias ubuntu (Solaar se instala automáticamente en 'aplicaciones de inicio').

Consulte también este enlace como fuente http://www.webupd8.org/2013/07/pair-unpair-logitech-unifying-devices.html o para obtener más solución de problemas

ubunoop
fuente
La respuesta es bastante antigua, pero: en 16.04 solaarya está en el repositorio principal, ¡así que uno puede instalarlo directamente!
Lapshin Dmitry
14

Mejoré el script en la parte superior y luego también agregué una regla udev para disparar cada vez que se conectó el mouse. Estoy usando un Logitech Performance MX pero la regla debería ser similar.

#!/bin/bash

# loop up to 10 times trying to fix the mouse insertion
for i in {1..10}
do

  # exit the script if there was no mouse error
  if [ `dmesg | grep "logitech-djreceiver" | tail -1 | grep -c "failed with error -32"` -eq 0 ]; then
    echo "No logitech receiver error...exiting" ;
    exit 0 ;
  else
    # try to reload the mouse driver
    echo `date`" Error detected, trying reload of logitech hid driver" ;
    rmmod hid_logitech_dj ;
    modprobe hid_logitech_dj ;
    sleep 1 ;
  fi

done

Esto intenta hasta 10 veces volver a cargar el controlador antes de salir.

Llamé el guión /usr/bin/mousefixe hice un chmod +x.

Aquí está la regla de udev, una línea que se puede agregar a /etc/udev/rules.d/10-local.rules

SUBSYSTEMS=="usb", DRIVERS=="usb", ATTRS{manufacturer}=="Logitech", ATTRS{product}=="USB Receiver", ACTION=="add", RUN+="/usr/bin/mousefix"

Espero que esto ayude a alguien más. Parecía una cosa más fácil hacer que el script se ejecutara siempre que se conectara el usb.

Dennis Kubes
fuente
1
Trabajó con Logitech Anywhere MX, tanto en el inicio como en la conexión del enchufe USB. Aceptaré esta respuesta porque da una solución permanente.
alfC
Mi mousefixscript no se ejecuta sin sudo... Recibo el error "ERROR: Eliminando 'hid_logitech_dj': Operación no permitida". ¿Alguna sugerencia?
Jesse Webb
@JesseWebb: intenta chmod a+xotorgar privilegios de ejecución universal.
Jess Telford
Busqué una solución para mis problemas con el receptor Logitech Unifying durante una semana antes de encontrar esto. Funciona muy bien, ¡GRACIAS!
Nathan Loding
Gracias por la solucion. ¡Esto me impidió tirar lo que pensé que era un mouse defectuoso!
Flimzy
5

Solo necesita actualizar el sistema si está utilizando 12.04 o 12.10.

He tenido varias preguntas relacionadas con Anywhere Mouse y Touch Mouse M600

¿Es compatible el receptor unificador de Logitech?

¿Puedo usar el Logitech Touch Mouse M600?

Incluso participé en este error de launchpad: https://bugs.launchpad.net/linux/+bug/958174 donde varias soluciones como:

sudo modprobe -r hid_logitech_dj
sudo modprobe hid_logitech_dj

se mencionaron, pero al final, la actualización del sistema solucionó todos los problemas con ambos ratones.

Incluso hay una respuesta de askubuntu al respecto aquí: Logitech M515 no funciona después de la actualización a 12.04

Pero para las 4 computadoras que probé esto, la solución fue activar todos los repositorios por defecto no activados (universo, multiverso, propuesto, backport), hacer una actualización y actualización. Reiniciar y el mouse debería funcionar perfectamente.

Si por casualidad hacer esto no soluciona el problema, entonces hacer un diagnóstico ayudará, por ejemplo:

  1. Después de reiniciar, desconecte / conecte el receptor Logitech. Abra una terminal y escriba dmesgpara ver las últimas líneas que mencionarán el receptor. Vea si apareció un error.

  2. Tipo lsusb. Debería ver una línea similar a la siguiente si todo se detectó correctamente:

    Bus 002 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver

  3. Encienda / apague el mouse (el interruptor de encendido / apagado del mouse está debajo) y pruebe.

Esto ha sido probado en puertos USB 2.0 y 3.0. Para asegurarse (al menos para la mayoría de los usuarios) de que esto funciona, TODOS los repositorios deben estar activados. Como las siguientes 3 imágenes:

Aquí vemos principal , universo , restringido y multiverso activado. También cambié el servidor de mi país a PRINCIPAL

ingrese la descripción de la imagen aquí

Aquí activé desde que estaban apagados, los repositorios de Canonical y de terceros.

ingrese la descripción de la imagen aquí

Aquí podemos ver los backports propuestos y activados (además de seguridad y actualizaciones).

ingrese la descripción de la imagen aquí

Después de todo lo que hice a sudo apt-get update && sudo apt-get upgrade. Reinició la PC y listo.

El mouse debería funcionar siempre que esté encendido, pero si esto falla, veo un par de razones por las cuales:

  • El mouse Anywhere MX realmente agota las baterías más rápido que otros ratones que he probado. En mis pruebas, Anywhere MX usa 2 veces más batería que el Touch Mouse M600 y al menos 20 veces más que el Logitech V450. Por ejemplo, si lo usa todos los días, puede usar Anywhere MX durante 1.5 meses a 2 meses. El Touch Mouse dura alrededor de 4 a 5 meses. El V450 dura claramente un año completo hasta 16 meses. Así que revisa las baterías. Sospecho que esto se debe a la tecnología Darkfield.

  • El mouse Anywhere MX cuando se enciende una luz verde parpadeará durante aproximadamente 3 segundos y luego se apagará. Esto no significa que el mouse esté apagado, solo significa que las baterías del mouse están en buen estado. Si las luces eran rojas, entonces debes cambiarlas. En cualquier caso, la luz se encenderá en verde o rojo y luego se apagará para conservar las baterías.

  • El interruptor para encender / apagar el mouse a continuación se puede cambiar cualquier cantidad de veces cuando se usa Ubuntu, pero es mejor apagar el mouse cuando no se usa. De esta manera durará más. Por ejemplo al dormir, ir a trabajar, etc.

  • Ciertas opciones de BIOS pueden tener un impacto en el mouse. Verifique el BIOS de su placa base para ver las opciones de USB. Juega con ellos por si acaso el mouse no funciona.

  • Cambie el puerto USB donde está conectado el receptor. Se sabe que algunos puertos (como los puertos frontales) realmente apestan al tener dispositivos de alta potencia en ellos.

Luis Alvarado
fuente
Parece que backportses la clave. No me activé proposedporque tuve problemas muchas veces y tuve universey multiversedesde el principio). Ahora funciona fuera de la caja.
alfC
Bueno, la actualización del sistema (todavía no propuesta) funcionó una vez, solo por casualidad. Tuve que recurrir al truco modprobe, que parecía funcionar solo una vez, luego probé la solución Wendel y funcionó.
alfC
Finalmente instalé el proposedrepositorio y actualicé / actualicé como último recurso; No funciona todavía. Un detalle a mencionar es que en esta computadora todos los puertos usb son 3.0.
alfC
No te preocupes por los puertos USB 3.0. Acabo de probar los de mi computadora y el mouse aún funciona. Voy a actualizar mi respuesta, pero sería increíble si pudiéramos hablar en el chat. Te invitaré a un chat e intentaré resolverlo allí para evitar tener mil comentarios aquí.
Luis Alvarado
4

Hay una solución alternativa, usando este script (copie esto en un script .sh, chmod + x este archivo y ejecútelo como root:

#!/bin/bash
while :; do dmesg|grep logitech-djreceiver|tail -1|grep -q -c "failed with error -32" || exit; 
echo -n `date`" Driver Reload" ; 
rmmod hid_logitech_dj ; 
modprobe hid_logitech_dj ; 
dmesg|grep logitech-djreceiver|tail -1 ; sleep 1; done

O descargue mousefix.sh, que es un enlace en esta página aquí:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1039143/comments/55

Esta solución funciona al eliminar y volver a agregar (rmmod + modprobe) hid_logitech_dj, que es el módulo responsable del receptor unificador. Hace esto en un ciclo while una vez por segundo hasta que finalmente se reconoce.

Aparentemente, hay un error en el kernel de Linux al usar este receptor en un puerto XHCI (USB 3) y versiones más recientes del kernel de Linux. Probablemente funciona bien en puertos USB2. (?)

Aquí está el extenso hilo sobre este problema, donde los desarrolladores y muchas otras personas han estado trabajando para solucionar este problema.

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1039143

Apoyos a Jelle Foks por resolver esto. Me había estado volviendo loco por años.

Cuando dejo mi receptor todo el tiempo, ejecuto este script en el arranque y lo reanudo desde el reposo para una solución "automática" y ha estado funcionando muy bien el último momento.

Hazme saber si esto funciona.

Wendell
fuente
0

K, muchas gracias "Dennis Kubes" por tu guión, pero no funcionó para mí. Tuve que ajustarlo para que funcione:

#!/bin/bash

# loop up to 10 times trying to fix the mouse insertion
    sudo modprobe -r hid_logitech_dj && sudo modprobe hid_logitech_dj ;

for i in {1..10}
do

  # exit the script if there was no mouse error
  if [ `dmesg | tail -1 |  grep "logitech-djreceiver: probe of" | grep -c "error -32"` -eq 0 ]; then
    echo "No logitech receiver error...exiting" ;
    exit 0 ;
  else
    # try to reload the mouse driver
    echo `date`" Error detected, trying reload of logitech hid driver" ;
    sudo modprobe -r hid_logitech_dj && sudo modprobe hid_logitech_dj ;
    sleep 1 ;
  fi

done

Espero que esto ayude a alguien.

suther
fuente