Another year, another ThinkPad X1 Carbon, this time with a Dolby Atmos sound system and a smaller battery.
The seventh generation X1 Carbon isn't much different than the fifth and sixth generations. I opted for the non-vPro Core i5-8265U, 16Gb of RAM, a 512Gb NVMe SSD, and a matte non-touch WQHD display at ~300 nits. A brighter 500-nit 4k display is available, though early reports indicated it severely impacts battery life.
Gone are the microSD card slot on the back and 1mm of overall thickness (from 15.95mm to 14.95mm), but also 6Whr of battery (down to 51Whr) and a little bit of travel in the keyboard and TrackPoint buttons. I still very much like the feel of both of them, so kudos to Lenovo for not going too far down the Apple route of sacrificing performance and usability just for a thinner profile.
On my fifth generation X1 Carbon, I used a vinyl plotter to cut out stickers to cover the webcam, "X1 Carbon" branding from the bottom of the display, the power button LED, and the "ThinkPad" branding from the lower part of the keyboard deck.
The webcam now has a physical ThinkShutter to cover up the lens, the "X1 Carbon" branding on the display and the "ThinkPad" branding on the keyboard deck are now a glossy black against the matte black of the casing, and taking a design cue from the X1 Yoga, the X1 Carbon and has moved the power button from the top lid above the keyboard to an inset button on the right side next to the USB-A port. Maybe someone at Lenovo reads my tweets.
On the left side of the laptop are two Thunderbolt 3-enabled USB-C ports, a port for the ethernet dongle (which annoyingly blocks the second USB-C port when it's plugged in), a USB-A port, a full-size HDMI port, and a headphone jack which has moved from the right side. On the right side are another USB-A port, a fan exhaust grille, and the new power button.
New to the seventh generation is a Dolby Atmos four-speaker sound system, which thankfully does not need any awful hacks to get working, and produces a very full, loud sound. There are now two speaker grilles on the top of the keyboard deck in addition to the two on the underside of the laptop. The new sound system is pretty much the only reason I decided to get another X1 Carbon, as the speakers on my Matebook X are also Dolby Atmos powered and it's hard to use any other laptop that doesn't sound as good.
Addressing another complaint I had about the fifth generation, the four rubber feet on the underside seem more rubbery now and prevent the laptop from sliding around my desk too easily. The screen hinge is rather tight but it is just barely able to be opened one-handed. The screen does not wobble at all when typing.
Wireless connectivity is provided by a non-socketed Intel 9560 802.11a/b/g/n/ac WiFi and Bluetooth 5 chip. An Intel I219-V chip provides ethernet connectivity and requires a proprietary dongle for the physical cable connection.
The fan is silent at idle and during most operation. During long compilation or watching videos in Firefox, the fan does come on but its noise is reasonable and more of a low white-noise than a whine. The palm rest remains cool during high CPU utilization, though the keyboard deck between the J, K, and I keys can get hot, maybe due to the location of the SSD. There is no coil whine that can be heard at any distance.
The full-sized keyboard now has slightly less travel than previous generations,
but aside from some squeakiness, it is still great to type on.
The keyboard is backlit and offers two levels of adjustment with
wsconsctl keyboard.backlight on OpenBSD.
The Synaptics touchpad surface remains soft and easy to glide fingers across, and its integrated button has a solid but quiet click which I still appreciate. There is no play in the touchpad button mechanism. The three TrackPoint buttons between the keyboard and touchpad have a shallow click. While the TrackPoint still operates over a legacy PS/2 attachment, the touchpad has been upgraded to a Windows Precision Touchpad connected over I2C. A square USB-attached fingerprint sensor sits next to the touchpad.
The seventh generation X1 Carbon now defaults to a graphical BIOS upon pressing
F1, which can be switched back into a simple text mode.
F12 can be used to temporarily select a different boot device.
Fn+F1 to mute the speakers before pressing either of these
options to prevent a loud, annoying beep.
Installing a different boot logo is still possible through Windows.
Secure Boot must be disabled in the BIOS menu to boot OpenBSD, though the "CSM Support" option is no longer needed. The "Modern Standby" option must be switched to "Legacy S3 standby mode".
The option for BIOS-assisted Thunderbolt support can be enabled to make Thunderbolt devices work in OpenBSD, but only if they are plugged in before booting. I tested with Apple's Thunderbolt 2 ethernet adapter plugged into the Apple Thunderbolt 2 to 3 adapter, and it worked fine in OpenBSD.
2019-07-26: First boot of the OpenBSD installer panicked fairly early with
an AML error "Not Integer".
Booting a non-ramdisk kernel with
ACPI_DEBUG enabled showed this was due to
a problem with the touchpad's
tracked this down
to a problem with OpenBSD's implementation of
ToHexString, a fix for which
has been been
2019-07-29: Now that the system boots, I noticed that key repeating on the
console was broken, and that
date; sleep 1; date showed it taking 3 or 4
In the past this has been due to an unsynchronized TSC, but even with
acpihpet0 being the new default
kern.timecounter.hardware, it still
showed this problem.
Some further debugging pointed to
cpu0: apic clock running at 100MHz when
it should be 24Mhz.
By default, the X1 Carbon ships with its BIOS option "8254 Timer Clock Gating"
enabled, and OpenBSD uses the 8254 for APIC clock calibration.
by fetching the CPU frequency directly from the CPU instead of timing it,
in order to avoid relying on the 8254.
ihidev polling issue, the X1C7's touchpad uses GPIO interrupts and
requires a new Cannon Lake GPIO driver.
I'll need to work on this.
2019-08-07: I realized that the sound from the speakers was lacking bass on
OpenBSD but sounded fine on Linux.
A tweak with
mixerctl will properly hook up the
speaker2 outputs to the proper
DAC, enabling proper sound on OpenBSD.
echo outputs.spkr2_source=dac-0:1 >> /etc/mixerctl.conf
a quirk to the
azalia driver to do the speaker routing by default without
having to use
2019-08-19: A fix for a slowly-drawing console after S3 resume has been identified and committed.
Status is relative to OpenBSD-current as of 2019-08-14.
|Audio||Yes||Intel audio with Realtek ALC285 codec and supported by
|Battery status||Yes||51Whr battery, status available through
|Bluetooth||No||Attaches as a
|Keyboard backlight||Yes||Supported natively by the EC. Can be toggled with Fn+Space and with
|Hibernation||Yes||Can be triggered by
|SSD||Yes||The SanDisk WD Black NVMe drive is supported by
|Suspend/resume||Yes||Works fine. Can be suspended by
|Thunderbolt 3||Kinda||If BIOS assistance is enabled in the BIOS, any devices attached at boot time will work in OpenBSD and properly detach when unplugged, but will not work again when plugged in again until reboot. OpenBSD would need a Thunderbolt NHI driver for that.|
|Touchpad||Yes||Synaptics I2C, supported by
|USB||Yes||The 2 USB-C and 2 USB-A ports work fine. I am using the Lenovo USB-C UltraDock which provides charging, USB ethernet (via
|Webcam||Yes||Supported by the
|Wireless||No||The non-removable Intel 9560 802.11ac wireless chip is not yet supported by