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 🙂
19 novembre, 2007 at 1:39
[…] poi volete raggiungere le massime prestazioni dal vostro mouse potete aumentare la frequenza di aggiornamento dati del mouse sul vostro […]
10 luglio, 2007 at 21:32
[…] Un gratz e un grazie al blogger, cliccare QUI. […]
9 luglio, 2007 at 22:14
È da marzo che ti seguo… continua cosi che vai forte!! Ciao!!
9 luglio, 2007 at 20:04
@simone
lol 😀 non sono pollycoke, ma sono felice di essere nel feed reader di qualcuno..
è più di una settimana che non scrivo e le mie visite si sono dimezzate 🙂
per quanto riguarda l’errore hai perfettamente ragione….
ho scritto l’articolo dopo una giornata di conti ed ero un po’ fuso… lo correggo al più presto
9 luglio, 2007 at 19:37
ops, sbagliato a salutare… avevo liferea aperto e pensavo fosse il blog di pollycoke… la correzione rimane comunque valida!!
Ciao!!
9 luglio, 2007 at 19:36
Ciao Felipe, c’è un incorrettezza nel post:
mousepolling=2 —> 2ms = 0.002 secondi —> 1/0.002 Hz = 500 Hz = 0.5 MHz
in realta 500hz sono 0.5KHz, non MHz…
Inoltre: 100*500 / 1000000
è sbagliato in quanto il conto corretto è:
100*500/1000000000 quindi 0,00005%…
riepilogando
K=1000 (kilo-mille)
M=1000000 (mega-milione)
G = 1000000000 (giga-miliardo)
Ciao, alla prossima…