Lenovo IdeaPad Flex 5 14alc05
Hardware | PCI/USB ID | Working? |
---|---|---|
Video | 1002:164c |
Yes |
Speakers | 1022:15e3 |
Yes |
Microphone | Yes | |
Wireless | 8086:2723 |
Yes |
Bluetooth | 8087:0029 |
Yes |
Keyboard | Yes | |
Touchpad | Yes | |
Touchscreen | Yes | |
Webcam | 5986:212a |
Yes |
Fingerprint sensor | 27c6:55b4 |
No |
Pen input | Yes | |
Accelerometer | 1022:15e4 |
No |
SD-card reader | 10ec:522a |
Yes |
The IdeaPad Flex 5 14alc05 is a 14-inch AMD Lucienne (Ryzen 5000)-based convertible from Lenovo.
Firmware
This device is not supported by fwupd.
Secure Boot
The BIOS accepts custom Secure Boot keys. To enroll them, you have to use KeyTool
from efitools.
Follow the guide under Secure Boot#Using KeyTool.
Touchpad/Touchscreen
Sometimes the touchpad and touchscreen will not work after booting due to missing module dependencies, pinctrl_amd
is unavailable when the modules for the touchpad/touchscreen get loaded.
To use the touchpad/touchscreen reliably after booting, create the following file:
/etc/modprobe.d/touchpad.conf
softdep hid-multitouch pre: pinctrl_amd softdep i2c_hid pre: pinctrl_amd softdep i2c_designware pre: pinctrl_amd softdep wacom pre: pinctrl_amd
Accelerometer
Since the accelerometer sensor is currently not supported, iio-sensor-proxy will not detect any motion and screen rotation through D-Bus (e.g. with GNOME) is not working.
See https://bbs.archlinux.org/viewtopic.php?pid=1933133#p1933133
Power management
(see Lenovo IdeaPad 5 14are05#Tips and tricks, similar methods)
System Performance Mode
There are 3 performance modes available: Intelligent Cooling, Extreme Performance and Battery Saving. To set them, you need to call the corresponding ACPI methods.
First install acpi_call (acpi_call-lts for LTS kernel, acpi_call-dkms for other kernels) and load the kernel module:
# modprobe acpi_call
Set it to Battery Saving mode:
# echo '\_SB.PCI0.LPC0.EC0.VPC0.DYTC 0x0013B001' | tee /proc/acpi/call
Set it to Extreme Performance mode:
# echo '\_SB.PCI0.LPC0.EC0.VPC0.DYTC 0x0012B001' | tee /proc/acpi/call
Set it to Intelligent Cooling mode:
# echo '\_SB.PCI0.LPC0.EC0.VPC0.DYTC 0x000FB001' | tee /proc/acpi/call
To verify your setting:
# echo '\_SB.PCI0.LPC0.EC0.PFMM' | tee /proc/acpi/call # cat /proc/acpi/call | cut -d '' -f1
where 0x0
stands for Battery Saving, 0x1
for Extreme Performance and 0x2
for Intelligent Cooling.
Battery Conservation
Similarly to #System Performance Mode, make sure you have set up acpi_call.
Turn on:
# echo '\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x03' | tee /proc/acpi/call
Turn off:
# echo '\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x05' | tee /proc/acpi/call
To verify your setting:
# echo '\_SB.PCI0.LPC0.EC0.SMBM' | tee /proc/acpi/call # cat /proc/acpi/call | cut -d '' -f1
where 0x0
stands for off and 0x1
stands for on.
There is also an alternative way to control the conservation mode of the battery.
Rapid Charge
Make sure you have set up acpi_call.
Turn on:
# echo '\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x07' | tee /proc/acpi/call
Turn off:
# echo '\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x08' | tee /proc/acpi/call
To verify your setting:
# echo '\_SB.PCI0.LPC0.EC0.QKCM' | tee /proc/acpi/call # cat /proc/acpi/call | cut -d '' -f1
where 0x0
stands for off and 0x1
stands for on.
Note however, that this is untested!
See https://forums.lenovo.com/topic/findpost/1092/5018261/5262868. You can turn on S3 sleep support.
Issues
Suspend issues (S3 sleep fix) - tested with Bios Version: "G5CN16WW(V1.04)"
Original solution (different Model) is described on reddit.
About issue
Windows has introduced a new sleep mode a.k.a. Modern Standby. It is supposed to be more like a smartphone's deep sleep, which lets the system keep the wifi active and check for emails without needing to fully wake up.
For some reason, this new S0ix sleep mode only works if BIOS does not advertise support for the traditional S3 suspend-to-RAM sleep state. So Linux will do suspend-to-idle sleep, which results in bigger energy consumption.
Some systems have a "Sleep Mode: Windows / Linux" switch in the BIOS to turn S3 support on or off. This is unfortunately not the case for this Lenovo laptop.
Solution
- Get acpidump and iasl, provided by the acpica package.
- Dump all your ACPI files into a directory:
$ mkdir ~/acpi/ $ cd ~/acpi/ # acpidump -b
- Decompile the DSDT table
$ iasl -e *.dat -d dsdt.dat
- Patch the decompiled DSDT table (dsdt.dsl), using this patch:
$ patch -p1 < dsdt.patch
- Compile the modified DSDT table
$ iasl -ve -tc dsdt.dsl
- Make a cpio archive
$ mkdir -p kernel/firmware/acpi $ cp dsdt.aml kernel/firmware/acpi $ find kernel | cpio -H newc --create > acpi_override
- Copy created cpio file to boot:
# cp acpi_override /boot
- GRUB needs to boot the kernel with a parameter setting the deep sleep state as default. Edit
/etc/default/grub
and add the following:
GRUB_CMDLINE_LINUX_DEFAULT="mem_sleep_default=deep"
GRUB_EARLY_INITRD_LINUX_CUSTOM=acpi_override
- Regenerate the GRUB configuration:
# grub-mkconfig -o /boot/grub/grub.cfg
as a result in the /boot/grub/grub.cfg
for the corresponding menu entry(ies) one should be able to find lines that look similar to: initrd /boot/acpi_override
- Reboot
- To verify that things are working:
# dmesg | grep ACPI | grep supports
[ 0.195933] ACPI: (supports S0 S3 S4 S5)
$ cat /sys/power/mem_sleep
s2idle [deep]
- Do not forget to set your system to go into 'deep' sleep
# echo deep > /sys/power/mem_sleep
- Now try new suspend. Power led should have a slowly pulsing light.
See also
- Official support page: https://pcsupport.lenovo.com/de/en/products/laptops-and-netbooks/flex-series/flex-5-14alc05/82hu/
- Product Specifications Reference: https://psref.lenovo.com/Product/IdeaPad_Flex_5_14ALC05