Lenovo IdeaPad 5 15are05

From ArchWiki
Jump to navigation Jump to search

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

The IdeaPad 5 15are05 is Lenovos addition to the AMD Renoir based laptops. In some countries it's only available in predefined configurations others have if fully configurable.

Hardware Support

UEFI

Before installing, disable Secure Boot in the BIOS. You can access the BIOS by pressing F2 at the Splash screen. The boot menu can also be accessed by pressing F12.

Battery

Battery Conservation Mode is a feature that limits battery charging to 55-60% of its capacity to improve battery life, being most useful when the laptop tends to run on external power much of the time. It can be enabled / disabled with ideapad-cmAUR.

Video

Warning: Certain configurations fail to boot on almost all kernels, leaving you with a black screen / softlock. The workaround is booting with nomodeset kernel parameter and installing the linux-amdAUR or linux-rtAUR kernel.

X works natively with a current linux and xf86-video-amdgpu.

The laptop's official specs state that it can only output 3840x2160@30Hz (HDMI) and 3840x2160@30Hz (USB-C). Actually 3840x2160@60Hz works out of the box (in my case with a USB-C to Displayport cable). I could not get 3840x2160@60Hz through HDMI (stuck to 30Hz and below) but I think this is a solvable configuration problem, since in Windows I can obtain and 3840x2160@60Hz through HDMI.

Sound

Sound works with PulseAudio in linux out of the box.

Wireless

It is available with different wifi chips but they should work out of the box. In worst case, the m.2 wifi module can be easily swapped.

Touchpad

The touchpad won't work out of the box most of the time. You need to unbind it from elants_i2c before binding it to i2c_hid.

# modprobe i2c_hid
# echo "i2c-ELAN0001:00" | tee /sys/bus/i2c/drivers/elants_i2c/unbind
# echo "i2c-ELAN0001:00" | tee /sys/bus/i2c/drivers/i2c_hid/bind

The module elants_i2c now needs to be blacklisted, so you don't have to unbind and bind each time

# echo "blacklist elants_i2c" | tee /etc/modprobe.d/touchpad.conf
Warning: The previous command will overwrite the contents of /etc/modprobe.d/touchpad.conf if that file exists
Warning: Blacklisting elants_i2c module may cause touchscreen models to lose touschreen abilities. In such case, one should create a service calling a script containing unbinding and binding commands, as in comments #17 and #19 of link below

Display

The brightness now works for linux >=5.7.6.1 , since the patch to fix brightness has been merged. Older kernels have to be patched, otherwise the brightness will be only changeable between 100% and 90%. For older kernels see linux-renoir-backlightAUR[broken link: package not found] kernel which includes this patch.

SD Card Reader

SD card reader works in Linux out of the box (no extra drivers need to be built). If your SD card reader is still not recognized, try perhaps to first update to the latest BIOS version.

Fingerprint Reader

The laptop optionally comes with a Goodix fingerprint reader device (built inside the power button), with no Linux driver support at the moment.

Tips and tricks

System Performance Mode

There are 3 modes available: Intelligent Cooling, Extreme Performance and Battery Saving. To toggle it, you need to call some ACPI methods.

First install acpi_call (or acpi_call-lts for LTS kernel, acpi_call-dkms for other kernels) and load the kernel module:

 # modprobe acpi_call

Set it to Intelligent Cooling mode:

 # echo '\_SB.PCI0.LPC0.EC0.VPC0.DYTC 0x000FB001' > /proc/acpi/call

Set it to Extreme Performance mode:

 # echo '\_SB.PCI0.LPC0.EC0.VPC0.DYTC 0x0012B001' > /proc/acpi/call

Set it to Battery Saving mode:

 # echo '\_SB.PCI0.LPC0.EC0.VPC0.DYTC 0x0013B001' > /proc/acpi/call

To verify your setting:

 # echo '\_SB.PCI0.LPC0.EC0.SPMO' > /proc/acpi/call
 # cat /proc/acpi/call | cut -d '' -f1

As a result you get the value for the bit SPMO (either 0x0, 0x1 or 0x2).

 # echo '\_SB.PCI0.LPC0.EC0.FCMO' > /proc/acpi/call
 # cat /proc/acpi/call | cut -d '' -f1

As a result you get the value for the bit FCMO (either 0x0, 0x1 or 0x2). To interpret the results the following table can be used:

SPMO FCMO Mode
0x0 0x0 Intelligent Cooling
0x1 0x1 Extreme Performance
0x2 0x2 Battery Saving

Rapid Charge

Make sure you have set up acpi_call.

Turn on:

 # echo '\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x07' > /proc/acpi/call

Turn off:

 # echo '\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x08' > /proc/acpi/call

To verify your setting:

 # echo '\_SB.PCI0.LPC0.EC0.QCHO' > /proc/acpi/call
 # cat /proc/acpi/call | cut -d '' -f1

where 0x0 stands for off and 0x1 stands for on.

Also see the note

Battery Conservation

Similarly to the #Rapid Charge, make sure you have set up acpi_call.

Turn on:

 # echo '\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x03' > /proc/acpi/call

Turn off:

 # echo '\_SB.PCI0.LPC0.EC0.VPC0.SBMC 0x05' > /proc/acpi/call

To verify your setting:

 # echo '\_SB.PCI0.LPC0.EC0.BTSM' > /proc/acpi/call
 # cat /proc/acpi/call | cut -d '' -f1

where 0x0 stands for off and 0x1 stands for on.

There's also an alternative way to control the conservation mode of the battery.

Note

It is worth noting that the Lenovo Vantage software for Windows when turning on Battery Conservation mode also turns off #Rapid Charge (if it was on). The same is also valid for the #Rapid Charge: turning it on will bring the battery conservation mode down. The aforementioned acpi call #Battery Conservation won't do this for you, but #Rapid Charge will. So it's possible to get the state where both battery conservation and rapid charge modes are active if you activate #Battery Conservation after #Rapid Charge.

Flashing the BIOS from Linux

Warning: Flashing motherboard BIOS is a dangerous activity that can render your motherboard inoperable! Make sure that the laptop is plugged into power outlet at all times during the flashing of the BIOS.

Although Lenovo provides a BIOS-update executable that runs only inside Windows, this executable is simply a self-extracting archive that contains the DOS-executable which will actually perform the BIOS-update. You can instead run this DOS-executable from inside FreeDOS to flash your BIOS without using Windows. The process is described into steps:

1) Download the BIOS-update from the official Lenovo website (labelled as "BIOS Update for Windows 10 (64-bit)"). Extract then the DOS executable from the donwloaded Windows exe:

 # innoextract e7cn26ww.exe
 # file ./codeGetExtractPath/E7CN26WW.exe
Note: The extracted DOS-exe name must have max. 8 characters and all uppercase, so it is better to keep the name of the `.exe` as it got extracted (e.g. E7CN26WW.exe) and do not rename it.

2) Create a FreeDOS bootable usb disk, using any of the methods detailed here Flashing BIOS from Linux#FreeDOS. For example one of the methods is to download FreeDOS zipped image and write into the disk:

 # unzip FD12FULL.zip
 # dd if=FD12FULL.img of=/dev/sdX status=progress

3) Copy over the extracted BIOS DOS-executable into the created usb disk:

 # mount /dev/sdX1 /mnt/usb
 # cp ./codeGetExtractPath/E7CN26WW.exe /mnt/usb
 # umount /dev/sdX1

4) Make sure that the option to Boot from USB is Enabled in your BIOS and the boot priority sequence is set to try the usb disk first. Restart your laptop and boot into the usb disk.

5) After FreeDOS has booted you will be prompted first to select a language, and second if you want to install FreeDOS (press NO - Return to DOS). You will be placed back into the FreeDOS prompt, where you can see the BIOS executable and start the flashing process by simply running the executable:

 # dir /w
 # E7CN26WW.exe

The flashing process will start; the laptop may reboot multiple times during the flashing while the fans will be spinning at maximum speed. Make sure that the laptop is plugged into power at all times during this process. After the BIOS has been flashed, your laptop will do a final normal restart and boot into your bootloader. The flashing has finished and you can safely remove the usb drive.

Note: After the final reboot, if the BIOS cannot find any media to boot into or your ArchLinux bootloader is not picked up, it means that the BIOS update has changed your SecureBoot BIOS setting back into Enabled. The fix is to reboot into BIOS (by pressing F12 during laptops' power-on) and turn the SecureBoot back to Disabled.