Ubuntu 20.04 on Lenovo t480s

Recently I've upgraded my setup and got Lenovo T480s with all max configuration(Intel i7-8650U) and additional 32Gb RAM

TL;DR: everything works really well on Ubuntu 20.04, 40Gb is just enough to run modern web applications. But in 2020 it's probably worth to consider modern models of computers and next generation CPU. Conclusion: while performance is good the design was upsetting

In this post I'll share some observations after a week of use for work. As a reminder I'm a backend and Android developer mostly focusing on JVM stack

What is GOOD

  • 🚀 Comparing to my 4 years old ASUS with Intel i7-6500U it's significally faster, mostly because of the twice more cores
  • 💎 The laptop body feels very solid, nothing bends
  • 🧠 There is a memory slot for SO-DIMM - you can get an additional 32Gb. Soldered 8Gb + additional 32Gb module in the spare slot results in 40Gb!
  • 📱 Laptop comes with touch screen. It's not a big deal but sometimes it could be useful - for example when running an Android emulator or browsing internet - pinch to zoom can be very convenient to show details somebody
  • 💾 It has NVMe SSD drive with hardware self encryption supporting OPAL2 - for the extra peace of mind
  • 🔋57Wh battery is quite decent given 8Wh discharge rate when only Chromium is open, one can expect about 6 hours off the grid while performing lights tasks in Linux

What is BAD

This notebook has a really good hardware - it's exactly what I was looking for. Unfortunately while chasing performance I ignored quite obvious problems reddit was full of.

  • 🔥 It's ducking hot . I mean it's really aiming to burn down knees to the ashes even when it doesn't do anything. Forget about keeping it on you. Not only the bottom of the laptop is on fire - the flames hurt fingers and joints. 15-20 mins working on the warm keyboard and want to wash hands with cold water. The most bizarre part is the actual temperature of the CPU cores without any load is ~42°C-44°C(107°F-111°F) which is absolutely normal. It seems there is a problem with heat conduction. Somehow instead of blowing heat out it distributed all over the laptop body.
  • 🚒 When CPUs are 100% loaded it opens a portal to hell. Although CPU cores are just within 60°C(140°F) - quite a normal temperature the fans are working tirelessly but without any success. It becomes physically painful to type on the laptop's keyboard. It's pretty much the same tortue as holding hand over campfire
  • 🖕🏼 Fingerprint scanner doesn't work in Linux. Period.
  • 🔉 T480s has absolutely rubbish speakers. I mean, why would somebody save money on the decent speakers for the laptop worth £1500? The maximum volume is extremely quiet and has rattling high pitch sound - very much like the sound quality of your first ever mobile phone.
  • 🖲️ Touchpad has huge buttons on the top of it. These buttons take like 20% of the touchpad area! That area could be occupied by the touchpad sensor itself or easily combined as many other laptops have.
  • ⌨️ The print screen button is on the lower row between Alt and Ctrl. Tell me in what universe that would be more useful than a menu key? Also, Fn and Ctrl are swapped for some reason but can be returned back in the BIOS setup. That's insane design solution

Keyboard of Lenovo t480s shows lack of UX

Linux-specific stuff

As a linux user I always do a quick check before buying a laptop just to ensure that the OS works more or less with given hardware. So it's my turn to publish some output, hopefully somebody finds it useful:

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 002: ID 0bda:0316 Realtek Semiconductor Corp. USB3.0-CRW
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 06cb:009a Synaptics, Inc. 
Bus 001 Device 004: ID 04f2:b614 Chicony Electronics Co., Ltd Integrated Camera
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 04f2:b615 Chicony Electronics Co., Ltd Integrated IR Camera
Bus 001 Device 006: ID 04f3:2398 Elan Microelectronics Corp. Touchscreen
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

UEFI Update

Ubuntu even was able to recognise the update of the UEFI available:

UEFI BIOS Update from the Ubuntu Application Centre

Well, it never worked :D

inxi -Fxz

System:    Kernel: 5.4.0-31-generic x86_64 bits: 64 compiler: gcc v: 9.3.0 Desktop: Gnome 3.36.2 
           Distro: Ubuntu 20.04 LTS (Focal Fossa) 
Machine:   Type: Laptop System: LENOVO product: 20L7CTO1WW v: ThinkPad T480s serial: <filter> 
           Mobo: LENOVO model: 20L7CTO1WW v: SDK0J40709 WIN serial: <filter> UEFI: LENOVO v: N22ET62W (1.39 ) date: 02/18/2020 
Battery:   ID-1: BAT0 charge: 47.3 Wh condition: 58.0/57.0 Wh (102%) model: SMP 01AV479 status: Discharging 
CPU:       Topology: Quad Core model: Intel Core i7-8650U bits: 64 type: MT MCP arch: Kaby Lake rev: A L2 cache: 8192 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 33599 
           Speed: 2154 MHz min/max: 400/4200 MHz Core speeds (MHz): 1: 2788 2: 2607 3: 2773 4: 2705 5: 2780 6: 2705 7: 2659 
           8: 2648 
Graphics:  Device-1: Intel UHD Graphics 620 vendor: Lenovo driver: i915 v: kernel bus ID: 00:02.0 
           Display: server: X.Org 1.20.8 driver: i915 tty: N/A 
           OpenGL: renderer: Mesa Intel UHD Graphics 620 (KBL GT2) v: 4.6 Mesa 20.0.4 direct render: Yes 
Audio:     Device-1: Intel Sunrise Point-LP HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel bus ID: 00:1f.3 
           Sound Server: ALSA v: k5.4.0-31-generic 
Network:   Device-1: Intel Ethernet I219-LM vendor: Lenovo driver: e1000e v: 3.2.6-k port: efa0 bus ID: 00:1f.6 
           IF: enp0s31f6 state: down mac: <filter> 
           Device-2: Intel Wireless 8265 / 8275 driver: iwlwifi v: kernel port: efa0 bus ID: 3d:00.0 
           IF: wlp61s0 state: up mac: <filter> 
Drives:    Local Storage: total: 238.47 GiB used: 721.51 GiB (302.6%) 
           ID-1: /dev/nvme0n1 vendor: Samsung model: MZVLB256HAHQ-000L7 size: 238.47 GiB 
Partition: ID-1: / size: 164.01 GiB used: 24.79 GiB (15.1%) fs: ext4 dev: /dev/nvme0n1p2 
Sensors:   System Temperatures: cpu: 52.0 C mobo: N/A 
           Fan Speeds (RPM): cpu: 0 
Info:      Processes: 363 Uptime: 7d 3h 39m Memory: 38.95 GiB used: 7.23 GiB (18.6%) Init: systemd runlevel: 5 Compilers: 
           gcc: 9.3.0 Shell: bash v: 5.0.16 inxi: 3.0.38 

lscpu

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   39 bits physical, 48 bits virtual
CPU(s):                          8
On-line CPU(s) list:             0-7
Thread(s) per core:              2
Core(s) per socket:              4
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           142
Model name:                      Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz
Stepping:                        10
CPU MHz:                         700.010
CPU max MHz:                     4200.0000
CPU min MHz:                     400.0000
BogoMIPS:                        4199.88
Virtualisation:                  VT-x
L1d cache:                       128 KiB
L1i cache:                       128 KiB
L2 cache:                        1 MiB
L3 cache:                        8 MiB
NUMA node0 CPU(s):               0-7
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm co
                                 nstant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdb
                                 g fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invp
                                 cid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdsee
                                 d adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d

Memory stuff lshw -short -C memory

H/W path               Device     Class          Description
============================================================
/0/3                              memory         40GiB System Memory
/0/3/0                            memory         8GiB SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2400 MHz (0.4 ns)
/0/3/1                            memory         32GiB SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2400 MHz (0.4 ns)
/0/7                              memory         256KiB L1 cache
/0/8                              memory         1MiB L2 cache
/0/9                              memory         8MiB L3 cache
/0/b                              memory         128KiB BIOS
/0/100/1f.2                       memory         Memory controller

"Max" memory according to what is written in BIOS

That's hilarious, it reports 32Gb max:

root@plum:~# dmidecode -t memory 
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.

Handle 0x0003, DMI type 16, 23 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 32 GB
    Error Information Handle: Not Provided
    Number Of Devices: 2

Conclusion

T480s is a well built laptop but has some unexplainable flaws which personally for me devalue this computer a lot. While hardware is very good for 2020 the UX could be significantly improved - heatsink has to be much better, speakers to be replaced with something decent, and "innovations" for the keyboard layout should be never welcomed.

Note this post may contain affiliate links. It helps to support author of the blog.