Live For Speed - не безызвестный гоночный симулятор, который отлично работает под wine, но хочется, чтобы ещё работал и руль Logitech G27. Вот по такой схеме получилось его завести на debian testing.
Возникшие изначально проблемы:
- Калибровка. Руль в Live For Speed не достигал максимального отклонения, а лишь незначительно смещался от центральной точки даже при наибольшем угле поворота руля, к тому же в центральной точке наблюдалась огромная мёртвая зона.
- Обратная связь работала только в случае загрузки системы с подключённым рулём.
Решение:
- Калибруем руль с помощью утилиты jscal из пакета joystick.
Следуем инструкции и после этого в Live For Speed руль, а также все три педали, ведут себя так, как им и положено.
jscal -c /dev/input/js0
Однако, вся эта радость работает до момента переподключения устройства. Чтобы иметь возможность восстанавливать калибровку руля после переподключения, сохраняем настройки в файл:
Делаем его исполняемым:jscal -p /dev/input/js0 > /usr/local/bin/joystick.cal
Редактируем joystic.cal, добавляя первую строку, указывающую, что это у нас bash-скрипт. В итоге получается что-то вроде этого:chmod 0770 /usr/local/bin/joystick.cal
Осталось сделать автоматическую калибровку при подключении устройства.#! /bin/bash jscal -s 6,1,0,8178, ... {много-много цифр}... ,-2147483648 /dev/input/js0
- Обратная связь, как выяснилось не работала из-за проблем с правами доступа у создаваемого файла устройства. Всего их создаётся два: /dev/input/js0 и /dev/input/event10. Так, вот event10 при переподключении имел права на чтение-запись только для root'а.
Данная проблема решается заданием режима доступа с помощью правил udev. Так же решается и проблема с автоматической калибровкой. Для этого создаём файл /etc/udev/rules.d/80-logitech-G27.rules следующего содержания:
Конкретные параметры idVendor и idProduct можно посмотреть командой:SUBSYSTEM=="input", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c29b", RUN+="/usr/local/bin/joystick.cal", MODE="0666"
udevadm info --query=env --name=/dev/input/js0
- wine-1.5.6
- Live For Speed 0.6B
- Kernel 3.5.3 (в ядре должна быть включена поддержка Logitech G27)
P.S. Linux готов к наплыву игростроителей!!!