Lenovo Yoga C940

Hardware
PCI/USB ID
Working?
Touchpad
06cb:00be
Yes
Keyboard
PS/2
Yes
Touchscreen
056a:51e6
Yes
Stylus
056a:51e6
Yes
Video
8086:8a52
Yes
Webcam (Acer)
5986:2115
Yes
Webcam (IMC)
13d3:56b2
Yes
Bluetooth
8087:0026
Yes
Audio
8086:34c8
Partial
Wi-Fi
8086:34f0
Yes
Fingerprint Reader
06cb:00be
27c6:55b4
Partial
Installation
To access the boot menu and UEFI, use
F1
. Disable
Secure Boot
. UEFI boot works fine.
Accessibility
The UEFI user interface (both Vanilla and patched − see
#Audio
) is graphical. An option to switch to a text-based GUI is not provided. However, the options may be selected with the arrow keys and the values changed with
F5
and
F6
keys.
Function keys
By default, the
Fn
key does not need to be pressed to toggle the alternative function of the
FX
keys, and
Fn+FX
actually sends the
FX
key signal. This behavior can be reversed in the UEFI.
Key
Visible?
1
Marked?
2
Effect
F1
Yes
Yes
XF86AudioMute
F2
Yes
Yes
XF86AudioLowerVolume
F3
Yes
Yes
XF86AudioRaiseVolume
F4
Yes
Yes
XF86AudioMicMute
F5
Yes
Yes
F5
(No change, despite the "Refresh" pictogram)
F6
Yes
Yes
XF86TouchpadOn/XF86TouchpadOff
F7
Yes
Yes
XF86RFKill
F8
Yes
Yes
XF86WebCam
F9
Yes
Yes
Super+l
4
F10
Yes
Yes
Super+p
4
F11
Yes
Yes
XF86MonBrightnessUp
F12
Yes
Yes
XF86MonBrightnessDown
Fn+Left
Yes
Yes
Home
Fn+Right
Yes
Yes
End
Fn+Up
Yes
Yes
PageUp
Fn+Down
Yes
Yes
PageDown
Fn+Space
No
Yes
Changes keyboard backlight
The key is visible to
xev
and similar tools.
The physical key has a symbol on it, which describes its function.
systemd-logind handles this by default.
Press and release signals are sent on physical key press, nothing occurs on physical release.
Video
By default on
Xorg
, tearing is apparent when playing videos. See
Intel graphics#Tearing
.
There seems to be issues with Chromium based GPU acceleration, see
Intel graphics#Corruption or unresponsiveness in Chromium and Firefox
.
Audio
This laptop is equipped with 2+2 speaker combo: two on the hinge ("front speaker") and two on the bottom (wired on a single "bass" channel).
The latter requires a custom initialization sequence that is not supported on mainline Linux (see
bugzilla.kernel.org#205755
). Therefore, two options are possible: either use the vanilla configuration and rely only on the front speakers, or flash a beta BIOS an activate the full speaker array.
In both cases,
Sound Open Firmware
is required in order for the soundcard to work.
Vanilla configuration
You need to
blacklist
the
snd_hda_intel
and
snd_soc_skl
modules for the soundcard to correctly work.
Using a beta BIOS
There exists an unreleased patched BIOS (from Lenovo) that initialize correctly the bass speakers, see
comment 59
. It is now only available on
a mirror
, which details the flashing procedure.
Note
A later official BIOS update (AUCN61WW) does not initialize the speakers correctly, even though it was released after the (AUCN57WW) beta version. The latest official BIOS update (AUCN62WW) has not been tested yet.
Warning
The beta BIOS is full of development options. While some of them are useless, others
will
brick your computer. You are strongly advised not to change any setting in the advanced menu unless you are absolutely sure of what you are doing.
If you did not follow the former advice and bricked your device,
a procedure
exists to emergency flash the BIOS, which can also be used to downgrade it:
Format a USB key to FAT32
Copy the desired BIOS on the key (or the one provided in
this post
, guaranteed to work), and rename it to
Veyron.fd
(Force) shut down the computer, and plug it on AC power.
Insert the USB key
Boot while maintaining the key
Fn+R
during 10 seconds
The power indicator should blink orange rapidly, and the screen backlight will turn on after 2-3 minutes. Then, a scrambled progress bar will appear and slowly filled. Once completed, the computer will reboot with the desired BIOS restored.
Thermals
Thermal shutdowns are a problem unless you install
pstate-frequency
AUR
or
thermald
.
pstate-frequency
pstate-frequency
AUR
allows the user to define Turbo Boost behavior and maximum clock frequencies. The user should activate
pstate-frequency.service
and
pstate-frequency-sleep.service
for the setting to persist after suspend or reboot. Configuration files are located in
/etc/pstate-frequency.d/
.
Changing the line
PLAN_CPU_MAX=100
to
PLAN_CPU_MAX=70
in
/etc/pstate-frequency.d/02-balanced.plan
will throttle the maximum clock speed from 3.90 GHz to 2.70 GHz on AC. Moreover, the default plan of
pstate-frequency
will throttle the CPU to 30 % (around 1.2 GHz; see
/etc/pstate-frequency.d/01-powersave.plan
) on battery power, removing the issue of thermal shutdowns.
thermald
A few changes are necessary for
thermald
to work as intended:
Add the following thermald config:
/etc/thermald/thermal-conf.xml
<?xml version="1.0"?>
 <!-- BEGIN -->
 <ThermalConfiguration>
 <Platform>
	<Name> Auto generated </Name>
	<ProductName>81Q9</ProductName>
	<Preference>QUIET</Preference>
	<ThermalZones>
		<ThermalZone>
			<Type>auto_zone_0</Type>
			<TripPoints>
				<TripPoint>
					<SensorType>SEN2</SensorType>
					<Temperature>80000</Temperature>
					<Type>Passive</Type>
					<CoolingDevice>
						<Type>B0D4</Type>
						<SamplingPeriod>8</SamplingPeriod>
						<TargetState>2147483647</TargetState>
					</CoolingDevice>
				</TripPoint>
				<TripPoint>
					<SensorType>x86_pkg_temp</SensorType>
					<Temperature>80000</Temperature>
					<Type>Passive</Type>
					<CoolingDevice>
						<Type>Processor</Type>
						<SamplingPeriod>1</SamplingPeriod>
					</CoolingDevice>
				</TripPoint>
			</TripPoints>
		</ThermalZone>
	</ThermalZones>
</Platform>
</ThermalConfiguration>
<!-- END -->
You might wish to tweak the target temperature (i.e. 64000) if you are OK with your machine running a bit hotter.
Edit
thermald.service
and remove
--adaptive
and add
--ignore-default-control
to the
ExecStart
line:
ExecStart=/usr/bin/thermald --systemd --dbus-enable --ignore-default-control
Manual fan control does not work at all.
Power management
Battery Conservation Mode (charge to max 50%) can be set with:
# echo 1 > /sys/bus/platform/drivers/ideapad_acpi/VPC2004\:00/conservation_mode
where
VPC2004\:00
could vary depending on the model.
If shutdown is not working and the system hangs on "reboot: Shutting down", try adding
intel_iommu=off
to your
Kernel parameters
.
Tablet mode
By default, the kernel cannot detect when the device is folded keyboard-down (360 tablet mode),
yoga-usage-mode-dkms-git
AUR
adds a driver. If the desktop environment supports it (eg. KDE, Gnome, Sway) then the touchpad and keyboard will be disabled when the device is folded by default, and may offer more touch-friendly functionality.
Fingerprint reader
Fingerprint reader requires a beta custom library based on a reverse-engineered Windows driver,
libfprint-2-tod1-synatudor-git
AUR
. Once installed, the fingerprint reader must be configured following
fprint
's procedure.
If you have the goodix reader (
27c6:55b4
), you can use this driver
libfprint-goodixtls-55x4
AUR
. Note: you will need to flash your device with
goodix-fp-dump
to use this