Lenovo Yoga 920 + Ubuntu 18.04 woes+questions

Hi! I have been looking for a new Linux laptop to use for work (I’m a programmer) so I checked out the Lenovo Yoga 920. Wendell’s review was really good, and the hardware is just better than what Apple have (4k screen, adequate cooling, light, M.2 ssd slot, …). However I have some issues and I was wondering if someone could help me figure them out?

I’m new to this forum so please let me know if I’m breaking any rules. I’ll try to correct them :slight_smile: I’ve only recently discovered the Level 1 Techs YouTube Channel, mostly thanks to the Lenovo 920 videos, and later collabs with LTT, and I’m loving it so far :slight_smile:

  1. Function keys. I can’t for the life of me figure out a way to switch them to normal. Wendell said there’s software for this on the LENOVO volume, or maybe he meant the Windows partition, but I just can’t find it. I’m new to Windows 10 (my last Windows was Windows 2000 SP3 after I switched to Ubuntu 9) so I might be missing something. The idea is for the keys to always be F1-F12, but the arrow keys should still be arrow keys, even after rebooting. Old Lenovo laptops like T420 had that in the BIOS, no luck here. How do I change it? Also, is there a piece of software that will let me change this under Linux?

  2. Touch screen sometimes stops working. I think it does that after I shut the lid sometimes. Not sure why or how. It’s weird. xinput still listed it as connected and on and attached to the Virtual Core Pointer device. cat’ing the /dev still showed data coming in when I touched it with my finger. It just didn’t interact with the OS at all, cursor didn’t move, etc. It’s not easy to reproduce but happens regularly.

    user@lenovo:~$ xinput
    ⎡ Virtual core pointer id=2 [master pointer (3)]
    ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
    ⎜ ↳ SYNA2B31:00 06CB:7F8B Touchpad id=12 [slave pointer (2)]
    ⎜ ↳ Wacom HID 5110 Finger touch id=11 [slave pointer (2)]
    ⎜ ↳ Wacom HID 5110 Pen stylus id=10 [slave pointer (2)]
    ⎜ ↳ Wacom HID 5110 Pen eraser id=15 [slave pointer (2)]
    ⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Video Bus id=7 [slave keyboard (3)]
    ↳ Power Button id=8 [slave keyboard (3)]
    ↳ EasyCamera: EasyCamera id=9 [slave keyboard (3)]
    ↳ Ideapad extra buttons id=13 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]

  3. I got the Belkin Thunderbolt 3 dock which I connect via the supplied cable to the rear of the two usb c ports on the laptop and the usb c port on the Belkin dock close to the DisplayPort jack. The DP works to connect a monitor, but the USB A ports only deliver power and don’t register on the OS. dmesg shows absolutely nothing when plugging in a drive into the front port or the rear ports. The drive does work in the laptop’s usb a port on the right. Here’s output from info commands with the dock connected:

    user@lenovo:~$ lsusb
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 008: ID 0cf3:e300 Atheros Communications, Inc.
    Bus 001 Device 003: ID 06cb:0081 Synaptics, Inc.
    Bus 001 Device 002: ID 5986:210d Acer, Inc
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    user@lenovo:~$ lsusb -t
    /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 5: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M
    |__ Port 8: Dev 8, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 8: Dev 8, If 0, Class=Wireless, Driver=btusb, 12M
    user@lenovo:~$ lspci
    00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
    00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
    00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08)
    00:08.0 System peripheral: Intel Corporation Skylake Gaussian Mixture Model
    00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
    00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
    00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
    00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
    00:15.3 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3 (rev 21)
    00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
    00:19.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #2 (rev 21)
    00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (rev f1)
    00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
    00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
    00:1f.0 ISA bridge: Intel Corporation Device 9d4e (rev 21)
    00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
    00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
    00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
    01:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
    02:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
    02:01.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
    02:02.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
    02:04.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
    03:00.0 System peripheral: Intel Corporation JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016] (rev 02)
    37:00.0 USB controller: Intel Corporation JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016] (rev 02)
    6b:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
    6c:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a808
    user@lenovo:~$ lspci -t
    -[0000:00]-±00.0
    ±02.0
    ±04.0
    ±08.0
    ±14.0
    ±14.2
    ±15.0
    ±15.1
    ±15.3
    ±16.0
    ±19.0
    ±1c.0-[01-6a]----00.0-[02-6a]–±00.0-[03]----00.0
    | ±01.0-[04-36]–
    | ±02.0-[37]----00.0
    | -04.0-[38-6a]–
    ±1c.4-[6b]----00.0
    ±1d.0-[6c]----00.0
    ±1f.0
    ±1f.2
    ±1f.3
    -1f.4

  4. Firefox isn’t great in tablet mode. You have to do two finger scrolling. Is there a way to make it do one finger scrolling?

  5. (The Son Of) Firefox isn’t great in tablet mode. (and yes, Chromium is Even Worse). The scrolling is sluggish. I hate it. When you start two-finger scrolling, you actually have to wait for it to realize you’re scrolling, and anything you’ve done until then does not register. Meaning you could swipe with two fingers, and where eg an Android phone would just scroll the page, Firefox would stand still like nothing happened because it just didn’t register your movement at all. If you wait patiently for it to start scrolling, and start moving then, it’s really hacky. It’s like the code updates your finger position at 1 fps. It’s pretty terrible.

  6. Mixing hi dpi and low dpi screens. I haven’t found a way to do have a 27" Dell (2048x1080) and the Yoga 920’s 4k display to display things at the same size. You can either zoom both at 200%, or neither. You can’t zoom just one and not the other. Is this a limitation of the composer? Do I need to use Wayland for that? The Display settings panel does seem to have this option for each display separately, but it always just switches both.

  7. Tiny console text. I haven’t been able to find a way to get large text on the TTYs or grub. The largest Terminus font (32x16) is about 2x too small for me to be comfortable with. I’ve worked around this by setting grub’s gfxmode to 640x480 in grub.cfg, but it looks fuzzy, so I’d much rather use 4k resolution and set a larger font in grub, how should I do this? I have searched around for bitmap fonts larger than Terminus but haven’t found any. Is there a way to take /usr/share/consolefonts/Uni2-Terminus32x16.psf.gz and simply make it 64x16 by scaling the pixels twice? Is there some tool to scale fonts like that? Otherwise the TTY console is just useless on a 4k 14" screen.

  8. Tablet mode, more issues. How can I make tablet mode increase the size of things like buttons etc? Maybe even simply increase zoom size?

  9. No WWAN. Is there an M.2 module that will do Bluetooth, WiFi, and LTE? Is there some way to hack this together? I don’t care about the antennas (I can lay pigtail antennas for 4G myself inside the case most likely). Is there something like an M.2 splitter so that I could put two M.2 cards in one M.2 port?

  10. Is there a good screen protector for this laptop? I tried getting one off Amazon but it… wasn’t the best quality.

  11. I’ve put my desktop’s ssd (a Samsung 960 Pro with grub, windows 7 (i think) and Ubuntu 14.04 32-bit on it, using a bios partition table) and tried attaching it via usb to boot from it, but the EFI is simply not recognizing it. What’s wrong?

  12. What’s the best egpu case to use with this? I’d like one with Ethernet and USB. I like the Razer Core V2. Is this a good choice for gaming if I don’t use a lot of Ethernet and USB activity while gaming?

  13. (The Bride Of) Tablet Mode Sucks. Is there a way to make the tablet mode on-screen keyboard be split so both halves are near the edges so I can thumb type? Also, I find myself sometimes unable to make it show up … what’s a good way to make it show up right away? Especially if my left-edge dock is auto-hide.

Thanks for reading. I know it’s a lot :slight_smile: and I hope someone can be arsed to help me make this laptop perfect for Linux… I’d appreciate any help, links, tips, or code! Thanks a lot!

1 Like

I’ll take a stab at #11.

You UEFI has to support CSM or BIOS compatibility mode to boot an MBR partition.

If you can select the boot manager on start up, sometimes F8, you may be able to see you MBR stuff.

If you can get to grub, then uou can make a menu entry to manually boot an MBR partition. Also note that you can’t boot MS Win7 from USB.

1 Like

Thanks. After installing Ubuntu 18.04 on the NVMe, I connected the usb drive and reconfigured grub, and now I have a permanent entry towards booting from that drive. It got added automatically. There doesn’t seem to be a BIOS compat option, the UEFI settings (“BIOS settings”) screen on the Lenovo Yoga 920 is very very spartan. Not reminiscent of the advanced BIOSes I know from Lenovo T series professional laptops! Also, the only way I know of to access it is to boot up Win 10 in some special “repair mode” and then use the boot menu of that to ask it to boot you into the BIOS/UEFI settings screen.

for 1 (turn media keys back to function keys): apparently the software to do that is not on the LENOVO partition, but it’s a software that comes pre-loaded on the Windows 10 that you get. Which is pretty important, because if you buy Windows 10 separately, you won’t have this software, and your laptop is forever stuck in function keys mode! I am not sure what it’s called, since I’m on Ubuntu right now - I think it’s called ThinkVantage.

for 3: the Thunderbolt 3 Dock started working on its own at some point. There’s nothing I changed, it just started detecting everything, including the audio outputs. See here: askubuntu.com thread

There are some other issues as well.

  1. Audio: apparently, when you connect the Thunderbolt 3 dock and try to play audio, you cannot make it play through the laptop’s speakers. At least I don’t see an option. I think it tries to use the headphone output or the connected monitor…which doesn’t have speakers.

  2. Sometimes even with the Belkin dock connected - and that has more power capacity than the PSU provided with the Yoga 920 in the box - still, sometimes the laptop battery will slowly discharge. Sometimes it just doesn’t get enough power, which is weird. This doesn’t happen with the standard PSU. I don’t know why this happens. Some failure during the Thunderbolt 3 power delivery negotiation, maybe? This is happening right now as well: The laptop battery is now at 94%. It was at 100% when I was writing the first reply 15 minutes ago. What gives… The dock definitely does have enough power, even after accounting for all the peripherals connected to it like the phone that I’m charging via a normal usb A to micro usb charging cable (Lenovo Moto G5s Plus Dual Sim). Is there a way to debug Thunderbolt 3 power delivery issues? Find out what happens during the negotiation, check the status of the power delivery system, etc?

  3. Screen tearing. I tried several settings in VLC and there’s just massive screen tearing sometimes. I don’t know why. Is there a way to have tear-free video on this laptop? Or on any Linux really? Is this a Linux thing? I have had this on my age old desktop, but I thought it was just because it was old and slow. This thing should have no issues at all whatsoever decoding a video in time. One thing I didn’t realize is that the Lenovo Yoga 920 comes with a 4k, 120Hz display, which is super cool! But I’d like it to be able to play movies without tearing…

  4. Two external monitors. I tried connecting two external Dell monitors (one via the DP port and one via the Thunderbolt 3 port with a USB C -> DP cable) and it just didn’t work. None of the displays showed anything: the laptop screen and both Dells displayed the desktop for a short while and then they were black.

  5. There doesn’t seem to be a good way of turning the display at will? Does anyone know of a way?

  6. There doesn’t seem to be a way to force the on-screen keyboard to show up - which is pretty bad because then you find yourself in situations where you just can’t type anything in.

Cheater. You are asking very specific questions about stuff that does not have good support (hardware) in the *nix world.

14.) Install PAV mixer or use your DE’s audio mixer to select the output devices. Smart detect does not always work, especially when using hardware that does not have vendor support on *nix systems.

15.) USB3 subs system is still being worked on. Advanced features like charging through USB 3.x is not 100% also, you Belkin device may have a micro controller that is not supported fir advanced features like that.

17.) No Screen Tearing is a thing. Look into Wayland. Otherwise, if you are using xorg, look at drm and dkms modules.

18.) Like screen rotation? That is handled by you DE. Look at the Display settings of your DE. Otherwise you will need to config your xconfig file or xinerama.

19.) There is no built in on screen keyboard. That is an OS convenience. You need to install a screen keyboard package. Depends on your DE and Distribution of GNU/Linux

1 Like

Thanks for the pointers. They’re pretty good and I’ll check them out. Just one thing, this is specifically about Ubuntu 18.04 so I guess we should think about what’s included there. The basic idea behind this thread is, for me at least: if someone buys a Lenovo Yoga 920 and puts Ubuntu 18.04 on it, list all the issues they’ll experience, and possible workarounds.

Ubuntu 18.04 does include Wayland, but I tried running a desktop session in it and vlc still displayed screen tearing there. This was obviously not so great. I wonder if there’s anything specific I need to set in vlc other than the Wayland output module. I’ll look into it more, thanks.

Ubuntu does come with a built in on screen keyboard. But, unfortunately, it doesn’t always show up. The Ubuntu tablet experience is not ready imo.

Here’s another issue.

  1. Video outputs on Belkin Thunderbolt 3 Dock get conflated. In Windows, if I connect the Belkin Thunderbolt 3 Dock to the Lenovo Yoga 920, and then connect a display through the dock’s DP output, and another display through the remaining usb c port (via a usb c to DP cable), then I can extend the desktop to the built in display and the two external displays, and I can display different things on them. On Linux, the display layer thinks both the DP port and the usb C port are “DP-2”, and gets confused. When I connect a monitor to either the physical DP port or the physical usb c port on the Belkin Thunderbolt 3 Dock, the display works and I can have a desktop extended to both the built in display and the external monitor. As soon as I utilize both the physical DP port and the usb c port on the dock - both of which Linux thinks are “DP-2” - the display crashes until I disconnect the dock. Not even disconnecting one of the monitors helps. This is a limitation in how Linux enumerates the ports, but I’m not sure where to even report this issue.

For your ports issue you can write a bug report to Ubuntu.

I forgot where you can do that. I believe it is on launchpad. But im not sure.

I’ll post a link to where you can file a bug report. But it’ll real me a little bit as I’m on mobile

1 Like

Found a how to report a bug guide

https://help.ubuntu.com/community/ReportingBugs

1 Like

thanks a lot, there’s no sweat, i can probably find it on launchpad too, though i think it’s more of an issue with Linux itself than the specific distribution

Maybe Ubuntu would take care of it anyway, and then other distros ( and the Linux kernel devs ) would just use Ubuntus code.

I’ll just have to read through this. https://www.kernel.org/doc/html/v4.15/admin-guide/reporting-bugs.html

You’re right, I think I’ll report to both.

1 Like

Definitely a hardware support issue. The USB 3 stack was being hevily worked on in Kernels 4.18 and 4.19.

I understand what you are trying to do with your thread now.

What is the GPU for your laptop? Those drivers determine the kind of experience you will have with xorg or wayland.

The latest released kernel is in the 4.17 series. So I’ll have to wait for 4.18 and 4.19, and I wonder for how long until I get a kernel from upstream, and then how long again for Ubuntu to apply their modifications.

Ubuntu 18.04 comes with 4.15:

user@lenovo:~$ uname -a
Linux lenovo 4.15.0-30-generic #32-Ubuntu SMP Thu Jul 26 17:42:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

I don’t know how to read this, is this 4.15.0 or 4.15.30?

The Lenovo Yoga 920 uses the integrated gpu: “128MB Intel UHD Graphics 620”

That reads 4.15.0 upstream, debian packaged version 30