hid-tmff2 icon indicating copy to clipboard operation
hid-tmff2 copied to clipboard

TS-PC install issue

Open Kimplul opened this issue 7 months ago • 14 comments

Hi, I moved your issue to a new thread since the original is getting a bit messy

Hello there,

First, I'm a beginner regarding Linux. I use Zorin OS 17.3 Core on Ryzen 9 5900 + 32GB RAM + RTX4070. I own a TS-PC with both the Ferrari 488 Challenge Wheel and TM OPEN WHEEL ADD-ON. I mostly play on BeamNG

Welcome to the Linux community, sorry you had to jump into the deep end with kernel modules. Hopefully you consider it a learning experience and not a too bad inconvenience :)

I installed Oversteer from @Potajito and followed every debian related step from https://github.com/Kimplul/hid-tmff2 since I read the TS-PC branch was included in the master.

Sorry, the TS-PC still lives in its own branch, tspc. TS-PC support is not quite as 'polished' as I'd like to allow it to be in the master branch, so you'll have to run something like

git clone https://github.com/Kimplul/hid-tmff2.git
cd hid-tmff2
git checkout tspc
git submodule update --init
sudo ./dkms/dkms_install.sh
sudo make udev-rules

Although admittedly it seems that a fair number of people have the TS-PC and it might benefit from getting merged into master, I might look into it in the near future.

Out of curiosity, what made you think the TS-PC was supported in master? If it's something I can edit to be more clear, I shall.

My issue is I cannot see my wheel in oversteer, I see it in Joystick but I have the strange jump in the response around the wheel's range center. Also pedals are treated as buttons instead of slider.

I believe these problems should disappear with the tspc branch. In short, by not using the tspc branch, your driver doesn't support the TS-PC, and the wheel without a driver behaves badly. I can go into a bit more detail if you're curious, but it's not important to understand by any means.

I read the entire thread but did not understood everything, am I missing something? What information should I brought to better explain my situation?

I don't know if this is your first time opening up an issue, but if it is, well done. These are the types of questions maintainers love to see :)

Hopefully switching to the tspc branch fixes the issues you're having, but if it doesn't, please show the output of sudo dmesg -w when plugging in the wheel.

Thank you.

Originally posted by @Jaileh in #65

Kimplul avatar Jul 25 '25 21:07 Kimplul

sudo ./dkms/dkms_install.sh

Should be sudo ./dkms/dkms-install.sh

It doesn't work, I thought it might be due to my previous attempt, so I tried sudo dkms remove hid-tmff2/0.82 should I try something different to get rid of the previous modules? Here is what sudo dmesg -w returned, I narrowed it down to the Thrusmaster part if you need more I'll look for it.

[   31.225524] usb 1-1: new full-speed USB device number 2 using xhci_hcd
[   31.369578] usb 1-1: New USB device found, idVendor=044f, idProduct=b65d, bcdDevice= 7.00
[   31.369586] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   31.369589] usb 1-1: Product: Thrustmaster FFB Wheel
[   31.369592] usb 1-1: Manufacturer: Thrustmaster
[   31.398680] input: Thrustmaster Thrustmaster FFB Wheel as /devices/pci0000:00/0000:00:01.2/0000:20:00.0/0000:21:08.0/0000:2a:00.1/usb1/1-1/1-1:1.0/0003:044F:B65D.0007/input/input32
[   31.398850] hid-thrustmaster 0003:044F:B65D.0007: input,hidraw4: USB HID v1.00 Gamepad [Thrustmaster Thrustmaster FFB Wheel] on usb-0000:2a:00.1-1/input0
[   31.416402] Error: Driver 'hid-thrustmaster' is already registered, aborting...
[   31.417613] hid-thrustmaster 0003:044F:B65D.0007: Unknown wheel's model id 0x609, unable to proceed further with wheel init

Out of curiosity, what made you think the TS-PC was supported in master? If it's something I can edit to be more clear, I shall.

I misunderstood this message I guess https://github.com/Kimplul/hid-tmff2/issues/65#issuecomment-2701461004

I'm happy to have a look at all this, doing is learning :) also it was my first comment but I've been exploring github for years. I do appreciate the work your doing for the community, thank you very much.

Jaileh avatar Jul 26 '25 15:07 Jaileh

sudo ./dkms/dkms_install.sh

Should be sudo ./dkms/dkms_install.sh

Should be sudo ./dkms/dkms-install.sh, heh. Sorry, typo, good catch.

It doesn't work, I thought it might be due to my previous attempt, so I tried sudo dkms remove hid-tmff2/0.82 should I try something different to get rid of the previous modules?

Is there an error message or what doesn't work? Always include error messages if you see any.

As far as I'm aware, there shouldn't be any need to remove existing modules, since DKMS will just overwrite them. If you preciously installed with sudo make install, you might want to remove files with tmff or tminit in /lib/modules/$(uname -r)/updates since DKMS is not aware of those files.

I would also suggest running

echo 'blacklist hid_thrustmaster' | sudo tee /etc/modprobe.d/hid_thrustmaster.conf

It should fix the Driver is already registered error.

I misunderstood this message I guess https://github.com/Kimplul/hid-tmff2/issues/65#issuecomment-2701461004

Ah, rebase is probably not obvious, yeah. It's a git specific command that takes changes in one branch ('version' of the code if you're not familiar with git) and 'copies' them over to another, so in this case I had some changes in master and I copied them over to tspc.

Kimplul avatar Jul 26 '25 15:07 Kimplul

This is the error I tried to correct:

jaileh@jaileh-desktop:~/hid-tmff2$ sudo ./dkms/dkms-install.sh
Error! DKMS tree already contains: hid-tmff2-0.82
You cannot add the same module/version combo more than once.
Module hid-tmff2/0.82 already built for kernel 6.8.0-64-generic (x86_64).
Module hid-tmff2/0.82 already installed on kernel 6.8.0-64-generic (x86_64).

And oversteer does not see my device while jstest-gtk does. Image

Jaileh avatar Jul 26 '25 16:07 Jaileh

I stand corrected, seems I completely misremembered how DKMS handled installs. DKMS has a few different commands that sort of sound similar, in this case you'd want

sudo dkms remove hid-tmff2/0.82

That should allow sudo ./dkms/dkms-install.sh to finish properly, meaning the driver gets installed. The issues you're seeing with Oversteer versus jstest-gtk is due to the module not being installed yet.

Sorry for the couple day delay, spent the weekend in a cabin.

Kimplul avatar Jul 28 '25 20:07 Kimplul

Hello everyone. I just bought a TS-PC, and I'm trying to get it workiong on linux too. I know close to nothing about drivers on linux, so I will just tell what I did. I followed these commands:

git clone https://github.com/Kimplul/hid-tmff2.git cd hid-tmff2 git checkout tspc git submodule update --init sudo ./dkms/dkms_install.sh sudo make udev-rules

the driver seems to have installed properly, but i get the same errors jaileh had. Oversteer can't see the wheel and the pedals are buttons. The ffb doesn't work on any game and it's set to only 180º, and I can't change it. here is what dmesg -w returns:

[    3.117711] hub 6-0:1.0: USB hub found
[    3.117717] hub 6-0:1.0: 2 ports detected
[    3.360465] usb 1-4: new full-speed USB device number 2 using xhci_hcd
[    3.364442] usb 3-2: new full-speed USB device number 2 using xhci_hcd
[    3.364462] usb 5-1: new full-speed USB device number 2 using xhci_hcd
[    3.517498] usb 3-2: New USB device found, idVendor=044f, idProduct=b65d, bcdDevice= 7.00
[    3.517506] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.517509] usb 3-2: Product: Thrustmaster FFB Wheel
[    3.517511] usb 3-2: Manufacturer: Thrustmaster
[    3.517605] usb 5-1: New USB device found, idVendor=058f, idProduct=9254, bcdDevice= 3.12
[    3.517609] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.517611] usb 5-1: Product: Generic USB Hub
[    3.517613] usb 5-1: Manufacturer: ALCOR
[    3.528478] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    3.529346] ata1.00: ATA-8: WDC WD10EZEX-00RKKA0, 80.00A80, max UDMA/133
[    3.530244] ata1.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 32), AA
[    3.531172] ata1.00: configured for UDMA/133
[    3.531338] scsi 0:0:0:0: Direct-Access     ATA      WDC WD10EZEX-00R 0A80 PQ: 0 ANSI: 5
[    3.566597] hub 5-1:1.0: USB hub found
[    3.569503] hub 5-1:1.0: 4 ports detected
[    3.880495] usb 5-1.3: new low-speed USB device number 3 using xhci_hcd
[    3.997590] usb 5-1.3: New USB device found, idVendor=10d5, idProduct=55a2, bcdDevice= 0.01
[    3.997598] usb 5-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.997601] usb 5-1.3: Product: 2Port KVMSwitcher
[    3.997604] usb 5-1.3: Manufacturer: Device
[    3.997606] usb 5-1.3: SerialNumber: 1"²
[    4.000433] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    4.007040] ata2.00: ATA-7: SAMSUNG HD103SI, 1AG01118, max UDMA7
[    4.007468] ata2.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 32), AA
[    4.014119] ata2.00: configured for UDMA/133
[    4.014292] scsi 1:0:0:0: Direct-Access     ATA      SAMSUNG HD103SI  1118 PQ: 0 ANSI: 5
[    4.480491] ata5: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    4.481608] ata5.00: ATA-10: SanDisk SSD PLUS 240GB, UF2204RL, max UDMA/133
[    4.481616] ata5.00: 468862128 sectors, multi 1: LBA48 NCQ (depth 32)
[    4.483314] ata5.00: Features: Dev-Sleep
[    4.491070] ata5.00: configured for UDMA/133
[    4.491265] scsi 4:0:0:0: Direct-Access     ATA      SanDisk SSD PLUS 04RL PQ: 0 ANSI: 5
[    4.802008] ata6: SATA link down (SStatus 0 SControl 330)
[    4.804746] r8169 0000:06:00.0 enp6s0: renamed from eth0
[    4.811823] sd 1:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[    4.811823] sd 4:0:0:0: [sdc] 468862128 512-byte logical blocks: (240 GB/224 GiB)
[    4.811831] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[    4.811833] sd 4:0:0:0: [sdc] Write Protect is off
[    4.811833] sd 1:0:0:0: [sdb] Write Protect is off
[    4.811835] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    4.811835] sd 4:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[    4.811837] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    4.811850] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    4.811850] sd 0:0:0:0: [sda] Write Protect is off
[    4.811852] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    4.811865] sd 4:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    4.811872] sd 1:0:0:0: [sdb] Preferred minimum I/O size 512 bytes
[    4.811872] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    4.811887] sd 4:0:0:0: [sdc] Preferred minimum I/O size 512 bytes
[    4.811913] sd 0:0:0:0: [sda] Preferred minimum I/O size 4096 bytes
[    4.818239] hid: raw HID events driver (C) Jiri Kosina
[    4.873424]  sdc: sdc1 sdc2 sdc3 sdc4
[    4.873673] sd 4:0:0:0: [sdc] Attached SCSI disk
[    4.921723]  sdb:
[    4.921758] sd 1:0:0:0: [sdb] Attached SCSI disk
[    4.928316]  sda: sda1
[    4.928509] sd 0:0:0:0: [sda] Attached SCSI disk
[    4.945425] usbhid 5-1.3:1.1: couldn't find an input interrupt endpoint
[    4.945483] usbcore: registered new interface driver usbhid
[    4.945486] usbhid: USB HID core driver
[    4.947670] input: Device 2Port KVMSwitcher as /devices/pci0000:00/0000:00:08.1/0000:08:00.4/usb5/5-1/5-1.3/5-1.3:1.0/0003:10D5:55A2.0002/input/input3
[    5.104599] hid-generic 0003:10D5:55A2.0002: input,hidraw0: USB HID v1.00 Keyboard [Device 2Port KVMSwitcher] on usb-0000:08:00.4-1.3/input0
[    5.106389] input: Thrustmaster Thrustmaster FFB Wheel as /devices/pci0000:00/0000:00:08.1/0000:08:00.3/usb3/3-2/3-2:1.0/0003:044F:B65D.0001/input/input4
[    5.106495] hid-thrustmaster 0003:044F:B65D.0001: input,hidraw1: USB HID v1.00 Gamepad [Thrustmaster Thrustmaster FFB Wheel] on usb-0000:08:00.3-2/input0
[    5.128318] hid-thrustmaster 0003:044F:B65D.0001: Unknown wheel's model id 0x609, unable to proceed further with wheel init
[    6.839447] [drm] amdgpu kernel modesetting enabled.

Any help is really appreciated. Thanks in advance!

-Edit: I tried to cut the dmesg message to where thrustmaster started and ended, sorry if it's too long.

mitusgamer12 avatar Sep 03 '25 12:09 mitusgamer12

Hi @mitusgamer12, try running

echo 'blacklist hid_thrustmaster' | sudo tee /etc/modprobe.d/hid_thrustmaster.conf

It looks like the wheel is being picked up by the in-kernel hid-thrustmaster, which doesn't know what to do with the TS-PC. Adding it to a blacklist should hopefully allow hid-tminit to take over.

Kimplul avatar Sep 03 '25 13:09 Kimplul

Hi, thanks for the reply. I tried the command you gave me. Now the dmesg result is different:

[    3.664968] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.664971] usb 3-2: Product: Thrustmaster FFB Wheel
[    3.664973] usb 3-2: Manufacturer: Thrustmaster
[    3.665067] usb 5-1: New USB device found, idVendor=058f, idProduct=9254, bcdDevice= 3.12
[    5.288519] hid-generic 0003:046D:C092.0005: input,hiddev1,hidraw3: USB HID v1.11 Keyboard [Logitech G203 LIGHTSYNC Gaming Mouse] on usb-0000:04:00.0-5/input1
[    5.288753] hid-generic 0003:2DC8:301C.0006: hiddev2,hidraw4: USB HID v1.10 Device [8BitDo IDLE] on usb-0000:04:00.0-8/input0
[    5.290857] input: Thrustmaster Thrustmaster FFB Wheel as /devices/pci0000:00/0000:00:08.1/0000:08:00.3/usb3/3-2/3-2:1.0/0003:044F:B65D.0001/input/input8
[    5.290923] hid-thrustmaster 0003:044F:B65D.0001: input,hidraw5: USB HID v1.00 Gamepad [Thrustmaster Thrustmaster FFB Wheel] on usb-0000:08:00.3-2/input0
[    5.292127] usb 1-6.1: New USB device found, idVendor=258a, idProduct=01c4, bcdDevice=20.00
[    5.292131] usb 1-6.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.292134] usb 1-6.1: Product: Bluetooth Keyboard
[    5.292137] usb 1-6.1: Manufacturer: SINO WEALTH
[    5.309711] hid-thrustmaster 0003:044F:B65D.0001: Unknown wheel's model id 0x609, unable to proceed further with wheel init
[    5.334321] input: SINO WEALTH Bluetooth Keyboard as /devices/pci0000:00/0000:00:02.1/0000:04:00.0/usb1/1-6/1-6.1/1-6.1:1.0/0003:258A:01C4.0007/input/input9
[   11.049966] hid_tminit_new: loading out-of-tree module taints kernel.
[   11.049971] hid_tminit_new: module verification failed: signature and/or required key missing - tainting kernel
[   11.058377] Error: Driver 'hid-thrustmaster' is already registered, aborting...
[   11.093278] input: PC Speaker as /devices/platform/pcspkr/input/input13

But now it gives the "driver is already registered" error. I see you posted about this error already, but it didn't help. Any ideas? Thanks!

mitusgamer12 avatar Sep 03 '25 13:09 mitusgamer12

@mitusgamer12 Did you already reboot? I'm guessing hid-thrustmaster stayed loaded and 'blocked' hid-tminit (they share the same module identifier at the moment, it's admittedly a bit confusing), rebooting should clear things.

Kimplul avatar Sep 03 '25 15:09 Kimplul

Thanks again for the reply. I rebooted, but the error persists. By the way, I forgot to mention that I'm on Debian 13. Maybe I could try to completely remove the hid-thrustmaster driver. Is there any way to do so? Thanks!

mitusgamer12 avatar Sep 03 '25 17:09 mitusgamer12

Alright, nevermind, I figured it out. The problem was that I needed to blacklist hid-thrustmaster from the GRUB also. So I changed this line in etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=hid_thrustmaster"

And that solved it. Now it works like a charm. Thanks for your help!

mitusgamer12 avatar Sep 03 '25 17:09 mitusgamer12

Oh, interesting. I guess that makes sense if you keep the wheel plugged in during a reboot, since the kernel probably has hid-thrustmaster in its initrd and sees the blacklist only later on during boot? I always unplug my controllers so I hadn't even considered that it might be an issue. Thanks for bringing it up, this is very useful information.

Hopefully the nonsense with blacklisting modules will be resolved in the near-ish future, there are some upstreaming efforts ongoing but I'm not entirely sure about their current status.

Kimplul avatar Sep 03 '25 21:09 Kimplul

Yeah, I keep all my peripherals connected all the time, so it makes sense that it worked for you but not for me. I'm glad I can be of help! Also, thanks a lot for these amazing drivers, I've been playing a bit and it feels just like, if not even better than on windows. Keep it on!

mitusgamer12 avatar Sep 04 '25 08:09 mitusgamer12

@Kimplul, I'm been silent for too long sorry for not answering. @mitusgamer12 thank you very much for joining, my issue is now solved thank's to both of you!

To any noob (like me) trying to use your TS-PC with Ubuntu here is the sequence to follow:

git clone https://github.com/Kimplul/hid-tmff2.git
cd hid-tmff2
git checkout tspc
git submodule update --init
sudo ./dkms/dkms_install.sh
sudo make udev-rules
echo 'blacklist hid_thrustmaster' | sudo tee /etc/modprobe.d/hid_thrustmaster.conf

@Kimplul thank you again for your dedication!

Jaileh avatar Sep 23 '25 13:09 Jaileh

In case anyone need to get the TS-PC driver on a fresh debian (or derivated) config as I do, here is the full script

# prerequisites
sudo apt install linux-headers-$(uname -r)
sudo apt install joystick -y
sudo apt install git -y
sudo apt install make -y
sudo apt install dkms -y

# actual driver installation
git clone https://github.com/Kimplul/hid-tmff2.git
cd hid-tmff2
git checkout tspc
git submodule update --init
sudo ./dkms/dkms-install.sh
sudo make udev-rules
echo 'blacklist hid_thrustmaster' | sudo tee /etc/modprobe.d/hid_thrustmaster.conf

Jaileh avatar Nov 13 '25 19:11 Jaileh