Se siete dei giocatori incalliti non potete fare a meno di questa chicca!

I mouse USB vengono interrogati periodicamente (di default ogni 10 ms) dal sistema per raccogliere i “nuovi” dati

10 millisecondi è un tempo più che sufficiente come frequenza di aggiornamento ( o mouse polling ) per praticamente tutte le attività..

se però siete dei video giocatori (soprattutto di FPS, First Person Shooter) potrebbe farvi comodo avere un aggiornamento più frequente, e quindi una maggior fluidità!

alcuni neppure lo notano.. sta a voi testare🙂

quel che si deve fare è montare un modulo (usbhid) con il parametro mousepolling=X, dove X è un intero che rappresenta ogni quanti millisecondi aggiornarlo.

facciamo un esempio:

mousepolling=2 —> 2ms = 0.002 secondi —> 1/0.002 Hz = 500 Hz = 0.5 KHz

che significa? che occuperete 500 Hz del vostro processore per interrogare il mouse, se avete un processore da 1 GHz (Giga Hertz) sarà occupato circa lo 0.00005% del vostro processore per interrogare il mouse ( 100*500 / 1000000000 )

2ms dovrebbe essere abbastanza per tutti… valutate voi anche in base alla potenza del vostro processore!

Vediamo come configurarlo

qui bisogna vedere se il modulo usbhid è caricato come modulo o no

da terminale:

lsmod | grep usbhid

risultato (esempio)

usbhid 41184 0
usbcore 116868 6 usbhid,zd1211,hsfosspec,ehci_hcd,ohci_hcd

se vedete il modulo usbhid nella lista allora è un modulo🙂 in quasi tutti i sistemi sarà così

possiamo fare una prova veloce per impostare il parametro mousepolling.. da un terminale di root dobbiamo dare questo comando:

modprobe -r usbhid && modprobe usbhid mousepoll=2

o se preferite da un normale terminale

sudo modprobe -r usbhid && sudo modprobe usbhid mousepoll=2

AVVERTENZA: questo metodo non è molto ortodosso.. stiamo scaricando un modulo in uso e ricaricandolo con il parametro mousepoll=2, il che non è troppo carino visto che il modulo è in uso… in più non è permanente, cioè questo cambiamento sparirà al prossimo riavvio.. va bene giusto per “provare” qualche parametro… non abusatene

è molto meglio impostare il sistema perché carichi il modulo usbhid con il parametro che vogliamo, ecco come fare

Debian (e derivati, come Ubuntu)

sudo gedit /etc/modprobe.d/usbhid

inserire nel file (che probabilmente abbiamo appena creato) questa riga:

options usbhid mousepoll=2

salvarlo e chiudere l’editor

Altri sistemi

il metodo per debian dovrebbe funzionare, se non funzionasse potete provare a modificare il file /etc/modules.d/usbhid o /etc/modules.conf aggiungendo quella riga in fondo al file, oppure la stessa cosa con il file /etc/modprobe.conf

aggiungendo quella riga nel file al prossimo riavvio dovrebbe essere caricato correttamente, e lo possiamo verificare con questo comando:

cat /sys/module/usbhid/parameters/mousepoll

che dovrebbe restituirci semplicemente un numero ( 2 nel nostro esempio )

di default dovrebbe restituire 0 (zero) se non abbiamo cambiato nulla

Se NON e’ un modulo

significa che è all’interno del kernel.. quindi dobbiamo passare il parametro al boot!

qui spiegherò come fare se si usa Grub come boot manager, il metodo è analogo per chi usa altri bootloader e rimando alle guide che spiegano come modificare i parametri del kernel degli altri bootloader (es. Lilo)

chi ha Ubuntu o Debian ha probabilmente Grub

ATTENZIONE: quando modificate questo file state molto attenti, se fate porcate non si avvierà più il sistema.. un backup non fa male😉

apriamo in modifica (e come amministratori) il file /boot/grub/menu.lst

sudo gedit /boot/grub/menu.lst

e cerchiamo la riga di avvio del nostro kernel, qualcosa come questo

title Debian GNU/Linux, kernel 2.6.18-k8-jackoss
root (hd0,4)
kernel /boot/vmlinuz-2.6.18-k8-jackoss root=/dev/hda5 ro vga=771
savedefault

la riga che interessa è quella che comincia con “kernel” (probabilmente ce ne saranno molte)

dovete semplicemente aggiungere a fine riga questo:

usbhid.mousepoll=2

ottenendo quindi

kernel /boot/vmlinuz-2.6.18-k8-jackoss root=/dev/hda5 ro vga=771 usbhid.mousepoll=2

Note finali (x + esperti)

potete verificare se e come usbhid è compilato nel kernel con questi comandi

zgrep CONFIG_USB_HID= /proc/config.gz

oppure

grep CONFIG_USB_HID= /boot/config-$(uname -r)

possibili risultati:

CONFIG_USB_HID=m <— modulo

CONFIG_USB_HID=y <— dentro al kernel

# CONFIG_USB_HID is not set <— non avete usbhid (quindi non vi funziona il mouse usb😀 )

Links (inglese)

Linux-Gamers.net MousePolling Howto

Gentoo Wiki MousePolling Howto con una piccola lista di mouse per cui è conosciuto il funzionamento e con la guida per chi ha Lilo come bootloader🙂