2

This same keyboard worked fine all the time in Ubuntu 12.04 (though on a different laptop). I now have 13.10 installed on a new laptop and I'm getting a few annoying problems with my external USB keyboard, specifically the multimedia functions.

Problem 1:

The "calculator" or "www/internet" buttons do nothing. If I go to the Shortcuts control panel and try to bind "Launch Calculator" to a new accelerator, pressing the Calculator button does not register at all. It's just not detecting that I pressed it.

Problem 2:

The volume up and volume down keys work a little bit -- however once I tap them once or twice, it infinitely keeps pressing the key forever, forcing the volume either to maximum or silent. I have to unplug the USB cable and plug it back in to stop it.

I imagine this has something to do with evdev but I have no idea how to fix it. I have tried troubleshooting using the steps at https://wiki.ubuntu.com/Hotkeys/Troubleshooting but when I run sudo evtest I get nothing when I press the multimedia keys (regular keys give feedback).

Note: my laptop has a built-in keyboard with volume controls, and they work normally as expected.

Output of lsusb:

Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 8087:07da Intel Corp. 
Bus 003 Device 008: ID 1e54:2030 TypeMatrix 2030 USB Keyboard
Bus 003 Device 006: ID 059f:0828 LaCie, Ltd 
Bus 003 Device 004: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub
Bus 003 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 003 Device 002: ID 174f:1474 Syntek 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Output of lsmod:

Module                  Size  Used by
bbswitch               13943  0 
parport_pc             32701  0 
ppdev                  17671  0 
rfcomm                 69070  12 
bnep                   19564  2 
snd_hda_codec_realtek    55704  1 
snd_hda_codec_hdmi     41117  1 
binfmt_misc            17468  1 
hid_generic            12548  0 
usb_storage            62062  1 
joydev                 17377  0 
uvcvideo               80885  0 
videobuf2_vmalloc      13216  1 uvcvideo
videobuf2_memops       13362  1 videobuf2_vmalloc
hid_logitech_dj        18581  0 
videobuf2_core         40469  1 uvcvideo
videodev              133390  2 uvcvideo,videobuf2_core
usbhid                 53014  0 
btusb                  28267  0 
hid                   105818  5 hid_generic,usbhid,hid_logitech_dj
bluetooth             371880  22 bnep,btusb,rfcomm
x86_pkg_temp_thermal    14162  0 
coretemp               13435  0 
kvm_intel             138538  0 
kvm                   431315  1 kvm_intel
crct10dif_pclmul       14289  0 
crc32_pclmul           13113  0 
ghash_clmulni_intel    13259  0 
aesni_intel            55624  2 
aes_x86_64             17131  1 aesni_intel
lrw                    13257  1 aesni_intel
gf128mul               14951  1 lrw
glue_helper            13990  1 aesni_intel
ablk_helper            13597  1 aesni_intel
cryptd                 20329  3 ghash_clmulni_intel,aesni_intel,ablk_helper
snd_hda_intel          48171  7 
snd_hda_codec         188738  3 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel
snd_hwdep              13602  1 snd_hda_codec
snd_pcm               102033  4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
arc4                   12608  2 
snd_page_alloc         18710  2 snd_pcm,snd_hda_intel
snd_seq_midi           13324  0 
snd_seq_midi_event     14899  1 snd_seq_midi
iwldvm                237440  0 
mac80211              596969  1 iwldvm
snd_rawmidi            30095  1 snd_seq_midi
iwlwifi               165398  1 iwldvm
snd_seq                61560  2 snd_seq_midi_event,snd_seq_midi
microcode              23518  0 
snd_seq_device         14497  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              29433  2 snd_pcm,snd_seq
snd                    69141  24 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_seq_midi
i915                  655752  6 
psmouse                97626  0 
serio_raw              13413  0 
cfg80211              479757  3 iwlwifi,mac80211,iwldvm
drm_kms_helper         52651  1 i915
mei_me                 18421  0 
drm                   296739  5 i915,drm_kms_helper
lpc_ich                21080  0 
mei                    77692  1 mei_me
soundcore              12680  1 snd
i2c_algo_bit           13413  1 i915
ideapad_laptop         18342  0 
sparse_keymap          13948  1 ideapad_laptop
wmi                    19070  0 
video                  19318  1 i915
mac_hid                13205  0 
lp                     17759  0 
parport                42299  3 lp,ppdev,parport_pc
alx                    32255  0 
mdio                   13807  1 alx
ahci                   25819  3 
libahci                31898  1 ahci

Update July 28, 2013:

Problem still occurs in Ubuntu 14.04, though the WWW, Mail, and Calculator media keys seem to work now. The volume up/down problem persists.

0

1 Answer 1

1

Sounds like an USB problem to me. Here is what you might try : build you own kernel with a modified hid.h value (usb2.0 driver), to allow the USB 2.0 to be more permissive. I used to do that until kernel 3.11 was out for my Perixx gaming mouse.


Building a new kernel with modifier hid.h value :

1) Open a terminal (ctrl-alt-T)

2) Launch the command :

  • sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev

It installs the requiered packages for the kernel building. You can apt-get remove <packages> afterwards to uninstall them if you wish.

3) Enter the following commands to create a directory for the kernel sources :

  • mkdir ~/source
  • cd ~/source
  • apt-get source linux-image-$(uname -r)

4) Type :

  • cd linux

Press Tab to auto-fill the name, then press Enter.

5) Launch :

  • gedit include/linux/hid.h

Find (Ctrl + F) the line #define HID_MAX_USAGES and change it's value to '64000'.

6) Launch :

cp -vi /boot/config-`uname -r` .config

To copy the configuration file of your current system.

7) (Optionnal) To speed up the building process, you can adjust the concurrency level. Launch :

  • export CONCURRENCY_LEVEL=#

Replace # by the number of your CPU's cores + 1 (Dual-core will be "3", Quad-core "5", …)

8) Launch :

  • make-kpkg clean

To prepare the directory needed by the building process.

9) Launch :

  • fakeroot make-kpkg --initrd --append-to-version=-sk kernel-image kernel-headers

This will start the kernel building process. It can take a while (between 1h and 8h following your hardware). If the process is interrupted for some reason, you should launch the command rm ~/source and start over from step 3. The kernel binaries .deb will be placed in ~/source.


To install the new kernel :

1) Open nautilus (file explorer) and go to /lib/modules.

2) Open a Terminal and launch :

  • cd ~/source

3) Type the following commands and press **Tab to auto-fill the version of kernel, named here (KERNEL_VERSION) :**

  • sudo dpkg -i linux-image-
  • sudo dpkg -i linux-headers-

Both commands (once filled by Tab) must end by .deb

4) Launch :

  • sudo update-initramfs -c -k KERNEL_NAME

You have to replace KERNEL_NAME by the name used by the directory containing the modifier kernel (should end with "-sk" in nautilus).

5) Launch :

  • sudo update-grub

(and also sudo update-burg if you use BURG).

6) Restart the computer.

You now run a custom kernel ! Congrats'


If that doesn't work, the problem is NOT caused by HID (usb2.0 driver) and I have no idea how to help you :)

4
  • trying this now. by the way when I did the first step installing the required packages, a prompt came up asking if I wanted kexec to handle system reboots, I said 'no' to that. Jan 5, 2014 at 3:40
  • I made a mistake on step 6 ! The askubuntu text editor choose to interpret wrong my quotation marks, I'm sorry. It's fixed now
    – MrVaykadji
    Jan 5, 2014 at 9:38
  • i did spot that oddity and got the correct instruction from a Google search. I've now finished following the steps and am using the custom SK kernel, but the problem is continuing. I think it has to do with how fast I press volume up & down... if I press it very slowly, the problem won't happen... but if I press it like four times in a row quickly, the infinite loop will occur. Jan 5, 2014 at 23:32
  • Mh. Sorry then. The problem must still come from your drivers (that are built in the kernel), but maybe not the hid.h part... Just in case : have you tried your keyboard on another ditribution since the problem appeared ? I mean, maybe your keyboard is broken, but that happened after you switched to 13.10 (hope for you that your problem comes from Ubuntu though^^)
    – MrVaykadji
    Jan 6, 2014 at 10:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.