重置鼠标

重置鼠标

我的朋友有带有 AES 的 Microsoft Wireless Desktop 850(PY9-00001)Ubuntu 18.04。滚动速度太快,但如果他移除 USB 加密狗并再次插入,它修复了问题

他使用的是双启动的 PC,每次他启动 Windows 然后重新启动 Ubuntu 时,问题就会再次出现。

我们如何才能彻底解决这个问题?

该问题仅在软重启后才会发生。

lsusb当鼠标工作正常时

终端中的 lsusb 输出

lsusb当它不工作时,当启动 Windows 然后启动 Ubuntu

相同的 lsusb 输出


当鼠标正常工作时,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

答案1

重置鼠标

Windows 有一个习惯,就是在重启时让设备处于异常状态。从 Windows 重启到 Windows 时一切正常,但从 Windows 重启到 Grub 再到 Ubuntu 时就会出现问题。

楼主的问题只是鼠标滚动速度不正确的一个例子。其他例子包括 Windows 关闭音频卡、WiFi 或网络适配器也可能发生。


这是我测试过的新脚本,它不会像第一个脚本那样锁定鼠标/键盘。

将此脚本添加到/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

使用以下命令将文件标记为可执行文件:

sudo chmod +x /usr/local/bin/reset-usb

编辑文件/etc/rc.local并插入以下行最后一行是exit 0

# Reboot / reset all USB devices
/usr/local/bin/reset-usb

信用如何从命令行重置 USB 设备?


笔记:当内部 USB 设备重置时,WiFi/蓝牙也会重新初始化systemctl restart NetworkManager

答案2

显然,KISS(保持简单愚蠢)的答案是:

  • 关闭视窗
  • 按下电源按钮启动 Ubuntu。

为什么?

Windows 驱动程序使鼠标处于不稳定状态,并且没有非常聪明的答案似乎有效,这让我得出这样的结论:Ubuntu 无法解决这个 Windows 问题。

您仍然可以向驱动程序的开发人员提交错误(这与本文无关),但这是一个副作用,而且调试起来非常困难。如果您这样做,预计会花费大量时间

答案3

鼠标必须具有 Windows 在启动时修改的 DPI 设置。通常,为了获得最佳响应,系统将禁用软件鼠标加速并将鼠标 DPI 设置为提供所需移动速度的值。

当您重新启动 Ubuntu 而不关闭鼠标电源时,DPI 设置仍处于 Windows 设置的级别。但是,Ubuntu 默认将鼠标加速度设置为超过 1 倍速度,因此您会体验到更快的运动。

您可以删除 Ubuntu 中的鼠标加速,以便在 Windows 和 Ubuntu 之间切换以获得相似的鼠标移动速度,但如果您直接打开 Ubuntu,鼠标移动可能会非常慢,除非您的鼠标支持在电源循环期间不会改变的 DPI 设置内存。

在 Ubuntu 中删除鼠标加速,创建以下文件:

sudo nano /usr/share/X11/xorg.conf.d/50-mouse-accel-disable.conf

文件内容:

Section "InputClass"
    Identifier "Microsoft Mouse"
    MatchIsPointer "yes"
    Option "AccelerationProfile" "-1"
    Option "AccelerationScheme" "none"
    Option "AccelSpeed" "-1"
EndSection

重新启动会话以使此更改生效(即注销/登录)

相关内容