ASUS: keyboard issue

Hi guys,

I bought ASUS VivoBook Pro 15 with Intel Core i5-7300HQ processor, NVIDIA GeForce GTX 1050 + Intel HD Graphics 630 graphic cards and Intel HM175 chipset. For years I use openSUSE with KDE but knowing the problem with hanging I decided to install the system with GNOME. Everything works correctly besides some keyboard functions. Firstly I noticed that combination of Fn + F1-F9 doesn’t work. I can’t change either brightness of keyboard nor display, although I can do this using graphical sliders. Secondly I can mute/decrease/increase volume using combinations of Fn + F10-12 and sliders too. I read a lot of topics but any method didn’t solve my problem (for example I edited /etc/default/grub file to change grub2 configuration).

I decided to leave this issue away, but I started to configure my new notebook and I installed geany. And there is another problem with some key combinations. For example I can’t use Ctrl+Scroll to zoom in/out a text content. It works on my old notebook with KDE. Moreover, it works on the new machine with Firefox or Terminator (alternative to terminal). So I suppose that the issue is related to ACPI, but is hard to fix.

My questions are: how to fix this? If I see a lot of topics which report the keyboard issue with notebooks, why there is no update to improve the openSUSE code?

Hi, I had similar problems with ASUS notebooks with Leap 42.x and I solved them by adding "acpi_osi= " (including the trailing blank and excluding quotes) to the GRUB boot line.
But I noticed that a fresh LEAP 15 install does no more need that trick, everything working as expected (till now, at least lol! ).
So the openSUSE code was indeed improved, maybe not to a point to include your HW or BIOS.

Hi
I had the same issue a while back along with the acpi_osi trick on a HP system (acpi_osi="!Windows 2012"), a bug report and hwinfo and dmidecode output attached resulted in a fix…

@OP, since it’s a new system, suggest a bug report with attached hwinfo and dmidecode output should enable a fix to be propagated…

openSUSE:Submitting bug reports - openSUSE

It is worth checking that you have the latest BIOS firmware (version 315)

 # hwinfo --bios

http://dlcdnet.asus.com/pub/ASUS/nb/X580VD/X580VDAS315.zip

I tried both options and they didn’t help. I also installed KDE and Ctrl+Scroll has an effect on zoom in geany, but Fn + key combinations behave as on GNOME. I came back to Gnome.


hwinfo --bios

01: None 00.0: 10105 BIOS                                       
  [Created at bios.186]
  Unique ID: rdCR.lZF+r4EgHp4
  Hardware Class: bios
  BIOS Keyboard LED Status:
    Scroll Lock: off
    Num Lock: off
    Caps Lock: off
  Config Status: cfg=no, avail=yes, need=no, active=unknown

What kind of information from hwinfo or dmidecode do you need? Unfortunately, I never did a BIOS update and I read that it could make irreversible changes on a machine. I can still return the notebook to the store within one week.

The BIOS version should show something like:

# hwinfo --bios
01: None 00.0: 10105 BIOS                                       
  [Created at bios.186]
  Unique ID: rdCR.lZF+r4EgHp4
  Hardware Class: bios
  BIOS Keyboard LED Status:
    Scroll Lock: off
    Num Lock: off
    Caps Lock: off
  SMBIOS Version: 2.7
  **BIOS Info: #0
    Vendor: "American Megatrends Inc."
    Version: "N551JW.209"
    Date: "03/04/2016"**
 

You may also test that the kernel modules wmi, asus_wmi and asus_nb_wmi are loaded:

# lsmod |grep wmi

If not so, you might try to load them manually and see what happens.

On my laptop (a Lenovo) “hw-nco --boot” produces 456 lines of output, including:

BIOS Info: #0
    Vendor: "LENOVO"
    Version: "A6CN58WW"
    Date: "08/06/2015"

I do not understand why you do not have something similar.

You should be able to boot into the BIOS and read the version number from the status page.

Sorry guys, my fault. I triggered hwinfo as normal user, not root.


  SMBIOS Version: 3.0
  BIOS Info: #0
    Vendor: "American Megatrends Inc."
    Version: "X580VD.308"
    Date: "10/20/2017"


asus_nb_wmi            28672  0
asus_wmi               32768  1 asus_nb_wmi
sparse_keymap          16384  1 asus_wmi
rfkill                 28672  9 asus_wmi,bluetooth,cfg80211
mxm_wmi                16384  1 nouveau
video                  45056  3 asus_wmi,nouveau,i915
wmi                    16384  3 asus_wmi,mxm_wmi,nouveau

So you have version 308 and Asus have published version 315 on 2018/04/16, unfortunately without a meaningful change log.

Let me recap my understanding.
1- The keyboard layout is the same as the one that works for me currently, it seems a “standard ASUS” layout, no fancy keys;
2- all needed wmi modules are loaded;
3- your BIOS is not up to date, but mine is 1 yr older and works out of the box with Leap 15.

My guess is that there is nothing wrong with the laptop (no need to give it back to the store) and that simply that model is too new for Linux to recognize its quirks out of the box.
I guess also that playing with the many odd acpi_osi= options might find one that works for you, or reporting a bug as Malcolm suggested in post #3 might trigger a fix for that model sooner rather than later.
I’ll come back if I find something useful over the net.

When this laptop was new I had to use a newer kernel for everything to work properly. I used the Tumbleweed kernel because I also needed a complementary Broadcom kernel module for wireless. I had automatically updated the firmware as that had been required for a previous Acer laptop.

I have another problem. I can’t copy a text by a selection to the clipboard. It’s strange because it works when I copy a content between some apps (for example from terminal to Firefox or from Firefox to the geany editor), but copying from geany to anywhere doesn’t work. On the other hand this worked on KDE (as well as Ctrl + Scroll to zoom) 1. This is caused by the fact that KDE has a default buffer which stores a text after selection. The selection is pasted by clicking the middle mouse button. I found that for GNOME parcellite is recommended. I installed it but it doesn’t want to run properly. When I trigger it as a root I get the following output:


Looking in '/etc/xdg/parcellite/parcelliterc'
Looking in '/etc/xdg/parcellite/parcelliterc'
.bashrcFlag 0x0001, status 0, EXIT 1 STAT 0

** (parcellite:3709): WARNING **: Binding '' failed!


** (parcellite:3709): WARNING **: Binding '' failed!


** (parcellite:3709): WARNING **: Binding '' failed!


** (parcellite:3709): WARNING **: Binding '' failed!

Looking in '/etc/xdg/parcellite/parcelliterc'
Looking in '/etc/xdg/parcellite/parcelliterc'


It’s just a warning but related to the keybinding. It looks like every problem is about a keyboard but 1 suggests that the another software plays a role, too.

Please don’t mix your problems in a single thread, volunteers here try to avoid threads that look like a mess. Maybe Geany has problems of its own and Parcellite is not needed with Gnome to do what you apparently need. Please open new threads on that if you like, but I think that the keyboard mapping issue should be fixed first.

Back to the Fn+Fxx problem.
You might try a Tumbleweed LiveDVD to see if a newer kernel fixes things for your laptop. If so, you might be able to run Leap with an updated kernel.
Digging a bit further, I noticed that “as installed” Leap 15 sort of recognizes Fn+Fxx on my laptop but:
a) Fn+F2 (Airplane mode) does NOT work
b) Fn+F5 and Fn+F6 (Backlight brightness) need 20 steps from 0% to 100% and 0% is indeed absolute darkness.
Booting with the "acpi_osi= " option has Fn+F2 working (even if the interaction between WiFi and BT is all but intuitive) and brightness needs 10 steps with the darker one still being barely readable.

Maybe "acpi_osi=! ", “acpi_osi=!*”, “acpi_osi=Linux” or “acpi_osi=<insert your preferred !Windowsnnnn here>” might be worth a shot.

I noticed also that in the module source at https://github.com/torvalds/linux/blob/master/drivers/platform/x86/asus-nb-wmi.c
there are some special quirks for a few ASUS models, but not (yet?) for yours (or mine, for that matter).

Please keep sharing your findings if you find something possibly useful to other ASUS users.

I agree with you. I added info about geany because the problem with a keyboard (Ctrl + Scroll) could potentially cause another issue. Nevertheless, I solved all problems with geany. I installed it again not using zypper/YaST but built it from sources (on KDE I installed it using YaST).

I’ll try different options with acpi_osi= (and I’ll share the solution). If you have any suggestions how to debug the Fn+key problem, don’t hesitate to write.

Apparently on my N551 "acpi_osi= " yields the best result, with all of "acpi_osi=! " “acpi_osi=!*” and “acpi_osi=Linux” yielding crippled Fn+Fxx functionality, so maybe the latter don’t work for you either.
I found this bug https://bugzilla.kernel.org/show_bug.cgi?id=115021#c54 which is possibly the source of “default” improvement from Leap 42.x to 15, having been fixed since kernel 4.9.x.

Too late now to continue debugging, will follow up if I find something useful.

There have been a few recent fixes to kernel code related to Asus keyboards etc., for instance https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.17.5&id=832e1eeeba916b389c3ba090d8335aff3089428e
So I think that testing a fresh Tumbleweed snapshot might be worth a shot.
I tried several acpi_osi options but none worked better than disabling _OSI altogether ("acpi_osi= ") or the default, i.e. no option at all.
bugzilla.kernel.org is filled with somewhat related bugs, so if no usual workaround works for you I think that a bug report is the way to go to get the attention of acpi and kernel specialists.

Standing by for now, willing to help but running out of ideas :frowning: