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.
Best Answer
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 :
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 :)