emilyst / hid-nx-dkms

Alternative Linux kernel HID driver for Nintendo Switch controllers
GNU General Public License v2.0
40 stars 6 forks source link

Manual build instructions with DKMS cause a name error #2

Closed Pipeline79 closed 2 years ago

Pipeline79 commented 2 years ago

Hi, I just followed the build instructions on ubuntu with dkms. When I do the stage of adding the dkms module like so: $ sudo dkms add . In the cloned directory.
I get a link called '-dkms-v1.12' in /usr/src. And the DKMS tree gets -dkms-v1.12 added as well. Which is difficult to get rid of as well as not building - because the build command wants '/usr/src/hid-nx-1.12'. Is it something I've done? Or could there be an error in the repo somewhere? Thanks.

emilyst commented 2 years ago

Sorry this happened to you. This is likely something I've done wrong on my part. I'll double-check it soon.

emilyst commented 2 years ago

I've confirmed this problem on my setup. The problem is due to the dkms.conf file (which is really just a shell file) referencing a variable before it was defined.

FYI: You can remove the spurious dkms tree with sudo dkms remove -m '-dkms' -v 'v1.12'. Use dkms status to verify this worked.

I'll push a new release with the fix momentarily.

emilyst commented 2 years ago

See release v1.13 for the fixed version. Hope this helps! Reopen if it doesn't. Open a new issue if there's some other problem. Thanks!

Pipeline79 commented 1 year ago

Hi Emily,

Thanks very much for helping so quickly! I'm sure what you've done will have fixed it for me. I spent ages trying to get a SNES online controller to connect last night - I could get it to connect with bluetooth after much disconnecting and reconnecting, but not usb. In retroarch, with usb, the controller would appear as a device at times - if I used udev as the input driver - but the buttons were unresponsive. I could get it to work if I used bluetooth and stopped the joycond service

Best regards, Kevin.

On Wed, 3 Aug 2022 at 22:13, Emily Strickland @.***> wrote:

See release v1.13 for the fixed version. Hope this helps! Reopen if it doesn't. Open a new issue if there's some other problem. Thanks!

— Reply to this email directly, view it on GitHub https://github.com/emilyst/hid-nx-dkms/issues/2#issuecomment-1204489920, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKO34FRVHDY3UNXHIYSI4BTVXLOJNANCNFSM55QHPXYQ . You are receiving this because you authored the thread.Message ID: @.***>

emilyst commented 1 year ago

Hopefully this module will give more reliable results, if that is the problem.

If it does, feel free to update.

Pipeline79 commented 1 year ago

Yes - haven’t had any problems using the controller and pairing it since I installed this module.

Thanks!

On Tue, 11 Oct 2022 at 21:17, Emily Strickland @.***> wrote:

Hopefully this module will give more reliable results, if that is the problem.

If it does, feel free to update.

— Reply to this email directly, view it on GitHub https://github.com/emilyst/hid-nx-dkms/issues/2#issuecomment-1275224738, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKO34FRFSFB4MMRVTKFAGKTWCXDN3ANCNFSM55QHPXYQ . You are receiving this because you authored the thread.Message ID: @.***>

emilyst commented 1 year ago

I reread the note from earlier, and I believe what's happening is that the kernel module probably works fine in either case, but since mine uses slightly different device names and input orderings than the hid-nintendo-nso version, RetroArch cannot automatically configure it.

When RetroArch fails to configure a controller automatically, it seems to connect but doesn't do anything with the inputs. It appears in such a case as if the controller does not work. It is unfortunately inevitable that you will have to manually configure SNES inputs with hid-nx yourself in RetroArch. I had to move things around for the sake of consistency when adding new controllers. (FWIW, this is mentioned in the README.)

You can rule out a kernel module issue by using evtest or jstest on the command line against the device and see its inputs there.