Dual booting: every time Windows boots, it increases the scrolling speed of the mouse on Ubuntu
My friend has Microsoft Wireless Desktop 850 with AES (PY9-00001) Ubuntu 18.04. The scrolling speed is too fast, but if he removes the USB dongle and plugs it in again, it fixes the problem.
He's on a dual booted PC, and every time he boots Windows then boots back into Ubuntu, the problem is back.
How can we fix it for good?
The problem only occurs after soft reboot only.
lsusb
when the mouse is working perfectly
lsusb
when it's not working, when booting Windows then Ubuntu
When the mouse is working as expected, lsmod
outputs
Module Size Used by
nls_iso8859_1 16384 1
joydev 24576 0
input_leds 16384 0
snd_hda_codec_realtek 94208 1
snd_hda_codec_generic 73728 1 snd_hda_codec_realtek
snd_hda_intel 40960 5
snd_hda_codec 126976 3 snd_hda_intel,snd_hda_codec_generic,snd_hda_codec_realtek
mei_me 40960 0
snd_hda_core 81920 4 snd_hda_intel,snd_hda_codec,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hwdep 20480 1 snd_hda_codec
snd_pcm 98304 4 snd_hda_intel,snd_hda_codec,snd_hda_core
snd_seq_midi 16384 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 32768 1 snd_seq_midi
lpc_ich 24576 0
intel_rapl 20480 0
x86_pkg_temp_thermal 16384 0
intel_powerclamp 16384 0
coretemp 16384 0
kvm_intel 204800 0
mei 90112 1 mei_me
kvm 593920 1 kvm_intel
irqbypass 16384 1 kvm
crct10dif_pclmul 16384 0
crc32_pclmul 16384 0
ghash_clmulni_intel 16384 0
pcbc 16384 0
snd_seq 65536 2 snd_seq_midi_event,snd_seq_midi
snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer 32768 2 snd_seq,snd_pcm
aesni_intel 188416 0
aes_x86_64 20480 1 aesni_intel
crypto_simd 16384 1 aesni_intel
glue_helper 16384 1 aesni_intel
cryptd 24576 3 crypto_simd,ghash_clmulni_intel,aesni_intel
intel_cstate 20480 0
intel_rapl_perf 16384 0
snd 81920 19 snd_hda_intel,snd_hwdep,snd_seq,snd_hda_codec,snd_timer,snd_rawmidi,snd_hda_codec_generic,snd_seq_device,snd_hda_codec_realtek,snd_pcm
shpchp 36864 0
soundcore 16384 1 snd
mac_hid 16384 0
intel_smartconnect 16384 0
sch_fq_codel 20480 2
parport_pc 36864 0
ppdev 20480 0
lp 20480 0
parport 49152 3 lp,parport_pc,ppdev
ip_tables 28672 0
x_tables 40960 1 ip_tables
autofs4 40960 2
hid_generic 16384 0
usbhid 49152 0
uas 24576 0
hid 118784 2 hid_generic,usbhid
usb_storage 69632 3 uas
i915 1617920 66
i2c_algo_bit 16384 1 i915
drm_kms_helper 172032 1 i915
syscopyarea 16384 1 drm_kms_helper
ahci 36864 3
sysfillrect 16384 1 drm_kms_helper
mxm_wmi 16384 0
sysimgblt 16384 1 drm_kms_helper
libahci 32768 1 ahci
fb_sys_fops 16384 1 drm_kms_helper
r8169 86016 0
drm 401408 11 i915,drm_kms_helper
mii 16384 1 r8169
video 45056 1 i915
wmi 24576 1 mxm_wmi
When the mouse is not working as it should, lsmod
outputs
Module Size Used by
nls_iso8859_1 16384 1
input_leds 16384 0
joydev 24576 0
snd_hda_codec_realtek 94208 1
snd_hda_codec_generic 73728 1 snd_hda_codec_realtek
snd_hda_intel 40960 5
snd_hda_codec 126976 3 snd_hda_intel,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_core 81920 4 snd_hda_intel,snd_hda_codec,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hwdep 20480 1 snd_hda_codec
snd_pcm 98304 4 snd_hda_intel,snd_hda_codec,snd_hda_core
snd_seq_midi 16384 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 32768 1 snd_seq_midi
intel_rapl 20480 0
x86_pkg_temp_thermal 16384 0
intel_powerclamp 16384 0
coretemp 16384 0
kvm_intel 204800 0
kvm 593920 1 kvm_intel
irqbypass 16384 1 kvm
crct10dif_pclmul 16384 0
crc32_pclmul 16384 0
ghash_clmulni_intel 16384 0
pcbc 16384 0
aesni_intel 188416 0
aes_x86_64 20480 1 aesni_intel
crypto_simd 16384 1 aesni_intel
glue_helper 16384 1 aesni_intel
cryptd 24576 3 crypto_simd,ghash_clmulni_intel,aesni_intel
intel_cstate 20480 0
intel_rapl_perf 16384 0
snd_seq 65536 2 snd_seq_midi_event,snd_seq_midi
mei_me 40960 0
lpc_ich 24576 0
snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer 32768 2 snd_seq,snd_pcm
mei 90112 1 mei_me
snd 81920 19 snd_hda_intel,snd_hwdep,snd_seq,snd_hda_codec,snd_timer,snd_rawmidi,snd_hda_codec_generic,snd_seq_device,snd_hda_codec_realtek,snd_pcm
shpchp 36864 0
soundcore 16384 1 snd
mac_hid 16384 0
intel_smartconnect 16384 0
sch_fq_codel 20480 2
parport_pc 36864 0
ppdev 20480 0
lp 20480 0
parport 49152 3 lp,parport_pc,ppdev
ip_tables 28672 0
x_tables 40960 1 ip_tables
autofs4 40960 2
hid_generic 16384 0
usbhid 49152 0
uas 24576 0
hid 118784 2 hid_generic,usbhid
usb_storage 69632 3 uas
mxm_wmi 16384 0
i915 1617920 56
i2c_algo_bit 16384 1 i915
drm_kms_helper 172032 1 i915
ahci 36864 3
r8169 86016 0
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
libahci 32768 1 ahci
mii 16384 1 r8169
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
drm 401408 7 i915,drm_kms_helper
wmi 24576 1 mxm_wmi
video 45056 1 i915
The output of xinput
:
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Microsoft Microsoft® 2.4GHz Transceiver v8.0 id=9 [slave pointer (2)]
⎜ ↳ Microsoft Microsoft® 2.4GHz Transceiver v8.0 id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Microsoft Microsoft® 2.4GHz Transceiver v8.0 id=10 [slave keyboard (3)]
↳ Microsoft Microsoft® 2.4GHz Transceiver v8.0 id=12 [slave keyboard (3)]
↳ Microsoft Microsoft® 2.4GHz Transceiver v8.0 id=13 [slave keyboard (3)]
And
$ sudo lsof /dev/bus/usb/003/003
[sudo] password for nad:
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
lsof: status error on /dev/bus/usb/003/003: No such file or directory
lsof 4.89
latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
usage: [-?abhKlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-E] [+|-e s] [+|-f[gG]]
[-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Use the ``-h'' option to get more help information.
lsmod
without plugging in the mouse dongle (so the mouse and keyboard combo are unplugged)
Module Size Used by
usbhid 49152 0
nls_iso8859_1 16384 1
intel_rapl 20480 0
x86_pkg_temp_thermal 16384 0
intel_powerclamp 16384 0
snd_hda_codec_realtek 94208 1
coretemp 16384 0
snd_hda_codec_generic 73728 1 snd_hda_codec_realtek
snd_hda_intel 40960 5
snd_hda_codec 126976 3 snd_hda_intel,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_core 81920 4 snd_hda_intel,snd_hda_codec,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hwdep 20480 1 snd_hda_codec
kvm_intel 208896 0
snd_pcm 98304 4 snd_hda_intel,snd_hda_codec,snd_hda_core
kvm 593920 1 kvm_intel
snd_seq_midi 16384 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 32768 1 snd_seq_midi
irqbypass 16384 1 kvm
crct10dif_pclmul 16384 0
crc32_pclmul 16384 0
ghash_clmulni_intel 16384 0
snd_seq 65536 2 snd_seq_midi_event,snd_seq_midi
snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer 32768 2 snd_seq,snd_pcm
snd 81920 19 snd_hda_intel,snd_hwdep,snd_seq,snd_hda_codec,snd_timer,snd_rawmidi,snd_hda_codec_generic,snd_seq_device,snd_hda_codec_realtek,snd_pcm
joydev 24576 0
input_leds 16384 0
mei_me 40960 0
pcbc 16384 0
soundcore 16384 1 snd
mei 90112 1 mei_me
aesni_intel 188416 0
aes_x86_64 20480 1 aesni_intel
crypto_simd 16384 1 aesni_intel
glue_helper 16384 1 aesni_intel
cryptd 24576 3 crypto_simd,ghash_clmulni_intel,aesni_intel
intel_cstate 20480 0
intel_rapl_perf 16384 0
lpc_ich 24576 0
shpchp 36864 0
mac_hid 16384 0
intel_smartconnect 16384 0
sch_fq_codel 20480 2
parport_pc 36864 0
ppdev 20480 0
lp 20480 0
parport 49152 3 lp,parport_pc,ppdev
ip_tables 28672 0
x_tables 40960 1 ip_tables
autofs4 40960 2
hid_generic 16384 0
uas 24576 0
hid 118784 2 hid_generic,usbhid
usb_storage 69632 3 uas
i915 1617920 67
mxm_wmi 16384 0
i2c_algo_bit 16384 1 i915
drm_kms_helper 172032 1 i915
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
r8169 86016 0
mii 16384 1 r8169
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
drm 401408 12 i915,drm_kms_helper
ahci 36864 3
libahci 32768 1 ahci
wmi 24576 1 mxm_wmi
video 45056 1 i915
My friend used to use an HP wireless mouse with a wired keyboard and everything was fine. When he bought that Microsoft wireless mouse/keyboard combo, he started facing the problem listed above.
xinput list-props 9
Device 'Microsoft Microsoft® 2.4GHz Transceiver v8.0':
Device Enabled (140): 1
Coordinate Transformation Matrix (142): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Natural Scrolling Enabled (275): 0
libinput Natural Scrolling Enabled Default (276): 0
libinput Send Events Modes Available (260): 1, 0
libinput Send Events Mode Enabled (261): 0, 0
libinput Send Events Mode Enabled Default (262): 0, 0
Device Node (263): "/dev/input/event5"
Device Product ID (264): 1118, 1861
libinput Drag Lock Buttons (291): <no items>
libinput Horizontal Scroll Enabled (292): 1
xinput list-props 11
Device 'Microsoft Microsoft® 2.4GHz Transceiver v8.0':
Device Enabled (140): 1
Coordinate Transformation Matrix (142): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Natural Scrolling Enabled (275): 0
libinput Natural Scrolling Enabled Default (276): 0
libinput Scroll Methods Available (277): 0, 0, 1
libinput Scroll Method Enabled (278): 0, 0, 0
libinput Scroll Method Enabled Default (279): 0, 0, 0
libinput Button Scrolling Button (280): 2
libinput Button Scrolling Button Default (281): 2
libinput Middle Emulation Enabled (282): 0
libinput Middle Emulation Enabled Default (283): 0
libinput Accel Speed (284): -1.000000
libinput Accel Speed Default (285): 0.000000
libinput Accel Profiles Available (286): 1, 1
libinput Accel Profile Enabled (287): 1, 0
libinput Accel Profile Enabled Default (288): 1, 0
libinput Left Handed Enabled (289): 0
libinput Left Handed Enabled Default (290): 0
libinput Send Events Modes Available (260): 1, 0
libinput Send Events Mode Enabled (261): 0, 0
libinput Send Events Mode Enabled Default (262): 0, 0
Device Node (263): "/dev/input/event4"
Device Product ID (264): 1118, 1861
libinput Drag Lock Buttons (291): <no items>
libinput Horizontal Scroll Enabled (292): 1
usb-devices
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 2
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev=04.15
S: Manufacturer=Linux 4.15.0-32-generic ehci_hcd
S: Product=EHCI Host Controller
S: SerialNumber=0000:00:1a.0
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 4
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=8087 ProdID=8008 Rev=00.05
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 2
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev=04.15
S: Manufacturer=Linux 4.15.0-32-generic ehci_hcd
S: Product=EHCI Host Controller
S: SerialNumber=0000:00:1d.0
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 6
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=8087 ProdID=8000 Rev=00.05
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh=10
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev=04.15
S: Manufacturer=Linux 4.15.0-32-generic xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=0000:00:14.0
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
T: Bus=03 Lev=01 Prnt=01 Port=09 Cnt=01 Dev#= 4 Spd=12 MxCh= 4
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=058f ProdID=9254 Rev=03.12
S: Manufacturer=ALCOR
S: Product=Generic USB Hub
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1058 ProdID=1021 Rev=20.21
S: Manufacturer=Western Digital
S: Product=Ext HDD 1021
S: SerialNumber=574341575A31353030303333
C: #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=2mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
T: Bus=03 Lev=01 Prnt=01 Port=02 Cnt=03 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=045e ProdID=0745 Rev=06.76
S: Manufacturer=Microsoft
S: Product=Microsoft® 2.4GHz Transceiver v8.0
C: #Ifs= 3 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=usbhid
I: If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid
I: If#= 2 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=5000 MxCh= 2
D: Ver= 3.00 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1
P: Vendor=1d6b ProdID=0003 Rev=04.15
S: Manufacturer=Linux 4.15.0-32-generic xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=0000:00:14.0
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
Solution 1:
Reset mouse
Windows has a habit of leaving devices in an unusual state when it reboots. It works fine when you reboot from Windows into Windows but there are problems rebooting from Windows into Grub and then into Ubuntu.
The OP's question is just one example where the mouse has incorrect scrolling speed. Other examples include Windows powering off Audio Cards, WiFi or Network adapters can also occur.
Here is a new script I've tested and doesn't lock up the mouse/keyboard like the first script did.
Add this script to /usr/local/bin/reset-usb
:
#!/bin/bash
# NAME: /usr/local/bin/reset-usb
# DATE: August 17, 2018.
# DESC: Written for Ask Ubuntu Question:
# https://askubuntu.com/questions/1061754
# Reboots / resets all USB devices including mouse & WiFi
if [[ $(id -u) != 0 ]]; then # root powers needed to call this script
echo $0 must be called with sudo powers
exit 1
fi
for i in /sys/bus/pci/drivers/[uoex]hci_hcd/*:*; do
[ -e "$i" ] || continue
echo "${i##*/}" > "${i%/*}/unbind"
echo "${i##*/}" > "${i%/*}/bind"
done
systemctl restart NetworkManager.service
exit 0
Mark the file as executable with:
sudo chmod +x /usr/local/bin/reset-usb
Edit the file /etc/rc.local
and insert these lines before the last line that says exit 0
:
# Reboot / reset all USB devices
/usr/local/bin/reset-usb
Credit: How do you reset a USB device from the command line?
NOTE: When internal USB devices are reset the WiFi / Bluetooth are reinitialized so systemctl restart NetworkManager
.
Solution 2:
Obviously, the KISS (Keep It Simply Stupid) answer is:
- Shut down Windows
- Press the power button to boot into Ubuntu.
Why?
The Windows driver leaves the mouse in an unstable state and none of the really smart answers seem to work, which leads me to the conclusion that Ubuntu cannot solve this Windows problem.
You can still file a bug to the developers of the driver (which is off-topic here), but this is a side-effect and notoriously difficult to debug. Expect to spend a lot of time on this if you go that way