STEAM 그룹
Linux Force Feedback LinuxFF
STEAM 그룹
Linux Force Feedback LinuxFF
6
게임 중
31
온라인
설립
2015년 12월 12일
언어
영어
모든 토론 > 일반 토론 > 제목 정보
Edwin 2016년 2월 21일 오전 8시 31분
Driver package for Logitech Wheels
Today I took some time to provide a "least effort" method to build the new and experimental drivers for all Logitech force feedback wheels. Since I personally don't really like distributing Linux kernel modules, I created a source archive that should build with a single command. The advantage of this is that it should work on most Linux distributions. However, if you try it on kernels before 4.2, some changes to the code may be needed. There is also at least one change needed for later kernels, but I'll deal with that if it is needed.

You can download the drivers here:

https://www.dropbox.com/s/n4bmw631d4t1m0t/LogitechFFDrivers.zip?dl=0


Read the README carefully and report any problems you may have.


Update 29 Feb 2016:
Added ff-memless to modules load
Added conditional changes for kernel 4.4 and later

Update 22 Aug 2016:
Changed Makefile to remove the hid-logitech module again after loading usbhid loads the wrong one.
Fixed bug causing the wheel to turn right on Intertia/Friction effects for all wheels except G920.
Edwin 님이 마지막으로 수정; 2016년 8월 22일 오후 1시 31분
< >
전체 댓글 151개 중 31~45개 표시 중
Durendal 2016년 9월 12일 오전 6시 39분 
Hi all, thanks for the effort.
I'm new to Linux and trying to get used to it.
Currently using Mint 18 Cinnamon on a Core2Quad 8400 with a Radeon R7 260X.
Do you have any suggestions regarding a Logitech Driving Force GT and ETS2?
The wheel is being detected by the kernel but I can only use about 200° range and no force feedback.
Edwin 2016년 9월 12일 오전 7시 33분 
The G29 drivers included in here works to get force feedback for the DFGT as well. You will need to have V-SYNC turned on though, otherwise ETS2 will overload the driver.

To change the range you either need a tool called 'ltwheelconf' or find the device in /sys and write the wanted value to the 'range' file of the device directory. However, if you use load the driver with this driver package after the wheel is plugged in, it will set 900 degrees for you.
Yaumeister 2016년 11월 25일 오후 7시 06분 
I'm having trouble getting my G29 to work with FFB. My system is running Ubuntu 14.04 with 4.4 kernel. I can run make fine but when trying to do sudo make load_g29 I get the following error, also included a lsmod grep hid output. I assume it should be in PS3 mode? Help appreciated.

yaumeister@Denver:~/G29$ lsmod | grep hid hid_logitech_hidpp 20480 0 hid_logitech_dj 20480 0 hid_logitech 32768 0 usbhid 49152 0 hid 114688 8 hid_logitech,usbhid,hid_logitech_dj,hid_logitech_hidpp mac_hid 16384 0 ff_memless 16384 1 hid_logitech yaumeister@Denver:~/G29$ sudo make load_g29 rmmod hid-logitech-hidpp hid-logitech hid_logitech_dj klgd-ff-plugin klgd usbhid hid-generic mac_hid hid rmmod: ERROR: Module klgd_ff_plugin is not currently loaded rmmod: ERROR: Module klgd is not currently loaded rmmod: ERROR: Module hid_generic is not currently loaded rmmod: ERROR: Module hid is in use make: [load_g29] Error 1 (ignored) insmod hid/hid.ko insmod: ERROR: could not insert module hid/hid.ko: File exists make: *** [load_g29] Error 1
Yaumeister 님이 마지막으로 수정; 2016년 11월 25일 오후 7시 11분
Edwin 2016년 11월 26일 오전 5시 30분 
The problem is that it fails to unload the "hid" module (rmmod: ERROR: Module hid is in use). Since all dependencies unload before it, I don't see what could be blocking it. You could try to unload the modules manually and keep an eye on things. However, if you use a USB keyboard, you'll probably unload you keyboard driver while you're at it. You'll be fine if your keyboard is connected by a PS/2 connector.

Edit: Also note that ETS2/ATS has been having issues with the G29 on this driver, so it may not work right at all. I will look into it after I finish the rewrite of the G920 driver.
Edwin 님이 마지막으로 수정; 2016년 11월 26일 오전 5시 39분
Durendal 2016년 12월 1일 오후 10시 16분 
Hey Edwin,
thanks for your help a while ago.
Everything's working fine and I'm enjoying my ETS2 in Linux.
Great work!
madbad82 2016년 12월 31일 오전 4시 42분 
Hi Edwin and all.
First of all thanks for your efforts!
I've given this another go and recompiled my kernel (fedora) with the hid files you provided.
Indeed with the new module loaded more effects are reported as available.
Sadly some of them don't give any force while testing (spring and dumper effects).
Also wine now report more effects but the one listed after spring (included, see images from link at the end) give a wine error, I also get some crash report from the kernel:
"
Si è verificato un problema di kernel, ma il kernel è stato inquinato (flag:GOE). I manutentori del kernel non sono in grado di effettuare diagnosi dei rapporti inquinati.Moduli corrotti: hid_logitech,klgd_ff_plugin,klgd.
"
Testing logs and wine screens: http://imgur.com/gallery/ydsKu
Kernel DMSG: http://pastebin.com/U6w1cSQf

Happy new year!


Edwin 2016년 12월 31일 오전 4시 50분 
What did you use to test the spring and damper forces?
madbad82 2016년 12월 31일 오전 4시 52분 
fftest /dev/input/15
Edwin 2016년 12월 31일 오전 6시 33분 
You could try FFBChecker that I linked in one of the other posts. That will allow you to test much better. I'll have a look in the coming week. I was testing (ok, playing ATS ;-P ) with the G29 yesterday and noticed some weird drops in functionality.
Zowlyfon 2017년 1월 25일 오후 7시 10분 
Hi, thanks for making this driver, it got force feedback working in ETS2 with fedora 25, although there are a few problems. The steering wheel locks to the left a lot, and the force feedback sometimes goes to a constant force with no change. With this happening its not feasable to use this wheel atm.

I'm using a driving force GT. VSync is turned on.
TheSmokin'Mustang 2017년 2월 13일 오후 5시 56분 
Issues trying to get a GT920 wheel working.

Ubuntu 16.04.1

Updated the udev rules as suggested earlier in this thread.

lsmod |grep hid
hid_logitech_hidpp 20480 0
i2c_hid 20480 0
hid_logitech_dj 20480 0
usbhid 49152 2
hid_generic 16384 0
hid 122880 5 i2c_hid,hid_generic,usbhid,hid_logitech_dj,hid_logitech_hidpp
mac_hid 16384 0


lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 005: ID 04d8:fd08 Microchip Technology, Inc.
Bus 001 Device 026: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 030: ID 046d:c262 Logitech, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub



Makefile contains this:

load_g920:
-rmmod hid-logitech-hidpp hid-logitech hid_logitech_dj i2c_hid klgd-ff-plugin klgd hid-generic usbhid hid
insmod hid/hid.ko
modprobe hid-generic
modprobe usbhid
modprobe hid_logitech_dj
modprobe i2c_hid
insmod hid-logitech-hidpp/hid-logitech-hidpp.ko


make load_g920
rmmod hid-logitech-hidpp hid-logitech hid_logitech_dj i2c_hid klgd-ff-plugin klgd hid-generic usbhid hid
rmmod: ERROR: Module hid_logitech is not currently loaded
rmmod: ERROR: Module i2c_hid is not currently loaded
rmmod: ERROR: Module klgd_ff_plugin is not currently loaded
rmmod: ERROR: Module klgd is not currently loaded
rmmod: ERROR: Module hid_generic is not currently loaded
Makefile:33: recipe for target 'load_g920' failed
make: [load_g920] Error 1 (ignored)
insmod hid/hid.ko
modprobe hid-generic
modprobe usbhid
modprobe hid_logitech_dj
modprobe i2c_hid
insmod hid-logitech-hidpp/hid-logitech-hidpp.ko
insmod: ERROR: could not insert module hid-logitech-hidpp/hid-logitech-hidpp.ko: File exists
Makefile:33: recipe for target 'load_g920' failed
make: *** [load_g920] Error 1


dmesg contains this:
[ 896.292479] usb 1-13: USB disconnect, device number 5
[ 899.650091] usb 1-13: new full-speed USB device number 7 using xhci_hcd
[ 899.780623] usb 1-13: New USB device found, idVendor=046d, idProduct=c52b
[ 899.780631] usb 1-13: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 899.780636] usb 1-13: Product: USB Receiver
[ 899.780640] usb 1-13: Manufacturer: Logitech
[ 899.831239] logitech-djreceiver 0003:046D:C52B.000A: hiddev0,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:14.0-13/input2
[ 899.962311] input: Logitech M510 as /devices/pci0000:00/0000:00:14.0/usb1/1-13/1-13:1.2/0003:046D:C52B.000A/0003:046D:1025.000B/input/input21
[ 899.962906] logitech-hidpp-device 0003:046D:1025.000B: input,hidraw1: USB HID v1.11 Mouse [Logitech M510] on usb-0000:00:14.0-13:1
[ 899.966483] input: Logitech K350 as /devices/pci0000:00/0000:00:14.0/usb1/1-13/1-13:1.2/0003:046D:C52B.000A/0003:046D:200A.000C/input/input22
[ 899.966953] logitech-hidpp-device 0003:046D:200A.000C: input,hidraw2: USB HID v1.11 Keyboard [Logitech K350] on usb-0000:00:14.0-13:2
[ 932.255830] usbcore: deregistering interface driver usbhid
[ 932.288317] hidraw: raw HID events driver (C) Jiri Kosina
[ 932.350829] hid-generic 0003:051D:0002.0002: hiddev0,hidraw0: USB HID v1.00 Device [American Power Conversion Back-UPS RS 1500G FW:865.L5 .D USB FW:L5 ] on usb-0000:00:14.0-6/input0
[ 932.354558] usbcore: registered new interface driver usbhid
[ 932.354565] usbhid: USB HID core driver
[ 932.364151] logitech-djreceiver 0003:046D:C52B.0005: hiddev0,hidraw1: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:14.0-13/input2
[ 932.492686] input: Logitech M510 as /devices/pci0000:00/0000:00:14.0/usb1/1-13/1-13:1.2/0003:046D:C52B.0005/0003:046D:1025.0006/input/input23
[ 932.495628] logitech-hidpp-device 0003:046D:1025.0006: input,hidraw2: USB HID v1.11 Mouse [Logitech M510] on usb-0000:00:14.0-13:1
[ 933.962902] input: Logitech K350 as /devices/pci0000:00/0000:00:14.0/usb1/1-13/1-13:1.2/0003:046D:C52B.0005/0003:046D:200A.0007/input/input24
[ 933.963815] logitech-hidpp-device 0003:046D:200A.0007: input,hidraw3: USB HID v1.11 Keyboard [Logitech K350] on usb-0000:00:14.0-13:2


What am I missing?

Craig
Edwin 2017년 2월 14일 오전 1시 53분 
cncook001님이 먼저 게시:
What am I missing?

Craig

The "File exists" error suggests that the module is already loaded. Since the rest doesn't fail, I'm assuming that the original module is auto loaded before that. Are you already running a 4.6 or higher kernel? In that case you don't need to do this at all. It could also be that the "c52b" device is a hidpp device.

My suggestion for the latter would be to insert another "rmmod hid-logitech-hidpp" just before "insmod hid-logitech-hidpp/hid-logitech-hidpp.ko".

For the big update, I'll try to make the makefile a little more robust.
TheSmokin'Mustang 2017년 2월 14일 오후 6시 29분 
No, not on 4.6 yet. Using 4.4.0-62-generic

This seems to work. Will do some more testing.

make load_g920
rmmod hid-logitech-hidpp hid-logitech hid_logitech_dj i2c_hid klgd-ff-plugin klgd hid-generic usbhid hid
rmmod: ERROR: Module hid_logitech is not currently loaded
rmmod: ERROR: Module i2c_hid is not currently loaded
rmmod: ERROR: Module klgd_ff_plugin is not currently loaded
rmmod: ERROR: Module klgd is not currently loaded
rmmod: ERROR: Module hid_generic is not currently loaded
Makefile:33: recipe for target 'load_g920' failed
make: [load_g920] Error 1 (ignored)
insmod hid/hid.ko
modprobe hid-generic
modprobe usbhid
rmmod hid-logitech-hidpp
rmmod: ERROR: Module hid_logitech_hidpp is not currently loaded
Makefile:33: recipe for target 'load_g920' failed
make: [load_g920] Error 1 (ignored)
insmod hid-logitech-hidpp/hid-logitech-hidpp.ko
modprobe i2c_hid
modprobe hid_logitech_dj


Makefile has this:
load_g920:
-rmmod hid-logitech-hidpp hid-logitech hid_logitech_dj i2c_hid klgd-ff-plugin klgd hid-generic usbhid hid
insmod hid/hid.ko
modprobe hid-generic
modprobe usbhid
-rmmod hid-logitech-hidpp
insmod hid-logitech-hidpp/hid-logitech-hidpp.ko
modprobe i2c_hid
modprobe hid_logitech_dj
Edwin 2017년 2월 15일 오전 2시 05분 
It is probably the hid_logitech_dj driver that loaded the hidpp driver. So switching that around was probably key to making it work.
laloch 2017년 2월 16일 오전 10시 51분 
Hi Edwin, have you tried the drivers on some more recent kernel? I'm on 4.9.9 ArchLinux zen kernel and I'm experiencing hard freezes with the modules loaded. The freezes occur in ETS2 sometimes even before I get into the game and any effects are actually run. There's nothing interesting in the syslog, except occasional complaints about wrong workqueue scheduling on the klgd_delayed_work. I'll try to do some SysRq magic and return back with eventual results. I'd just like to know for now whether you have similar experience or not.

Update: No SysRq for me either. The system is completely dead.

Update2: I rebased your hid-lg4ff to v4.9. The process was surprisingly smooth. Now I'm building it in-tree as well as the KLGD. Everything is nice and clean and everybody's happy. Only that the force feedback doesn't work at all anymore and the freezes still happen :D
Needs some thinking I guess.
laloch 님이 마지막으로 수정; 2017년 2월 17일 오전 1시 01분
< >
전체 댓글 151개 중 31~45개 표시 중
페이지당 표시 개수: 1530 50

모든 토론 > 일반 토론 > 제목 정보