如何让Logitech Anywhere MX在Ubuntu 12.X中运行?

我有一台Logitech Anywhere MX鼠标(无线),当我将它连接到电脑时它无法正常工作。

鼠标可以在其他装有Windows的计算机以及Fedora 17和Fedora 19上运行,但它在Ubuntu 12.04和12.10的两台不同计算机上不起作用。 此外,这些相同的计算机与另一台Microsoft无线鼠标配合

所以我认为Logitech MX和Ubuntu的结合效果不佳。

dmesg日志条目如下所示:

 [ 578.845838] usb 3-2: Product: USB Receiver [ 578.845841] usb 3-2: Manufacturer: Logitech [ 578.851625] logitech-djreceiver 0003:046D:C52B.0009: hiddev0,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:14.0-2/input2 [ 578.851899] logitech-djreceiver 0003:046D:C52B.0009: logi_dj_probe:logi_dj_recv_query_paired_devices error:-32 [ 578.854518] logitech-djreceiver: probe of 0003:046D:C52B.0009 failed with error -32 

而不是预期的(取自Fedora):

 [154344.634520] usb 2-1.2: Manufacturer: Logitech [154344.647935] logitech-djreceiver 0003:046D:C52B.000D: hiddev0,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:1d.0-1.2/input2 [154344.653788] input: Logitech Unifying Device. Wireless PID:1017 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.2/0003:046D:C52B.000D/input/input21 [154344.654192] logitech-djdevice 0003:046D:C52B.000E: input,hidraw1: USB HID v1.11 Mouse [Logitech Unifying Device. Wireless PID:1017] on usb-0000:00:1d.0-1.2:1 

更新:我想说,在这一点上, solaar是要走的路。 所以我接受了之前的回答,暗示了这一点。

Solaar在12.04为我工作。 在终端类型:

 sudo add-apt-repository ppa:daniel.pavel/solaar sudo apt-get update sudo apt-get install solaar 

安装完成后,从Dash菜单中打开Solaar,然后单击左上角。 单击右下角的按钮并按照说明进行操作。

如果您之前已将Logitech设备与另一台计算机配对,则可能首先需要从其他计算机取消配对Logitech设备。 在重新启动Ubuntu而不使用USB中的Logitech接收器后,从Dash /菜单启动Solaar,插入罗技接收器,单击“添加新设备”并打开/关闭新设备以进行识别。 重复每个设备。

配对后,每次启动ubuntu时都会识别设备(Solaar会自动安装在“启动应用程序”中)。

另请查看此链接作为来源http://www.webupd8.org/2013/07/pair-unpair-logitech-unifying-devices.html或更多问题解决

我将脚本增强到顶部,然后还添加了一个udev规则,以便在插入鼠标时触发。我使用的是Logitech Performance MX,但规则应该类似。

 #!/bin/bash # loop up to 10 times trying to fix the mouse insertion for i in {1..10} do # exit the script if there was no mouse error if [ `dmesg | grep "logitech-djreceiver" | tail -1 | grep -c "failed with error -32"` -eq 0 ]; then echo "No logitech receiver error...exiting" ; exit 0 ; else # try to reload the mouse driver echo `date`" Error detected, trying reload of logitech hid driver" ; rmmod hid_logitech_dj ; modprobe hid_logitech_dj ; sleep 1 ; fi done 

在退出之前,这会尝试重新加载驱动程序10次。

我将脚本/usr/bin/mousefix命名为chmod +x

这是udev规则,可以添加到/etc/udev/rules.d/10-local.rules

 SUBSYSTEMS=="usb", DRIVERS=="usb", ATTRS{manufacturer}=="Logitech", ATTRS{product}=="USB Receiver", ACTION=="add", RUN+="/usr/bin/mousefix" 

希望这有助于其他人。 当usb连接时,让脚本运行似乎更容易。

如果您使用的是12.04或12.10,则只需更新系统。

我有几个与Anywhere Mouse和Touch Mouse M600相关的问题

Logitech的Unifying接收器是否受支持?

我可以使用Logitech Touch Mouse M600吗?

我甚至参与了这个启动板错误: https : //bugs.launchpad.net/linux/+bug/958174其中有几个解决方案:

sudo modprobe -r hid_logitech_dj
sudo modprobe hid_logitech_dj

有人提到但最后,更新系统修复了鼠标的所有问题。

在这里甚至有一个askubuntu答案: 升级到12.04后罗技M515无效

但是对于我测试过的所有4台计算机,解决方案是默认激活所有存储库而不激活(Universe,多重宇宙,建议,后端),进行更新和升级。 重新启动和鼠标应完美地开箱即用。

如果偶然这样做不能解决问题,那么对它进行诊断会有所帮助,例如:

  1. 重新启动后断开/连接Logitech接收器。 打开终端并输入dmesg以查看将提及接收器的最后一行。 看看是否出现错误。

  2. 输入lsusb 。 如果检测到所有内容,您应该会看到与下面类似的行:

    Bus 002 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver

  3. 打开/关闭鼠标(鼠标中的开/关开关位于下方)并进行测试。

这已经在USB 2.0和3.0端口中进行了测试。 为了确保(至少对大多数用户而言)这项工作,必须激活所有存储库。 如下3张图片:

在这里,我们看到mainuniverserestrictedmultiverse被激活。 我还将服务器从我的国家改为MAIN

在此处输入图像描述

我在这里激活了它们,Canonical和第三方存储库。

在此处输入图像描述

这里我们看到建议后端激活(除了安全和更新)。

在此处输入图像描述

毕竟我做了一个sudo apt-get update && sudo apt-get upgrade 。 重新启动电脑并完成。

鼠标应该在每次打开时都能正常工作,但如果失败了,我会看到一对或原因:

  • Anywhere MX鼠标实际上比我测试的其他鼠标更快地耗尽电池。 在我的测试中,Anywhere MX使用的电池比Touch Mouse M600多2倍,比Logitech V450多20倍。 例如,每天使用它,可以使用Anywhere MX 1.5个月到2个月。 触摸鼠标持续约4至5个月。 V450的使用寿命长达16个月。 所以检查电池。 我怀疑这是由于Darkfield技术。

  • 打开绿灯时,Anywhere MX鼠标将闪烁约3秒钟然后关闭。 这并不意味着鼠标如果关闭,它只是意味着鼠标电池是好的。 如果灯是红色的,那么你需要更换它们。 在任何一种情况下,灯都会以绿色或红色亮起,然后关闭以保护电池。

  • 使用Ubuntu时,打开/关闭鼠标的开关可以切换任意次数,但最好在不使用时关闭鼠标。 这样它会持续更长时间。 例如睡觉,上class等等。

  • 某些BIOS选项可能会对鼠标产生影响。 检查主板的BIOS是否有USB选项。 与他们一起玩,以防万一鼠标不起作用。

  • 更改接收器所连接的USB端口。 众所周知,有些端口(如前端口)真的很难在其上安装高功率设备。

有一个解决方法,使用此脚本(将其复制到.sh脚本,chmod + x此文件并以root身份运行:

 #!/bin/bash while :; do dmesg|grep logitech-djreceiver|tail -1|grep -q -c "failed with error -32" || exit; echo -n `date`" Driver Reload" ; rmmod hid_logitech_dj ; modprobe hid_logitech_dj ; dmesg|grep logitech-djreceiver|tail -1 ; sleep 1; done 

或者下载mousefix.sh这是此页面上的链接:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1039143/comments/55

此修复程序通过删除和重新添加(rmmod + modprobe)hid_logitech_dj来工作,hid_logitech_dj是负责统一接收器的模块。 它在一个while循环中每秒执行一次,直到它最终被识别。

在XHCI(USB 3)端口和更新版本的Linux内核上使用此接收器显然存在Linux内核错误。 它可能在USB2端口上正常工作。 (?)

这是关于这个问题的冗长线索,开发人员和许多其他人一直在努力解决这个问题。

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1039143

向Jelle Foks道具,以解决这个问题。 多年来一直让我疯了。

当我一直离开我的接收器时,我在启动时运行这个脚本,并从睡眠中恢复以进行“自动”修复,并且它在最后一点点工作得非常好。

让我知道这个是否奏效。

K,非常感谢你的剧本“Dennis Kubes”,但不适合我。 我不得不调整它以使其工作:

 #!/bin/bash # loop up to 10 times trying to fix the mouse insertion sudo modprobe -r hid_logitech_dj && sudo modprobe hid_logitech_dj ; for i in {1..10} do # exit the script if there was no mouse error if [ `dmesg | tail -1 | grep "logitech-djreceiver: probe of" | grep -c "error -32"` -eq 0 ]; then echo "No logitech receiver error...exiting" ; exit 0 ; else # try to reload the mouse driver echo `date`" Error detected, trying reload of logitech hid driver" ; sudo modprobe -r hid_logitech_dj && sudo modprobe hid_logitech_dj ; sleep 1 ; fi done 

希望这会对某人有所帮助。