You are not logged in.

#1 2015-08-16 12:29:27

Anaximander
Member
Registered: 2012-11-27
Posts: 17

Missing something in my quest to get my extra keys working

I'm frustrated, but I'll continue looking.

So, description of issue.  I have a Microsoft Digital Media Keyboard 3000.  None of the Extra Keys are currently 'working.'  I have multilib and am running Openbox with LigthDM.

Per this wiki, I have run showkey --keycodes, showkey --scancodes, evtest, xev and checked dmesg.  Evtest, and showkey --keycodes produces output on all but five of the extra keys (these five are well known to not work) and the showkey --scancodes produces output on the same keys except three (which go over the 255 threshhold).  However, xev doesn't report a keypress and I am not seeing an error message in dmesg on any of the extra keys.  I do not except that dmesg not reporting an error means I SOL on making my multimedia keys work because this post and this patch shows that I should be able to get the three keys that showkey --scancodes is missing.

Okay, per the initial wiki, I'll continue on with mapping scancodes to keycodes.  Run all the way through wiki and I am unable to query the udev database.  At

https://wiki.archlinux.org/index.php/Map_scancodes_to_keycodes

, I am simply returned to a prompt.  I tried this instead,

udevadm info /dev/input/by-path/pci-0000\:00\:13.0-usb-0\:3\:1.0-event-kbd | grep KEYBOARD_KEY

, and was returned to the prompt again.  I'm assuming I should either get some kind of output or be able to press keys and see them registered with some kind of out put, this isn't happening.  Maybe I'm wrong, but based upon the wiki, it doesn't seem so.

If I continue on with the mapping scancodes to keycodes wiki, I'm taken to use setkeycodes, which does not work on USB keyboards.  So back to the Extra Keyboard Keys wiki.  Next thing is mapping keycodes to keysyms.  Use xmodmap.  I have an .Xmodmap, I'm happy to post that, but at this point it doesn't seem necessary to post the contents of that.

I thought, based upon several posts, that maybe since it's being classified as a joystick it was causing some issue, so I per this from github, I download the udev rule and put them in place.  This didn't elaviate the problem.

I feel like I'm probably needing to install one piece that isn't in the base install to make it work.  I tried installing acpid, however that didn't change anything.

So.  What do I do now?

Offline

#2 2015-08-16 19:04:49

Anaximander
Member
Registered: 2012-11-27
Posts: 17

Re: Missing something in my quest to get my extra keys working

Okay -- so, took a long break, back at it.  I took a look at the udev packages I have installed:
pacman -Qs udev

local/android-udev r146-1
    Udev rules to connect Android devices to your linux box
local/libgudev 230-1
    GObject bindings for libudev
local/libsystemd 224-1
    systemd client libraries
local/systemd 224-1
    system and service manager
local/udevil 0.4.4-1
    Mount and unmount without password

I don't see any mention of a need to have anything other than those.


I went through and added the lines from the patch to /usr/lib/udev/hwdb.d/60-keyboard.hwdb and ran udevadm --update udevadm trigger.  I didn't expect it to help any thing, I just thought I'd do it now since I have the page up and am thinking about it.

In an attempt to see if I could figure out a root issue, I went back to the mapping scancodes to keycodes wiki, and took a look at the Querying the database.

It says

You can check that your configuration was loaded either by pressing keys, or by running udevadm info. For the USB keyboard in the above example, this outputs the mapping we configured as follows:

# udevadm info /dev/input/by-path/*-usb-*-kbd | grep KEYBOARD_KEY
E: KEYBOARD_KEY_70039=leftalt
E: KEYBOARD_KEY_700e2=leftctrl

So, it seems that something here isn't loading.  This is the output I receive when I run this:
udevadm info /dev/input/by-path/pci-0000\:00\:13.0-usb-0\:3\:1.0-event-kbd

P: /devices/pci0000:00/0000:00:13.0/usb8/8-3/8-3:1.0/0003:045E:0732.0002/input/input3/event1
N: input/event1
S: input/by-id/usb-Microsoft_Microsoft®_Digital_Media_oard_3000-event-kbd
S: input/by-path/pci-0000:00:13.0-usb-0:3:1.0-event-kbd
E: DEVLINKS=/dev/input/by-path/pci-0000:00:13.0-usb-0:3:1.0-event-kbd /dev/input/by-id/usb-Microsoft_Microsoft®_Digital_Media_oard_3000-event-kbd
E: DEVNAME=/dev/input/event1
E: DEVPATH=/devices/pci0000:00/0000:00:13.0/usb8/8-3/8-3:1.0/0003:045E:0732.0002/input/input3/event1
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_MODEL=Microsoft®_Digital_Media_oard_3000
E: ID_MODEL_ENC=Microsoft®\x20Digital\x20Media\x20oard\x203000
E: ID_MODEL_ID=0732
E: ID_PATH=pci-0000:00:13.0-usb-0:3:1.0
E: ID_PATH_TAG=pci-0000_00_13_0-usb-0_3_1_0
E: ID_REVISION=0200
E: ID_SERIAL=Microsoft_Microsoft®_Digital_Media_oard_3000
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030101:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=Microsoft
E: ID_VENDOR_ENC=Microsoft
E: ID_VENDOR_ID=045e
E: LIBINPUT_DEVICE_GROUP=3/45e/732/111:usb-0000:00:13.0-3
E: MAJOR=13
E: MINOR=65
E: SUBSYSTEM=input
E: USEC_INITIALIZED=3481306

I'm going to assume that since I'm not seeing any KEYBOARD_KEY items, that something isn't being loaded here appropriately.  Additionally, just because I can be a bit pedantic, the ID_MODEL=Microsoft®_Digital_Media_oard_3000 has me a bit miffed.

Offline

#3 2015-08-16 20:22:34

Anaximander
Member
Registered: 2012-11-27
Posts: 17

Re: Missing something in my quest to get my extra keys working

Okay -- I think I've identified an issue.

Despite having this set of rules, when I run ls -la /dev/input/by-path, I get:

drwxr-xr-x 2 root root 160 Aug 16 14:58 .
drwxr-xr-x 4 root root 260 Aug 16 14:58 ..
lrwxrwxrwx 1 root root   9 Aug 16 14:58 pci-0000:00:13.0-usb-0:2:1.0-event-mouse -> ../event0
lrwxrwxrwx 1 root root   9 Aug 16 14:58 pci-0000:00:13.0-usb-0:2:1.0-mouse -> ../mouse0
lrwxrwxrwx 1 root root   9 Aug 16 14:58 pci-0000:00:13.0-usb-0:3:1.0-event-kbd -> ../event1
lrwxrwxrwx 1 root root   9 Aug 16 14:58 pci-0000:00:13.0-usb-0:3:1.1-event-joystick -> ../event2      <----- Joystick despite my rules.
lrwxrwxrwx 1 root root   6 Aug 16 14:58 pci-0000:00:13.0-usb-0:3:1.1-joystick -> ../js0
lrwxrwxrwx 1 root root   9 Aug 16 14:58 platform-pcspkr-event-spkr -> ../event5

So, either I have this in the wrong place (currently it's in /etc/udev/rules.d/51-these-are-not-joysticks.rules) or I have the permissions incorrect ( currently it's at 0644).

I'm going to move the rules from /etc/udev/rules.d /usr/lib/udev/rules.d and see if that helps.

And rebooted, and it didn't.  I'm still showing a link to event-joystick -> ../event2.

So, what do I need to do to prevent the extra keys from being linked to the joystick?

Last edited by Anaximander (2015-08-16 20:27:24)

Offline

#4 2015-08-16 20:48:00

Anaximander
Member
Registered: 2012-11-27
Posts: 17

Re: Missing something in my quest to get my extra keys working

Well -- I did notice one thing.  My product ID was just slightly off (I had 045e:0730 in the rules, lsusb reports it as 045e:0732).  I made that change, I rebooted again, and this time something went wonky.  I'm not sure how to describe it, but my nitrogen settings didn't come up correctly, my apps were spanning across both monitors, but otherwise things were functioning.  Moved the rules from /usr/lib/udev/rules.d back to /etc/udev/rules.d and rebooted.  Everything is working as expected on the gui end, however when I do ls -la /dev/input/by-path I have

lrwxrwxrwx 1 root root   6 Aug 16 15:34 pci-0000:00:13.0-usb-0:3:1.1-kbd -> ../js0              <----- new link
lrwxrwxrwx 1 root root   6 Aug 16 14:58 pci-0000:00:13.0-usb-0:3:1.1-joystick -> ../js0         <----- old link

Last edited by Anaximander (2015-08-16 21:06:00)

Offline

#5 2015-08-16 21:44:04

Anaximander
Member
Registered: 2012-11-27
Posts: 17

Re: Missing something in my quest to get my extra keys working

So, I can see that this is a kernel issue.  One that goes back to at least 2012.

And instead of banging my head against a brick wall, I'm just going to find a new multimedia keyboard.

I'll remove the rules that I had put in to place and go buy something new tomorrow.

Offline

Board footer

Powered by FluxBB