我的朋友有带有 AES (PY9-00001) Ubuntu 18.04 的 Microsoft Wireless Desktop 850。滚动速度太快了,但是如果他将USB加密狗取下并重新插入,它就可以解决问题。
他在双启动 PC 上,每次启动 Windows 然后重新启动到 Ubuntu 时,问题又回来了。
我们如何才能永久修复它?
仅在软重启后才会出现该问题。
lsusb
当鼠标工作正常时
lsusb
当它不工作时,在启动 Windows 时,然后是 Ubuntu
当鼠标按预期工作时,lsmod
输出
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
当鼠标不能正常工作时,lsmod
输出
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
的输出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)]
和
$ 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
无需插入鼠标加密狗(因此拔下鼠标和键盘组合)
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
我的朋友曾经使用带有有线键盘的 HP 无线鼠标,一切都很好。当他购买微软无线鼠标/键盘组合时,他开始面临上面列出的问题。
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
重置鼠标
Windows 习惯于在重新启动时使设备处于异常状态。当您从 Windows 重新启动到 Windows 时它工作正常,但是从 Windows 重新启动到 Grub 然后进入 Ubuntu 时出现问题。
OP的问题只是鼠标滚动速度不正确的一个例子。其他示例包括 Windows 关闭声卡、WiFi 或网络适配器也可能发生。
这是我测试过的一个新脚本,它不会像第一个脚本那样锁定鼠标/键盘。
将此脚本添加到
/usr/local/bin/reset-usb
:使用以下命令将文件标记为可执行文件:
编辑文件并在最后一行之前
/etc/rc.local
插入这些行:exit 0
信用:如何从命令行重置 USB 设备?
注意:当内部 USB 设备重置时,WiFi/蓝牙会重新初始化,因此
systemctl restart NetworkManager
.显然,KISS(保持简单愚蠢)的答案是:
为什么?
Windows 驱动程序使鼠标处于不稳定状态,并且真正聪明的答案似乎都不起作用,这使我得出结论,Ubuntu 无法解决这个 Windows 问题。
您仍然可以向驱动程序的开发人员提交错误(这里是题外话),但这是一个副作用并且众所周知难以调试。如果你走那条路,预计会花很多时间在这上面
鼠标必须具有 Windows 启动时修改的 DPI 设置。通常,为了获得最佳响应,系统将禁用软件鼠标加速并将鼠标 DPI 设置为提供所需移动速度的值。
当您在没有重启鼠标的情况下重新启动回 Ubuntu 时,DPI 设置仍处于 Windows 设置的级别。但是,默认情况下,Ubuntu 将鼠标加速度设置为超过 1 倍速度,因此您会体验到更快的运动。
您可以在 Ubuntu 中移除鼠标加速,以便您可以在 Windows 和 Ubuntu 之间切换以获得相似的鼠标移动速度,但是如果您直接打开 Ubuntu 电源,您可能会获得非常缓慢的鼠标移动,除非您的鼠标支持不会更改的 DPI 设置内存在电源循环。
在 Ubuntu 中移除鼠标加速,创建以下文件:
文件内容:
重新启动会话以使此更改生效(即注销/登录)