Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.kernel > #74478 > unrolled thread

Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted

Started byJosh Triplett <josh@joshtriplett.org>
First post2022-02-22 01:40 +0100
Last post2022-11-11 20:50 +0100
Articles 10 — 4 participants

Back to article view | Back to linux.debian.kernel


Contents

  Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted Josh Triplett <josh@joshtriplett.org> - 2022-02-22 01:40 +0100
    Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted Salvatore Bonaccorso <carnil@debian.org> - 2022-02-25 14:50 +0100
      Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted Josh Triplett <josh@joshtriplett.org> - 2022-11-11 18:10 +0100
        Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted Salvatore Bonaccorso <carnil@debian.org> - 2022-11-11 20:50 +0100
    Processed: Re: Bug#1006251: USB Lenovo ThinkPad Compact Keyboard  has fn_lock inverted "Debian Bug Tracking System" <owner@bugs.debian.org> - 2022-02-25 14:50 +0100
    Bug#1006251: marked as done (USB Lenovo ThinkPad Compact Keyboard  has fn_lock inverted) "Debian Bug Tracking System" <owner@bugs.debian.org> - 2022-11-11 17:00 +0100
    Bug#1006251: Closing this bug (BTS maintenance for src:linux bugs) Josh Triplett <josh@joshtriplett.org> - 2022-11-11 18:10 +0100
    Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted Josh Triplett <josh@joshtriplett.org> - 2022-11-11 18:10 +0100
      Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted Jamie Lentin <jm@lentin.co.uk> - 2022-11-12 17:00 +0100
    Processed: Re: Bug#1006251: USB Lenovo ThinkPad Compact Keyboard  has fn_lock inverted "Debian Bug Tracking System" <owner@bugs.debian.org> - 2022-11-11 20:50 +0100

#74478 — Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted

FromJosh Triplett <josh@joshtriplett.org>
Date2022-02-22 01:40 +0100
SubjectBug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted
Message-ID<DTrnH-3skv-1@gated-at.bofh.it>
Package: src:linux
Version: 5.16.7-2
Severity: normal
X-Debbugs-Cc: josh@joshtriplett.org

I have an external ThinkPad USB keyboard:

$ lsusb | grep -i keyboard
Bus 003 Device 022: ID 17ef:6047 Lenovo ThinkPad Compact Keyboard with TrackPoint

The Linux kernel exposes a fn_lock attribute in sysfs for this keyboard:

$ cat /sys/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4.3/3-5.4.3:1.1/0003:17EF:6047.000F/fn_lock
1

However, this attribute appears inverted for this particular keyboard:
it seems to be 1 when FnLock is *disabled* and 0 when FnLock is
*enabled*.

[toc] | [next] | [standalone]


#74514

FromSalvatore Bonaccorso <carnil@debian.org>
Date2022-02-25 14:50 +0100
Message-ID<DUJ8R-4fVe-5@gated-at.bofh.it>
In reply to#74478
Control: tags -1 + moreinfo

Hi Josh,

On Mon, Feb 21, 2022 at 04:31:39PM -0800, Josh Triplett wrote:
> Package: src:linux
> Version: 5.16.7-2
> Severity: normal
> X-Debbugs-Cc: josh@joshtriplett.org
> 
> I have an external ThinkPad USB keyboard:
> 
> $ lsusb | grep -i keyboard
> Bus 003 Device 022: ID 17ef:6047 Lenovo ThinkPad Compact Keyboard with TrackPoint
> 
> The Linux kernel exposes a fn_lock attribute in sysfs for this keyboard:
> 
> $ cat /sys/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4.3/3-5.4.3:1.1/0003:17EF:6047.000F/fn_lock
> 1
> 
> However, this attribute appears inverted for this particular keyboard:
> it seems to be 1 when FnLock is *disabled* and 0 when FnLock is
> *enabled*.

If you can reproduce this with either 5.16.10-1 (or later today
5.16.11-1) or the current version in experimental (5.17~rc4-1~exp1)
would it be possible you report it upstream and keep us updated on the
progress?

Regards,
Salvatore

[toc] | [prev] | [next] | [standalone]


#77044

FromJosh Triplett <josh@joshtriplett.org>
Date2022-11-11 18:10 +0100
Message-ID<FqFHr-31ZR-21@gated-at.bofh.it>
In reply to#74514
On Fri, Feb 25, 2022 at 02:43:59PM +0100, Salvatore Bonaccorso wrote:
> Control: tags -1 + moreinfo
> 
> Hi Josh,
> 
> On Mon, Feb 21, 2022 at 04:31:39PM -0800, Josh Triplett wrote:
> > Package: src:linux
> > Version: 5.16.7-2
> > Severity: normal
> > X-Debbugs-Cc: josh@joshtriplett.org
> > 
> > I have an external ThinkPad USB keyboard:
> > 
> > $ lsusb | grep -i keyboard
> > Bus 003 Device 022: ID 17ef:6047 Lenovo ThinkPad Compact Keyboard with TrackPoint
> > 
> > The Linux kernel exposes a fn_lock attribute in sysfs for this keyboard:
> > 
> > $ cat /sys/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4.3/3-5.4.3:1.1/0003:17EF:6047.000F/fn_lock
> > 1
> > 
> > However, this attribute appears inverted for this particular keyboard:
> > it seems to be 1 when FnLock is *disabled* and 0 when FnLock is
> > *enabled*.
> 
> If you can reproduce this with either 5.16.10-1 (or later today
> 5.16.11-1) or the current version in experimental (5.17~rc4-1~exp1)
> would it be possible you report it upstream and keep us updated on the
> progress?

Reproduced with 6.0.6-2, and reported upstream (CCed to this bug).

[toc] | [prev] | [next] | [standalone]


#77048

FromSalvatore Bonaccorso <carnil@debian.org>
Date2022-11-11 20:50 +0100
Message-ID<FqIch-33lr-9@gated-at.bofh.it>
In reply to#77044
Control: forwarded -1 https://lore.kernel.org/linux-input/Y26BMXn15Kbt6a2u@localhost/
Control: tags -1 - moreinfo

Hi Josh.

On Fri, Nov 11, 2022 at 09:07:41AM -0800, Josh Triplett wrote:
> On Fri, Feb 25, 2022 at 02:43:59PM +0100, Salvatore Bonaccorso wrote:
> > Control: tags -1 + moreinfo
> > 
> > Hi Josh,
> > 
> > On Mon, Feb 21, 2022 at 04:31:39PM -0800, Josh Triplett wrote:
> > > Package: src:linux
> > > Version: 5.16.7-2
> > > Severity: normal
> > > X-Debbugs-Cc: josh@joshtriplett.org
> > > 
> > > I have an external ThinkPad USB keyboard:
> > > 
> > > $ lsusb | grep -i keyboard
> > > Bus 003 Device 022: ID 17ef:6047 Lenovo ThinkPad Compact Keyboard with TrackPoint
> > > 
> > > The Linux kernel exposes a fn_lock attribute in sysfs for this keyboard:
> > > 
> > > $ cat /sys/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4.3/3-5.4.3:1.1/0003:17EF:6047.000F/fn_lock
> > > 1
> > > 
> > > However, this attribute appears inverted for this particular keyboard:
> > > it seems to be 1 when FnLock is *disabled* and 0 when FnLock is
> > > *enabled*.
> > 
> > If you can reproduce this with either 5.16.10-1 (or later today
> > 5.16.11-1) or the current version in experimental (5.17~rc4-1~exp1)
> > would it be possible you report it upstream and keep us updated on the
> > progress?
> 
> Reproduced with 6.0.6-2, and reported upstream (CCed to this bug).

Thank you for re-testing and reporting it upstream.

Regards,
Salvatore

[toc] | [prev] | [next] | [standalone]


#74515 — Processed: Re: Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted

From"Debian Bug Tracking System" <owner@bugs.debian.org>
Date2022-02-25 14:50 +0100
SubjectProcessed: Re: Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted
Message-ID<DUJ8R-4fVe-7@gated-at.bofh.it>
In reply to#74478
Processing control commands:

> tags -1 + moreinfo
Bug #1006251 [src:linux] USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted
Added tag(s) moreinfo.

-- 
1006251: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1006251
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems

[toc] | [prev] | [next] | [standalone]


#77038 — Bug#1006251: marked as done (USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted)

From"Debian Bug Tracking System" <owner@bugs.debian.org>
Date2022-11-11 17:00 +0100
SubjectBug#1006251: marked as done (USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted)
Message-ID<FqEBH-317X-1@gated-at.bofh.it>
In reply to#74478

[Multipart message — attachments visible in raw view] — view raw

Your message dated Fri, 11 Nov 2022 16:46:52 +0100 (CET)
with message-id <20221111154652.27E15BE2DE0@eldamar.lan>
and subject line Closing this bug (BTS maintenance for src:linux bugs)
has caused the Debian Bug report #1006251,
regarding USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1006251: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1006251
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems

[toc] | [prev] | [next] | [standalone]


#77042 — Bug#1006251: Closing this bug (BTS maintenance for src:linux bugs)

FromJosh Triplett <josh@joshtriplett.org>
Date2022-11-11 18:10 +0100
SubjectBug#1006251: Closing this bug (BTS maintenance for src:linux bugs)
Message-ID<FqFHr-31ZR-3@gated-at.bofh.it>
In reply to#74478
reopen 1006251 6.0.6-2
thanks

I can confirm that this still exists in current kernels.

- Josh Triplett

On Fri, Nov 11, 2022 at 04:46:52PM +0100, carnil@debian.org wrote:
> Hi
> 
> This bug was filed for a very old kernel or the bug is old itself
> without resolution.
> 
> If you can reproduce it with
> 
> - the current version in unstable/testing
> - the latest kernel from backports
> 
> please reopen the bug, see https://www.debian.org/Bugs/server-control
> for details.
> 
> Regards,
> Salvatore

[toc] | [prev] | [next] | [standalone]


#77043

FromJosh Triplett <josh@joshtriplett.org>
Date2022-11-11 18:10 +0100
Message-ID<FqFHr-31ZR-1@gated-at.bofh.it>
In reply to#74478
I have an external ThinkPad USB keyboard:

$ lsusb | grep -i keyboard
Bus 003 Device 022: ID 17ef:6047 Lenovo ThinkPad Compact Keyboard with TrackPoint

The Linux kernel exposes a fn_lock attribute in sysfs for this keyboard:

$ cat
sys/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4.3/3-5.4.3:1.1/0003:17EF:6047.000F/fn_lock
1

However, this attribute appears inverted for this particular keyboard:
it seems to be 1 when FnLock is *disabled* and 0 when FnLock is
*enabled*. In order to enable FnLock, I have to write 0 to this file.

(Also, separately from that, it would be nice if the kernel could handle
fn_lock toggling *internally*, rather than expecting userspace to do it.
As far as I can tell, it does handle similar things for some keyboards,
but not this one.)

[toc] | [prev] | [next] | [standalone]


#77069

FromJamie Lentin <jm@lentin.co.uk>
Date2022-11-12 17:00 +0100
Message-ID<Fr15f-3eP3-5@gated-at.bofh.it>
In reply to#77043
On 2022-11-11 17:06, Josh Triplett wrote:
> I have an external ThinkPad USB keyboard:
> 
> $ lsusb | grep -i keyboard
> Bus 003 Device 022: ID 17ef:6047 Lenovo ThinkPad Compact Keyboard with
> TrackPoint
> 
> The Linux kernel exposes a fn_lock attribute in sysfs for this 
> keyboard:
> 
> $ cat
> sys/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4.3/3-5.4.3:1.1/0003:17EF:6047.000F/fn_lock
> 1
> 
> However, this attribute appears inverted for this particular keyboard:
> it seems to be 1 when FnLock is *disabled* and 0 when FnLock is
> *enabled*. In order to enable FnLock, I have to write 0 to this file.

Under Windows the default actions of the Function keys are the media 
keys, i.e. pressing F1 is Mute. Fn-"Mute" is F1, or enabling Fn-Lock & 
"Mute". That's why when /fn_lock is 1, the Mute key is F1.

With keyboards built into Thinkpads there's a BIOS setting to invert the 
behaviour of Fn-Lock (and thus have Fn keys by default), as well as 
swapping Fn<->Ctrl, but there's no equivalent option for the external 
keyboards.

What's the wrong way around here is hid-lenovo assumes that you want 
Fn-Lock on when connecting to the keyboard, not off. My assumption at 
the time was that whilst it's different to how the keyboard behaves 
under Windows, it'd be a more useful default.

> (Also, separately from that, it would be nice if the kernel could 
> handle
> fn_lock toggling *internally*, rather than expecting userspace to do 
> it.
> As far as I can tell, it does handle similar things for some keyboards,
> but not this one.)

Agreed. This was something I looked into when I was adding support for 
the keyboards. For yours it's a pretty trivial addition, but for the USB 
variant you can't send the command in the middle of the USB interrupt 
receiving the keypress, solving this seemed to require quite a lot of 
boilerplate for what would have been pretty trivial in userland.

Of course, It's very easily possible that I missed something, or there's 
a helper to do this sort of thing that now exists.

Cheers,

[toc] | [prev] | [next] | [standalone]


#77047 — Processed: Re: Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted

From"Debian Bug Tracking System" <owner@bugs.debian.org>
Date2022-11-11 20:50 +0100
SubjectProcessed: Re: Bug#1006251: USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted
Message-ID<FqIch-33lr-7@gated-at.bofh.it>
In reply to#74478
Processing control commands:

> forwarded -1 https://lore.kernel.org/linux-input/Y26BMXn15Kbt6a2u@localhost/
Bug #1006251 {Done: carnil@debian.org} [src:linux] USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted
Set Bug forwarded-to-address to 'https://lore.kernel.org/linux-input/Y26BMXn15Kbt6a2u@localhost/'.
> tags -1 - moreinfo
Bug #1006251 {Done: carnil@debian.org} [src:linux] USB Lenovo ThinkPad Compact Keyboard has fn_lock inverted
Removed tag(s) moreinfo.

-- 
1006251: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1006251
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.kernel


csiph-web