Lenovo Yoga c940

From ArchWiki
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
Wireless 8086:34f0 Yes
Fingerprint Reader 06cb:00be No

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+l4
F10 Yes Yes Super+p4
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
  1. The key is visible to xev and similar tools.
  2. The physical key has a symbol on it, which describes its function.
  3. systemd-logind handles this by default.
  4. Press and release signals are sent on physical key press, nothing occurs on physical release.

Video

By default, tearing is apparent when playing videos. To fix, create the following:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "TearFree"    "true"
EndSection

There seems to be issues with Chromium based GPU acceleration, so either disabling that via Chromium flags, removing xf86-video-intel, or adding the following options to /etc/X11/xorg.conf.d/20-intel.conf:

   Option      "NoAccel"     "true"
   Option      "DRI"         "false"

Audio

This laptop requires firmware in order for the soundcard to work. See Advanced Linux Sound Architecture#ALSA firmware.

The amplifiers for the extra speakers are turned off by default and there is no available documentation on how to turn them on; more details on bugzilla.kernel.org#205755. There is an unreleased patched firmware (from Lenovo) that turns the speakers on. See comment 59 for instructions on how to flash the UEFI. Use at your own risk!

Note:
  • If you already have BIOS version AUCN57WW the update will fail, saying that it is the same version. To allow sidegrading the BIOS to the fixed version, enter your BIOS settings and enable downgrading to a previous BIOS version.
  • This BIOS will only work on the smaller 14 inch model.

If the speakers are detected, unmuted, and the volume is turned up yet the audio does not seem to play through the speakers, try adding options snd-hda-intel dmic_detect=0 to /etc/modprobe.d/alsa-base.conf. Then, reboot.

Thermals

Thermal shutdowns are a problem unless you install pstate-frequencyAUR or thermald.

pstate-frequency

pstate-frequencyAUR 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.

Thunderbolt

Thunderbolt controller's PCIe address space is marked as "reserved" by the BIOS (handled by the e820 kernel subsystem). By default, Linux ignore these addresses, thus making some devices (e.g. Thunderbolt docks) unable to operate correctly, and may even cause crash due to PCIe controller hanging, which in turn disconnects the NVMe SSD. A patch in the kernel (accompanied by a Bugzilla issue) is currently under review to handle properly this, but will likely not be part of the mainline source tree until at least 5.19. Installation of the package linux-zen-e820-patchedAUR which integrates this patch solves the bug.

Tablet Mode

By default, the keyboard and then touchpad stay active when the device is folded keyboard-down (360 tablet mode), yoga-usage-mode-dkms-gitAUR disables this behavior.