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

Modprobe hid-nx return Exec format error #3

Open bhaurb opened 2 years ago

bhaurb commented 2 years ago

Hi,

I did a manual installation of hid-nx-dkms, as I am running Void Linux (kernel 5.18.17_1). Cloned the repo, did dkms add ., build and install, which all ran without issue. One note, regarding the naming conventions, is that the module is still called hid-nx-dkms, and the version is called v1.13, so the commands in the instructions should read sudo dkms build hid-nx-dkms -v v1.13. Anyway, I built and installed, but when I try to sudo modprobe hid-nx, then it returns Exec format error.

Not sure what additional information you need, so please tell me, and I will provide any and all required info.

emilyst commented 2 years ago

Hi,

I did a manual installation of hid-nx-dkms, as I am running Void Linux (kernel 5.18.17_1). Cloned the repo, did dkms add ., build and install, which all ran without issue. One note, regarding the naming conventions, is that the module is still called hid-nx-dkms, and the version is called v1.13, so the commands in the instructions should read sudo dkms build hid-nx-dkms -v v1.13.

Huh, maybe I got something slightly wrong there. I'll double-check later.

Anyway, I built and installed, but when I try to sudo modprobe hid-nx, then it returns Exec format error.

Not sure what additional information you need, so please tell me, and I will provide any and all required info.

This is a new one to me. Searching online would seem to suggest that the module built is for a different kernel than the one you're running, but it's unclear how that could happen.

If you're feeling up to it, could you output uname -a for your running kernel, along with modinfo on the module file which won't load?

bhaurb commented 2 years ago

Anyway, I built and installed, but when I try to sudo modprobe hid-nx, then it returns Exec format error. Not sure what additional information you need, so please tell me, and I will provide any and all required info.

This is a new one to me. Searching online would seem to suggest that the module built is for a different kernel than the one you're running, but it's unclear how that could happen.

If you're feeling up to it, could you output uname -a for your running kernel, along with modinfo on the module file which won't load?

uname -a returns Linux thinkpad 5.18.17_1 #1 SMP PREEMPT_DYNAMIC x86_64 GNU/Linux. modinfo hid-nx returns the following:

filename:       /lib/modules/5.18.17_1/extra/hid-nx.ko.gz  
description:    Driver for Nintendo Switch Controllers  
author:         Daniel J. Ogorchock <djogorchock@gmail.com>  
author:         Emily Strickland <linux@emily.st>  
license:        GPL  
alias:          hid:b0005g*v0000057Ep00002019  
alias:          hid:b0005g*v0000057Ep0000201E  
alias:          hid:b0005g*v0000057Ep00002017  
alias:          hid:b0005g*v0000057Ep00002007  
alias:          hid:b0005g*v0000057Ep00002006  
alias:          hid:b0005g*v0000057Ep00002009  
alias:          hid:b0003g*v0000057Ep00002019  
alias:          hid:b0003g*v0000057Ep0000201E  
alias:          hid:b0003g*v0000057Ep00002017  
alias:          hid:b0003g*v0000057Ep0000200E  
alias:          hid:b0003g*v0000057Ep00002009  
depends:        hid,ff-memless  
retpoline:      Y  
name:           hid_nx  
vermagic:       5.18.17_1 SMP preempt mod_unload modversions
emilyst commented 2 years ago

Sorry I didn't respond earlier. I was a bit stumped.

Can I ask for one additional piece of information? What version of GCC do you have installed? Did you recently upgrade it? (Not sure if this is related, but thought I'd try to rule it out: https://bbs.archlinux.org/viewtopic.php?pid=2053496.)

bhaurb commented 2 years ago

Running gcc --version returns gcc (GCC) 10.2.1 20201203. I'm not sure when it was last updated, but the xbps-packages repository shows that the last update was to 10.2.1pre1.3, see here.

emilyst commented 1 year ago

I cannot at all reproduce the issue, sorry. For reference, I'm using GCC 12.2.0 on Linux kernel 5.19.3-arch1-1.

I did push a commit that hopefully makes the dkms.conf file more consistent with the instructions and with the conventional dkms.conf file. But I'm not sure that will help.