In 2021 its very hard to find a laptop under £1000 with a decent screen. Most have 45% NTSC Colour Gamut. Most reviews will tell you this is ok as long as you are not gaming or photo editing. It is NOT ok. At 45% NTSC colours are washed out. Especially the red. This is noticable even just browsing the web, let alone looking at photos. A 45% NTSC screen is just not good enough, yet this is what most laptops come with. The minimum for a usable laptop is 72% NTSC or 100% sRGB.
Laptop hinges are another area which can be difficult. Most laptops now come with a hinge that uses the lid/screen to prop the body off the ground. The reasoning behind this is that it creates a gap between the laptop and desk for airflow because modern laptops get so hot. This is no good if you are actually using the laptop on your lap. Also the jury is out on the reliability and durability of these hinges. The Lenovo has a traditional hinge and little feet that keep the case off the desk. That said it does not seem to get hot under normal operation.
Ports are another issue on laptops. Its hard to find one with a decent array of ports. Trackpads are usually awful so first thing I do is plug a USB mouse in, thats one port gone straight away. The Lenovo has a decent amount of ports.
Like all machines now, the laptop comes with Windows pre-installed and a recovery partition and no CD/DVDs. I have no plns to use Windows at all, so I backed up the whole disk via dd to a file image on a spare USB hard drive. I then installed Ubuntu Budgie 20.10 using full disk encryption and the whole hard drive.
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors Disk model: SAMSUNG MZVLB512HBJQ-000L2 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 885501F8-62CB-459A-86D0-A69CBBB64903 Device Start End Sectors Size Type /dev/nvme0n1p1 2048 1050623 1048576 512M EFI System /dev/nvme0n1p2 1050624 2549759 1499136 732M Linux filesystem /dev/nvme0n1p3 2549760 1000214527 997664768 475G Linux filesystem
Linux is installed in an encrypted partion which contains two LVMs, one for swap and one for root.
lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINT NAME TYPE SIZE FSTYPE MOUNTPOINT nvme0n1 disk 476.9G ├─nvme0n1p1 part 512M vfat /boot/efi ├─nvme0n1p2 part 732M ext4 /boot ├─nvme0n1p3 part 75G crypto_LUKS │ └─nvme0n1p3_crypt crypt 475G LVM2_member │ ├─vgubuntu--budgie-swap_1 lvm 1G swap [SWAP] │ └─vgubuntu--budgie-root lvm 474G ext4 /
There are two issues with the above layout. Ubuntu only installs 1GB of swap, which is not enough if S4 Hibernate is required. Also I am not keen on everything being in one large root partition.
lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINT NAME TYPE SIZE FSTYPE MOUNTPOIN nvme0n1 disk 476.9G ├─nvme0n1p1 part 512M vfat /boot/efi ├─nvme0n1p2 part 732M ext4 /boot ├─nvme0n1p3 part 75G crypto_LUKS │ └─nvme0n1p3_crypt crypt 75G LVM2_member │ ├─vgubuntu--budgie-swap_1 lvm 9G swap [SWAP] │ └─vgubuntu--budgie-root lvm 66G ext4 / └─nvme0n1p4 part 400.7G crypto_LUKS └─mydata crypt 400.7G ext4 /DATA
We are now good to go.
Use the following command to see which suspend modes are supported:
dmesg | grep ACPI:\ \( [ 0.341638] ACPI: (supports S0 S4 S5)
The laptop does not support S3 Suspend. When it goes into suspend it actually uses S0, s2idle, which uses quite a bit of power.
Hibernate will save the RAM to swap (disk), and power down the machine completely. Note to support Hibernate Secure Boot has to be disabled.
Use the following command to test Hibernate:
systemctl hibernate
To check the logs:
sudo journalctl | grep -Ei "PM: |hibernation"
To change the laptop to hibernate when the lid is closed edit the login.conf file:
/etc/systemd/login.conf HandleLidSwitch=hibernate
Change the GRUB config to resume from the swap partion:
/etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/mapper/vgubuntu--budgie-swap_1"
Update grub:
sudo update-initramfs -u -k all sudo update-grub
I have found the lid switch on the Lenovo pretty sensitive. This means even if you catch the lid it will boot the laptop. I tried a few Linux option to disable booting when the laptop starts:
None of these worked for me.
What did work for me was disabling "Flip to Boot" in the laptop BIOS.
We still have the problem that after 15 minutes in Ubuntu Budgie that the laptop will suspend (to S0) and not hibernate.
If we disable AllowSuspend in sleep.conf the option will disappear completely. I ofen wander away from my latop, so would like some sort of suspend/hibernate. To work around this I changed the definition of suspend to be hibernate:
/etc/systemd/sleep.conf AllowHybridSleep=no AllowHibernation=yes SuspendMode=platform shutdown SuspendState=disk
There is probably a better way of doing this, but it works for me.
Turns out there is. Set this with Dconf Editor:
org.cinnamon.settings-daemon.plugins.power sleep-inactive-battery-type 'hibernate'
Initially it would fail to wake from hibernate due to a graphics issue:
WARNING: CPU: 4 PID: 10460 at drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c:2546 dc_link_set_backlight_level+0x92/0xf0 [amdgpu] ... Feb 09 14:57:01 stealth kernel: amdgpu 0000:03:00.0: [drm:amdgpu_ring_test_helper [amdgpu]] *ERROR* ring kiq_2.1.0 test failed (-110) Feb 09 14:57:01 stealth kernel: [drm:amdgpu_gfx_enable_kcq.cold [amdgpu]] *ERROR* KCQ enable failed Feb 09 14:57:01 stealth kernel: [drm:amdgpu_device_ip_resume_phase2 [amdgpu]] *ERROR* resume of IP blockfailed -110 Feb 09 14:57:01 stealth kernel: [drm:amdgpu_device_resume [amdgpu]] *ERROR* amdgpu_device_ip_resume failed (-110). Feb 09 14:57:01 stealth kernel: PM: dpm_run_callback(): pci_pm_restore+0x0/0xf0 returns -110 Feb 09 14:57:01 stealth kernel: PM: Device 0000:03:00.0 failed to restore async: error -110
For more inflormation see here. But since a kernel update all seems ok now.
To suit my requirements I removed these packages and installed my usual software.
Remove packages:
apt remove rhythmbox apt remove gnome-2048 apt remove aisleriot apt remove gnome-mines apt remove gnome-sudoku
Add packages:
apt install gnome-terminal apt install net-tools apt install python3-pip apt install geany (problem with geany freezing when typing) apt install handbrake apt install clementine apt install openssh-server apt install python3-acoustid apt install php-getid3 apt install flac apt install lame apt install inkscape apt install pdfjam apt install php-cli apt install sigil apt install evince apt install audacity apt install mediainfo apt install mkvtoolnix-gui apt install rclone apt install libgl1-mesa-glx apt install syslinux-utils apt install librsvg2-bin apt install exiftool apt install gpsbabel apt install php-xml apt install mediainfo-gui apt install isync
Add other packages:
XnViewMP-linux-x64.deb Signal Puddletag