Как правильно установить частоту опроса USB для моей мыши Logitech?

У меня есть особая необходимость изменить значение mousepoll в Ubuntu 15.04.

В программе Kerbal Space есть ошибка в Linux, когда при перетаскивании вида правой кнопкой мыши, когда значение mousepoll выше 125 Гц, игра зависает на секунду или две, что делает игру очень неприятной.

У меня есть мышь Logitech G400, которая опрашивает до 1000 Гц. Я не могу понять, как это изменить.

Я пытался:

  • Настройка options usbhid mousepoll=8 в /etc/modprobe.d/usbhid
  • Настройка usbhid.mousepoll=8 в командной строке при загрузке
  • Запуск sudo modprobe -r usbhid && sudo modprobe usbhid mousepoll=8 из командной строки

Они несколько эффективны тем, что cat /sys/module/usbhid/parameters/mousepoll возвращает 8, как и ожидалось. Но проблема остается в KSP, и когда я запускаю evhz из https://github.com/ian-kelling/evhz , он все равно сообщает о частоте опроса 1000 Гц.

Возможно, актуально:

  • Я на ноутбуке. Тачпад не использует usbhid и опрашивает на 125hz согласно evhz. Без проблем, используя панорамирование правой кнопкой мыши в KSP, используя это.
  • Xfce 4.12 (пробовал с включенным и отключенным композитингом, без изменений)
  • Драйверы Nvidia 346.59
  • Производительность в KSP остальная, как и ожидалось, в зависимости от аппаратного обеспечения моего ноутбука
  • Пакеты (включая ядро) все стандартные
  • Мышь подключена к порту USB 3.0
3
задан 15 May 2015 в 18:30

2 ответа

Я действительно находил решение этой проблемы.

я установил Windows в виртуальной машине, присоединил устройство мыши USB к VM, затем проследил трафик USB с Wireshark и изолировал управление, управляют, чтобы официальный драйвер Logitech раньше устанавливал уровень опроса. (Это было довольно полезно в указании на меня в правильном направлении: https://unix.stackexchange.com/questions/138742/how-to-dump-usb-traffic)

Этот волшебный код Ruby (должен быть выполнен как корень, или пользователем с разрешением записать в /dev/hidraw1) установит уровень опроса на 125 Гц на моей мыши:

#!/bin/ruby
HIDIOCSFEATURE = 0xC0024806

f = File.open("/dev/hidraw1", "w+")
f.ioctl(HIDIOCSFEATURE,"\x20\x03")

/dev/hidraw1 hidraw устройство для моей мыши. Этот путь может отличаться в зависимости от того, сколько устройств Вы включили свою машину.

Эти 0xC0024806 последовательность является значением ioctl, требуемым "Отправить отчет о функции" hidraw устройству. Я не могу помнить точно, как я получил это значение, к сожалению, и это не могут быть 100%, технически исправляют. Работы для меня, хотя!

Эти "\x20\x03" последовательность была данными, о которых драйвер, отправленный в функции, сообщает мыши. 20, кажется, значение в шестнадцатеричном числе, используемом для идентификации запроса на изменение опроса, и 03 наборы это к 125 Гц. 02 наборы это к 250 Гц, 01 к 500 Гц и 00 к 1000 Гц.

БЫТЬ ПРЕДУПРЕЖДЕННЫМ : Это работает на меня на мыши Logitech G400. Я думаю, что существует только один аппаратный вариант этой мыши, таким образом, это должно быть безопасно на той модели. Это не было протестировано ни на какой другой модели и не будет работать ни над какой мышью Logitech, которая использует HID ++ протокол для передачи (это включает много более новых мышей и любые беспроводные модели с помощью получателя Объединения).

я также едва знал то, что я делал, и каждая вещь, которую я сделал, чтобы понять, что она была изучена впервые по пути, включая эту фразу: чтец Протеста (читатель остерегаются)!

0
ответ дан 15 May 2015 в 18:30

У меня была та же проблема с Logitech G302.

Планетарная аннигиляционная проблема задержки мыши

, К сожалению, кажется, что мышь Logitech не поддерживает сокращение уровня опроса мыши.

, Но если действительно необходимо, чтобы можно было уменьшить его аппаратными средствами путем подключения мыши с более медленным USB-портом.

Используя evhz, я заметил, что уровень опроса мыши уменьшил с 1000 Гц до 250 Гц с различным USB-портом.

0
ответ дан 15 May 2015 в 18:30

Другие вопросы по тегам:

Похожие вопросы: