Por algum motivo bizarro meu mouse passou a não funcionar quando ligo meu PC.  A propósito, para fazer minha parte quanto à crise energética na europa, eu passei a deixar meu PC desligado.  Só o ligo quando vou usar, e depois desligo novamente.  Algo que não fazia há algumas décadas.

Mas voltando ao assunto mouse, por algum motivo bizarro o mouse parou de funcionar.  Ao desconectar e reconectar na USB, ele passava a funcionar.

Então resolvi fazer isso por software, num script que botei no /etc/rc.local, uma vez que rodo o rc-local no systemd.

MOUSE_PRODUCT="G203 Prodigy Gaming Mouse"

cd /sys/bus/usb/devices || \
  die "It seems /sys interface isn't available."

echo "Detecting mouse:"
mouse_id=""
for d in *
do
  if [ ! -f "$d/product" ]; then
    continue
  fi
  echo -n " * $d: "
  product=$(cat $d/product)

  if [ "$product" = "$MOUSE_PRODUCT" ]; then
    echo "$product (DEVICE FOUND)"
    mouse_id="$d"
  else
    echo $product
  fi
done

if [ -z "$mouse_id" ]; then
  die "device not foud"
fi

echo "Restarting $mouse_id ($MOUSE_PRODUCT)"
echo " * unbinding"
echo "$mouse_id" > /sys/bus/usb/drivers/usb/unbind
sleep 3
echo " * binding"
echo "$mouse_id" > /sys/bus/usb/drivers/usb/bind

Esse foi o código inicial que usei, mas descobri logo que dar um reset no mouse não era o suficiente.  O mais efetivo era dar um reset no hub USB em que está conectado.  Assim alterei pra usar "USB2.0 Hub".

O resultado:

helio@goosfraba ~> sudo homemadescripts/restart_mouse.sh
Detecting mouse:
 * 1-4: CSR8510 A10
 * 2-5: Lexmark MC3224dwe
 * 5-1: PLAYSTATION(R)3Conteroller
 * 8-1: USB2.0 Hub
 * 8-1.1: HyperX Quadcast
 * 8-1.2: HD Pro Webcam C920
 * 8-1.3: G432 Gaming Headset
 * 8-1.4: USB2.0 Hub
 * 8-1.4.1: Keychron C1
 * 8-1.4.4: G203 Prodigy Gaming Mouse (DEVICE FOUND)
 * 9-1: USB3.0 Hub
 * 9-1.4: USB3.0 Hub
 * usb1: OHCI PCI host controller
 * usb2: EHCI Host Controller
 * usb3: EHCI Host Controller
 * usb4: EHCI Host Controller
 * usb5: OHCI PCI host controller
 * usb6: OHCI PCI host controller
 * usb7: OHCI PCI host controller
 * usb8: xHCI Host Controller
 * usb9: xHCI Host Controller
Restarting 8-1.4 (USB2.0 Hub)
 * unbinding
 * binding

e temos um mouse funcionando :)

O código está no github: https://github.com/helioloureiro/homemadescripts/blob/master/restart_mouse.sh

We use cookies

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.