View previous topic :: View next topic |
Author |
Message |
Abbott n00b
Joined: 23 Mar 2020 Posts: 15
|
Posted: Fri Nov 18, 2022 7:33 pm Post subject: Hardware keys no longer work |
|
|
Somewhat recently I did a big kernel config change with the help of someone over irc and (I think) ever since then I can no longer control volume or brightness with the fn keys on my Yoga 720. I have tried to search for codes with xev and xbindkeys -k when I press the keys, but nothing shows up when I press fn or fn+f1 (mute) for example. I can see that the ideapad_laptop module is loaded at boot and the thinkpad_acpi module is not, but swapping those in and out don't seem to help. I have tried setting acpi_backlight to different values when booting as well to no effect. I am not sure what else to try if I can't get the codes to show up. What else can I try? |
|
Back to top |
|
|
steve_v Guru
Joined: 20 Jun 2004 Posts: 388 Location: New Zealand
|
Posted: Sat Nov 19, 2022 4:35 pm Post subject: Re: Hardware keys no longer work |
|
|
Abbott wrote: | I have tried to search for codes with xev and xbindkeys -k when I press the keys, but nothing shows up when I press fn or fn+f1 (mute) for example. |
Those keys may not generate normal keycodes, but rather acpi events. Does acpi_listen see anything?
I don't know about the yoga series, but at least on older thinkpads one needs thinkpad_acpi loaded and some appropriate acpid handler scripts to get all the function keys working. _________________ Once is happenstance. Twice is coincidence. Three times is enemy action. Four times is Official GNOME Policy. |
|
Back to top |
|
|
Abbott n00b
Joined: 23 Mar 2020 Posts: 15
|
Posted: Tue Nov 22, 2022 10:41 pm Post subject: |
|
|
I installed acpid, started it, modprobed thinkpad_acpi, then ran acpi_listener, but pressing the buttons didn't make anything show up, so I guess there are not acpi events being sent. Are there other modules or daemons I need to get this to work? What else could the keys be doing if not sending codes or acpi events? |
|
Back to top |
|
|
Abbott n00b
Joined: 23 Mar 2020 Posts: 15
|
Posted: Fri Dec 30, 2022 7:09 am Post subject: |
|
|
Bump.
I am revisiting this and have not been able to make any progress getting events to show up with `acpi_listen`. What else can I try? |
|
Back to top |
|
|
Banana Veteran
Joined: 21 May 2004 Posts: 1392 Location: Germany
|
|
Back to top |
|
|
logrusx Veteran
Joined: 22 Feb 2018 Posts: 1535
|
Posted: Fri Dec 30, 2022 12:03 pm Post subject: |
|
|
Abbott wrote: | I installed acpid, started it, modprobed thinkpad_acpi, then ran acpi_listener, but pressing the buttons didn't make anything show up, so I guess there are not acpi events being sent. Are there other modules or daemons I need to get this to work? What else could the keys be doing if not sending codes or acpi events? |
I think it's not thinkpad_acpi, but ideapad_laptop.
Best Regards,
Georgi |
|
Back to top |
|
|
Abbott n00b
Joined: 23 Mar 2020 Posts: 15
|
Posted: Sat Dec 31, 2022 5:15 pm Post subject: |
|
|
Here is my .config: http://dpaste.com/HEMLFAV3Y
I have CONFIG_ACPI on and I have sys-power/acpid on and enabled with the default runlevel. I can see it is running with `pgrep -a acpid` and I can confirm CONFIG_ACPI is y with `zgrep CONFIG_ACPI /proc/config/gz`. I disabled the recommended settings on there, so I think I've done everything right as far as kernel options go.
logrusx wrote: | I think it's not thinkpad_acpi, but ideapad_laptop.
Best Regards,
Georgi |
I just now tried setting CONFIG_IDEAPAD_LAPTOP=m and can confirm that is set with config.gz. I did `modprobe ideapad_laptop` and tried to see events with `acpi_listen` again, but no events were generated. Does it matter if ideapad_laptop is insmoded at boot or not? Could it be something else? |
|
Back to top |
|
|
logrusx Veteran
Joined: 22 Feb 2018 Posts: 1535
|
Posted: Sat Dec 31, 2022 8:34 pm Post subject: |
|
|
Oh, this one is with nvidia, mine is with nvidia too and brightness control only worked prior to nvidia driver version 510 and I think somewhere in the 5.18 or 5.19 kernels. Now it only works in hybrid graphics mode.
Try enabling CONFIG_NVIDIA_WMI_EC_BACKLIGHT and if it doesn't work, maybe the nvidia driver is broken. You mention other buttons don't work too? Did you try with a dist kernel or boot live ubuntu for example?
Best Regards,
Georgi |
|
Back to top |
|
|
logrusx Veteran
Joined: 22 Feb 2018 Posts: 1535
|
Posted: Sun Jan 08, 2023 8:33 pm Post subject: |
|
|
I just tried 525.60.13 and it seems they've fixed the brightness control. However I don't think this has anything to do with your problem.
What I recommend is trying dist-kernel or live Ubuntu or something like that and see if it works there. If it doesn't, maybe the problem is more general.
Best Regards,
Georgi |
|
Back to top |
|
|
Abbott n00b
Joined: 23 Mar 2020 Posts: 15
|
Posted: Thu Jan 26, 2023 8:31 am Post subject: |
|
|
I have finally gotten around to testing the dist kernel and I can see that the hardware keys are working again and an unrelated issue with the rtc clock not getting set correctly at boot is also resolved. I did a zgrep -i acpi /proc/config.gz and compared it to the .config of my custom kernel and this is what I found:
Code: | diff --git a/custom_acpi.txt b/dist_acpi.txt
index 1dc1f92..c7a3258 100644
--- a/custom_acpi.txt
+++ b/dist_acpi.txt
@@ -5,6 +5,7 @@ CONFIG_ACPI=y
CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
+CONFIG_ACPI_TABLE_LIB=y
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_FPDT=y
@@ -17,54 +18,59 @@ CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=y
-# CONFIG_ACPI_TAD is not set
+CONFIG_ACPI_TAD=m
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_CPU_FREQ_PSS=y
CONFIG_ACPI_PROCESSOR_CSTATE=y
CONFIG_ACPI_PROCESSOR_IDLE=y
CONFIG_ACPI_CPPC_LIB=y
CONFIG_ACPI_PROCESSOR=y
+CONFIG_ACPI_IPMI=m
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
-CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_PLATFORM_PROFILE=m
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y
# CONFIG_ACPI_DEBUG is not set
-# CONFIG_ACPI_PCI_SLOT is not set
+CONFIG_ACPI_PCI_SLOT=y
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_HOTPLUG_MEMORY=y
CONFIG_ACPI_HOTPLUG_IOAPIC=y
-CONFIG_ACPI_SBS=y
+CONFIG_ACPI_SBS=m
CONFIG_ACPI_HED=y
# CONFIG_ACPI_CUSTOM_METHOD is not set
CONFIG_ACPI_BGRT=y
-CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y
-# CONFIG_ACPI_NFIT is not set
+CONFIG_ACPI_NFIT=m
CONFIG_ACPI_NUMA=y
CONFIG_ACPI_HMAT=y
CONFIG_HAVE_ACPI_APEI=y
CONFIG_HAVE_ACPI_APEI_NMI=y
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
-# CONFIG_ACPI_APEI_PCIEAER is not set
+CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_ACPI_APEI_MEMORY_FAILURE=y
-# CONFIG_ACPI_APEI_EINJ is not set
+CONFIG_ACPI_APEI_EINJ=m
# CONFIG_ACPI_APEI_ERST_DEBUG is not set
-# CONFIG_ACPI_DPTF is not set
+CONFIG_ACPI_DPTF=y
CONFIG_ACPI_WATCHDOG=y
-# CONFIG_ACPI_EXTLOG is not set
+CONFIG_ACPI_EXTLOG=m
+CONFIG_ACPI_ADXL=y
# CONFIG_ACPI_CONFIGFS is not set
-# CONFIG_ACPI_PFRUT is not set
+CONFIG_ACPI_PFRUT=m
CONFIG_ACPI_PCC=y
+CONFIG_ACPI_VIOT=y
CONFIG_ACPI_PRMT=y
-# CONFIG_X86_ACPI_CPUFREQ is not set
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ_CPB=y
# end of Power management and ACPI options
CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=y
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_CXL_ACPI=m
CONFIG_PNPACPI=y
CONFIG_ATA_ACPI=y
-CONFIG_ACPI_MDIO=m
+CONFIG_PATA_ACPI=m
+CONFIG_ACPI_MDIO=y
CONFIG_ACPI_I2C_OPREGION=y
# ACPI drivers
CONFIG_GPIO_ACPI=y
@@ -73,23 +79,31 @@ CONFIG_SENSORS_ACPI_POWER=m
# ACPI INT340X thermal drivers
CONFIG_ACPI_THERMAL_REL=m
# end of ACPI INT340X thermal drivers
-CONFIG_MFD_INTEL_LPSS_ACPI=m
+CONFIG_MFD_INTEL_LPSS_ACPI=y
CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m
CONFIG_SND_SOC_ACPI=m
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
CONFIG_SND_SOC_SOF_ACPI=m
-CONFIG_I2C_HID_ACPI=y
+CONFIG_SND_SOC_SOF_ACPI_DEV=m
+CONFIG_I2C_HID_ACPI=m
CONFIG_UCSI_ACPI=m
CONFIG_MMC_SDHCI_ACPI=m
CONFIG_DMA_ACPI=y
-CONFIG_ACPI_WMI=y
+CONFIG_XEN_ACPI_PROCESSOR=m
+CONFIG_XEN_ACPI=y
+CONFIG_CHROMEOS_ACPI=m
+CONFIG_SURFACE_ACPI_NOTIFY=m
+CONFIG_ACPI_WMI=m
CONFIG_THINKPAD_ACPI=m
CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
# CONFIG_THINKPAD_ACPI_DEBUG is not set
# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
-# CONFIG_THINKPAD_ACPI_VIDEO is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_ACPI_TOSHIBA=m
# CONFIG_ACPI_CMPC is not set
-# CONFIG_SYSTEM76_ACPI is not set
+CONFIG_SYSTEM76_ACPI=m
+CONFIG_ACPI_ALS=m
+CONFIG_INTEL_TH_ACPI=m
|
I tried enabling CONFIG_THINKPAD_ACPI_VIDEO, but the keys still aren't working. Could it be something not related to ACPI that is preventing this? Or could I be messing something up with module drivers or something? |
|
Back to top |
|
|
logrusx Veteran
Joined: 22 Feb 2018 Posts: 1535
|
Posted: Thu Jan 26, 2023 1:01 pm Post subject: |
|
|
This reminds me of why I use dracut instead of genkernel. I never made genkernel produce an initramfs which could enable my touchpad. I don't know why is that, I know genkernel can do some things dracut cannot. but since I'm not a user of such functionality, I don't care.
The way I discovered I needed to try dracut is it was used to produce gentoo-kernel. Btw you can supply gentoo-kernel with custom config and it'll produce kernel and initramfs for you. If you want to go that route, you need to enable savedconfig on gentoo-kernel and place a kernel config in /etc/portage/savedconfig/sys-kerenel named gentoo-kernel. I remember there was something about versioning too, but I think it'll pick it up without a version in the filename and will automatically produce a savedconfig for your particular version once it compiles the first time.
Best Regards,
Georgi |
|
Back to top |
|
|
|