The kernel has a module for this, "hid-primax", which re-orders the
received HID reports to make them compliant.

$ modinfo hid-primax
filename:       
/lib/modules/4.15.0-34-lowlatency/kernel/drivers/hid/hid-primax.ko
license:        GPL
author:         Terry Lambert <tlamb...@google.com>
srcversion:     9AF9EA4DBFB1326426467BB
alias:          hid:b0003g*v00000461p00004E05
depends:        hid
retpoline:      Y
intree:         Y
name:           hid_primax
vermagic:       4.15.0-34-lowlatency SMP preempt mod_unload
signat:         PKCS#7
signer:
sig_key:
sig_hashalgo:   md4


$ git show f6a04605f3038

commit f6a04605f303852963f3f357d19b967aa83c172f
Author: Terry Lambert <tlamb...@chromium.org>
Date:   Fri Oct 14 17:18:54 2011 -0700

    HID: support primax keyboards violating USB HID spec

    Primax keyboards with the issue this driver addresses report modifier
    keys as in band key events instead of as out of band modifier bits,
    resulting in the modifier keys generating key up events immediately
    before the keys they are intended to modify.  This driver rewrites
    the raw report data from such keyboards into USB HID 1.11 compliant
    report data.  It only matches the USB vendor and product IDs for the
    keyboard it has been tested on. Since there are several keyboards,
    notably a number of laptops and folding USB keyboards known to have
    similar unresolved problem reports, the list is expected to grow.

    Signed-off-by: Terry Lambert <tlamb...@chromium.org>
    Signed-off-by: Jiri Kosina <jkos...@suse.cz>

$ git describe --contains f6a04605f3038
v3.2-rc1~187^2^2~2

Currently the driver only supports the device ID 0461:4e05 and will need
the IDs of other devices adding in order to work with them.

# extract from drivers/hid/hid-primax.c

static const struct hid_device_id px_devices[] = {
    { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) },
    { }
};

$ grep PRIMAX  drivers/hid/hid-ids.h
#define USB_VENDOR_ID_PRIMAX    0x0461
#define USB_DEVICE_ID_PRIMAX_MOUSE_4D22 0x4d22
#define USB_DEVICE_ID_PRIMAX_KEYBOARD   0x4e05
#define USB_DEVICE_ID_PRIMAX_REZEL      0x4e72

Collecting additional IDs and adding them would be the best action to
take.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1771431

Title:
  Lenovo Essential Wireless Keyboard doesn't works (Primax Electronics
  manufacturer)

Status in linux:
  Unknown
Status in linux package in Ubuntu:
  Triaged
Status in linux package in Fedora:
  Confirmed

Bug description:
  Hi
  I got an issue on Ubuntu 18.04 with latest packages.
  uname -a:
  Linux MyLaptop 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 
x86_64 x86_64 x86_64 GNU/Linux

  lshw:
                *-usb:0
                     description: Keyboard
                     product: Lenovo USB Receiver
                     vendor: Lenovo
                     physical id: 3
                     bus info: usb@1:3
                     version: 1.05
                     capabilities: usb-2.00
                     configuration: driver=usbhid maxpower=100mA speed=12Mbit/s

  My wireless keyboard is not working, Ubuntu only recognize some
  special keys (Super, Ctrl, Shift, Alt)

  This is a Mouse+Keyboard combo using a wireless receiver by usb:

  lsusb:
  Bus 001 Device 005: ID 17ef:609b Lenovo

  Mouse works fine, and in Windows 10 it works with no issues.

  I found multiple reported problems with this keyboard in other distros (and 
from Asus too, as the real manufacturer is Primax Electronics).
  
https://forums.lenovo.com/t5/Linux-Discussion/Professional-Wireless-Keyboard-not-working-on-Linux/td-p/3726486
  https://ubuntuforums.org/showthread.php?t=2378862
  
https://askubuntu.com/questions/897729/lenovo-professional-wireless-keyboard-and-mouse-combo-not-working-in-ubuntu
  
https://forums.linuxmint.com/viewtopic.php?f=49&t=260093&sid=20a073d5dd8abb1b7f23be608d7fdfd7
  
https://unix.stackexchange.com/questions/377830/linux-hid-driver-for-primax-wireless-keyboards/

  REPORTS ON KERNEL MAILING LISTS:
  https://www.spinics.net/lists/linux-usb/msg168719.html
  https://www.spinics.net/lists/linux-input/msg56210.html
  https://www.spinics.net/lists/linux-usb/msg173012.html
  https://www.spinics.net/lists/linux-input/msg58221.html

  There is a workaround (I still didn't tried) but it needs to compile an 
specific driver.
  https://github.com/y-trudeau/linux_lenovo_ultraslim_plus

  There is already a kernel report about this.

  ProblemType: Bug
  DistroRelease: Ubuntu 18.04
  Package: linux-generic 4.15.0.20.23
  ProcVersionSignature: Ubuntu 4.15.0-20.21-generic 4.15.17
  Uname: Linux 4.15.0-20-generic x86_64
  ApportVersion: 2.20.9-0ubuntu7
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC0:  julian     1342 F.... pulseaudio
  CurrentDesktop: ubuntu:GNOME
  Date: Tue May 15 15:53:41 2018
  InstallationDate: Installed on 2018-05-14 (1 days ago)
  InstallationMedia: Ubuntu 18.04 LTS "Bionic Beaver" - Release amd64 (20180426)
  MachineType: LENOVO 20FJS0NT07
  ProcFB: 0 inteldrmfb
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.15.0-20-generic 
root=UUID=818481db-36cb-4dba-8da5-8ecf15750b3b ro noapic acpi=off vt.handoff=1
  RelatedPackageVersions:
   linux-restricted-modules-4.15.0-20-generic N/A
   linux-backports-modules-4.15.0-20-generic  N/A
   linux-firmware                             1.173
  SourcePackage: linux
  UpgradeStatus: No upgrade log present (probably fresh install)
  dmi.bios.date: 03/27/2018
  dmi.bios.vendor: LENOVO
  dmi.bios.version: N1KET38W (1.25 )
  dmi.board.asset.tag: Not Available
  dmi.board.name: 20FJS0NT07
  dmi.board.vendor: LENOVO
  dmi.board.version: SDK0J40705 WIN
  dmi.chassis.asset.tag: No Asset Information
  dmi.chassis.type: 10
  dmi.chassis.vendor: LENOVO
  dmi.chassis.version: None
  dmi.modalias: 
dmi:bvnLENOVO:bvrN1KET38W(1.25):bd03/27/2018:svnLENOVO:pn20FJS0NT07:pvrThinkPadT560:rvnLENOVO:rn20FJS0NT07:rvrSDK0J40705WIN:cvnLENOVO:ct10:cvrNone:
  dmi.product.family: ThinkPad T560
  dmi.product.name: 20FJS0NT07
  dmi.product.version: ThinkPad T560
  dmi.sys.vendor: LENOVO

To manage notifications about this bug go to:
https://bugs.launchpad.net/kernel/+bug/1771431/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to