triplespeeder / ltwheelconf Goto Github PK
View Code? Open in Web Editor NEWSetup your Logitech wheel under Linux
Setup your Logitech wheel under Linux
Hello,
I'm using Linux Mint 12
When I use "make" I get the following error:
gcc -Wall -c main.c
In file included from main.c:30:0:
wheelfunctions.h:24:31: fatal error: libusb-1.0/libusb.h: No such file or directory
compilation terminated.
make: *** [main.o] Error 1
So I thought I needed to install the libusb-1.0.0 dev (since libsusb-1.0.0 is already installed), but then I get the following error:
gcc -Wall -c main.c
main.c: In function ‘main’:
main.c:216:31: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
gcc -Wall -c wheelfunctions.c
gcc -Wall -c wheels.c
gcc -Wall -lusb-1.0 -g3 -o ltwheelconf main.o wheelfunctions.o wheels.o
main.o: In function main': main.c:(.text+0x2c2): undefined reference to
libusb_init'
main.c:(.text+0x2dc): undefined reference to libusb_set_debug' main.c:(.text+0x5d0): undefined reference to
libusb_exit'
wheelfunctions.o: In function list_devices': wheelfunctions.c:(.text+0x1f3): undefined reference to
libusb_open_device_with_vid_pid'
wheelfunctions.c:(.text+0x217): undefined reference to libusb_get_device' wheelfunctions.c:(.text+0x245): undefined reference to
libusb_get_device_descriptor'
wheelfunctions.c:(.text+0x284): undefined reference to libusb_get_string_descriptor_ascii' wheelfunctions.c:(.text+0x293): undefined reference to
libusb_get_device_address'
wheelfunctions.c:(.text+0x2a5): undefined reference to libusb_get_bus_number' wheelfunctions.c:(.text+0x310): undefined reference to
libusb_close'
wheelfunctions.o: In function send_command': wheelfunctions.c:(.text+0x3bb): undefined reference to
libusb_detach_kernel_driver'
wheelfunctions.c:(.text+0x3f2): undefined reference to libusb_claim_interface' wheelfunctions.c:(.text+0x4b5): undefined reference to
libusb_interrupt_transfer'
wheelfunctions.c:(.text+0x504): undefined reference to libusb_release_interface' wheelfunctions.c:(.text+0x544): undefined reference to
libusb_attach_kernel_driver'
wheelfunctions.o: In function set_native_mode': wheelfunctions.c:(.text+0x5f7): undefined reference to
libusb_open_device_with_vid_pid'
wheelfunctions.c:(.text+0x64a): undefined reference to libusb_open_device_with_vid_pid' wheelfunctions.c:(.text+0x75f): undefined reference to
libusb_open_device_with_vid_pid'
wheelfunctions.o: In function set_range': wheelfunctions.c:(.text+0x894): undefined reference to
libusb_open_device_with_vid_pid'
wheelfunctions.o: In function set_autocenter': wheelfunctions.c:(.text+0x9d8): undefined reference to
libusb_open_device_with_vid_pid'
wheelfunctions.o:wheelfunctions.c:(.text+0xd40): more undefined references to libusb_open_device_with_vid_pid' follow wheelfunctions.o: In function
reset_wheel':
wheelfunctions.c:(.text+0xd7e): undefined reference to `libusb_reset_device'
collect2: ld returned 1 exit status
make: *** [ltwheelconf] Error 1
Can you give me any advice?
Thanks
$ dmesg
[ 495.344130] usb 1-5.2: new full-speed USB device number 6 using xhci_hcd
[ 495.446456] usb 1-5.2: New USB device found, idVendor=046d, idProduct=c24f
[ 495.446461] usb 1-5.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 495.446464] usb 1-5.2: Product: G29 Driving Force Racing Wheel
[ 495.446466] usb 1-5.2: Manufacturer: Logitech
[ 495.448283] input: Logitech G29 Driving Force Racing Wheel as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.2/1-5.2:1.0/0003:046D:C24F.0008/input/input21
[ 495.504509] logitech 0003:046D:C24F.0008: input,hidraw2: USB HID v1.11 Joystick [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:14.0-5.2/input0
[ 495.504786] logitech 0003:046D:C24F.0008: Force feedback support for Logitech Gaming Wheels
$ sudo ltwheelconf --list
Scanning for "Driving Force":
Scanning for "Momo Racing":
Scanning for "Momo Force":
Scanning for "Driving Force Pro":
Scanning for "G25":
Scanning for "Driving Force GT":
Scanning for "G27":
Found 0 devices.
Hello,
This solution is not working any more for Logitech G25, since the last Ubuntu changes also changed the behavior of the kernel.
Is there another solution?
Best Regards,
gxgung
I see that the README says that most of this work has made it's way into the kernel. In that case how would one go about configuring a wheel in say kernel 4.x+? I would assume it would still need some userpsace utilities.
I'm able to switch the wheel into native mode with this tool so I get at least 900 degree and proper clutch support but the tool isn't setting range and force feedback (autocenter). I tried this command:
$ ltwheelconf --wheel DFGT --nativemode --autocenter 100 --rampspeed 1 --range 688
Found a Driving Force GT already in native mode.
Wheel rotation range of Driving Force GT is now set to 200 degrees.
Autocenter for Driving Force GT is now set to 100 with rampspeed 1.
When I start a game which supports wheels then the wheel is still operating with 900 degree range and there is no autocentering and no force feedback at all.
For each Logitech-specifc command that requires direct communication with the device few steps need to be done:
When ltwheelconf is called with multiple commands at once, for each command the steps above are done. It would be better to collect all cmd strings to send and then only once do the detach/attach driver stuff.
Example:
$# sudo ltwheelconf -wheel G25 --range 900 --autocenter 0
Currently for both commands (setting range and setting autocenter force) the above sequence is executed. With the improved implementation only once the kernel driver would be detached, then both commands for range and autocenter would be sent and then the kerneldriver attached again.
Currently ltwheelconf requires parameter --wheel to specify which wheel is connected. This information is used to determine which commands to send to the wheel to switch to native mode.
The Windows driver does some magic to automatically detect which device is connected, so ltwheelconf should also be able to do that.
This would ease also integration into udev so there could be just one rule "When any logitech wheel is detected switch it into native mode", regardless of which device it actually is.
Logitech drivers always send 7 Bytes for each command, while current ltwheelconf sends 8 bytes. Simon reported that the Wii wheel crashes when receiving more than 7 bytes in a command.
=> Code needs to be changed to only send 7 bytes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.