-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing /sys/bus/hid/drivers/razerkbd/bind (closed without a solution) #26
Comments
What does running Also running |
First of all thank you for the quick reply! $lsmod | grep razerkbd
They seem in the right place. $cat /sys/module/razerkbd/initstate $cat /sys/module/razerkbd/refcnt |
That is most strange. What Linux distribution are you using? |
It is an AMD64 debian oldstable (the previous stable). Are there messages in dmesg that I should search for? Should I try to add some logging to the kernel module (I never did kernel coding, so forgive any possible blasphemy :) )? |
You could try looking in I just installed Debian 8.2.0 onto a VM and installed the kernel driver and its worked successfully (ish). I doubt it, but it could be the driver is built for a different kernel version. I'm not sure logging in the kernel module will be that useful, but it can be done using |
Does
|
What do you mean With succesful(ish) :) terry win ? And what's the suggested kernel? ERRATA CORRIGE
|
Ahh the daemon didn't start at boot but I could still bind the keyboard to the driver. I am currently running the Ubuntu LTS on I have both USB's from my chroma plugged in and still don't get |
Syslog DMESG |
About the errata corrige: I have the keyboard twice here ls -l /sys/bus/hid/drivers/generic-usb/total 0 |
Running What does |
The latter command replies that hid-generic does not exist. BTW, I run just X, no DE. |
Ahh sorry different naming from ubuntu -> debian. Shouldn't matter as dmesg said they are all there. Not running a DE shouldn't matter as the driver still should have the bind. Sounds stupid but have you tried completely removing the driver, rebooting, reinstalling then rebooting ? |
A good reset is nothing stupid. Is what good jokes about IT people are made of. I will do the test tomorrow evening when back from an on the road shift. |
maybe it was a bug with the input system that i fixed ? |
I updated the coded and started having this error: In file included from razer_chroma_controller.c:1:0: It seems that on my machine dbus headers are under /usr/include/dbus1.0/dbus ... should I install some more thing? |
The USE_DBUS macro in that file relies on Install If that doesn't fix it post the output of |
The libdbus-1-dev was already on my machine when I issued the command. About pkg-config the output is the following:
According to the output of make all,
the makefile fails to identify the presence of the DBUS support and the USE_DBUS symbol remains unset. Anyway, this is a snippet from razer_chroma_controller.h 19 #ifdef USE_DBUS
20 #include <dbus/dbus.h>
21 #endif
22
23
24 struct razer_daemon_controller
25 {
26 int running;
27 #ifdef USE_DBUS
28 DBusConnection *dbus;
29 DBusPendingCall *pending;
30 #endif
31 };
32
33
34
35 int dc_dbus_error_check(char*message,DBusError *error); This means that the include in line 20 is skipped and when the compiler arrives in line 25 the DBUSError symbol is undefined too. I think that this prevents the compilation without DBUS support. I played it rough, i changed the Makefile in lib so that ALWAYS includes dbus support in both lib and examples and the compilation went on smoothly. Nevertheless, despite quigley:~# lsmod | grep raz I don't see the named file, the daemon does not initialize and I can't use the leftmost keys (it's a long time since I last used a keyboard with function keys on the left). |
Update: I pulled the last update, once it compiled fine, then I had to bash a bit the makefile to force the I would like to understand how the thing works. Any pointer to some documentation? |
at the moment the only documentation is in the readme.md. |
My apologies, my question was not correctly worded. As far as I have understood (I have no kernel programming experience), the razerkbd.ko kernel module is handled by a kernel subsystem (I think the USB kernel subsystems) and this subsystem fails to "understand" that this kernel module should be readied for use by the hid. I would like to understand this subsystem workings to see if there were "hooks" to use to understand why it is not doing the right thing on my machine. It seems to me that the module is correctly loaded (I listed it in /etc/modules after the loop module), but there's no /sys/bus/hid/drivers/razerkbd/bind directory. And I did not find any reference to that directory in the module source, I thought that the "failure" happened in the code that subsystem handling the razerkbd module. |
There's not much I've found. Your best best is to just google about Linux kernel drivers. |
BTW, these are the udev rules in my machine for the razer black widow (what's the 0209 thing?) : ACTION!="add|change", GOTO="razerkbd" KERNEL=="razerkbd_", SUBSYSTEM=="razerkbd", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0203", TAG+="uaccess" LABEL="razerkbd" |
Pretty sure its the USB id's for the Razer Firefly |
How quaint. There is none hooked to my machine. Could wiping the udev rules help? |
Nope shouldn't make a difference
|
I see. |
Another question. When is razer_kbd_probe() function called? |
probe is getting called when the device gets bound to the driver.because the hid driver grabs it first it is not being called when the device is plugged in. |
I updated to the latest stable (no kernel change) and strill the razerkbd driver is not recognized. |
BTW, is there a way to prevent the generic hid driver to grab the keyboard? |
udev supposedly should prevent hid from grabbing the razer keyboard but I've had no luck with that. I've seen some solutions that have a RUN clause in udev that echos the device id into hid-generic but haven't tried that. |
i guess you have to patch the kernel to let it skip certain ids, then 2015-11-19 16:36 GMT+01:00 tnais notifications@github.com:
The NSA verified this email and as such it is regarded to be spam and virus |
Terry, could you pass me some reference to the udev experiments? Tim: how can it happen that in certain situations the kernel creates the /sys/bus/hid/driver inodes for the razer keyboard and sometimes not? I noticed that the activation script disables the generic USB binding and then enables the razer specific one therefore I suppose that, when all goes fine, you have the generic module active and the razer specific idle, both ready for the swap. I hove to have time to read my new book and understand this. And I agree with your choice of not replicating the code and let the mainstream kernel fixes "slip in" for free. |
I tried to use this udev rule, but it did non work (it disabless the generic driver binding, but the inode for the razer does not show up.
|
Any news? A pointer to the udev example? |
No news. The udev example you did was similar to my tests. The support scripts were created to bind and unbind from hid-generic as it seemed udev didnt want to work. |
Yep. The cirectory still does not appear... |
Run |
Sorry, but closing this ticket is inappropriate since no solution has been obtained. |
Furthermore, if I say that such directory does not appear, what should ls return (regardless of the options) other than an error? |
The above ls should output something like
Have you tried uninstalling and then using ./package_for_debian and installing the deb? |
problem solved after a system upgrade. It was the former system to be broken |
Yeah I thought as much, was still an extremely strange issue though. |
First of all, thank you for the driver!
I noticed that the above file does not show up even if the kernel module seems loaded.
What could I have done wrong? I am using a 3.2.0-3-amd64 kernel.
The text was updated successfully, but these errors were encountered: