How to update BIOS firmware using `fwupdmgr` lvfs `fwupdate`

Been trying to get fwupdmgr to update the uefi bios on a a Lenovo thinkpad T460s.

fwupdmgr does not see the EFI vars / and thus can't detect the BIOS version. Therefore even though LVFS shows that new firmware is available, it does not download or install it.

Where does MATE mount EfiVARS? can I mount it manually? if so, where should I put it?

Can't help you much on the fwupdmgr stuff since I don't have a supported system ATM.

However if you run a mount command you should see a list of all mounted file systems.

On my 19.04 system efivars shows the following:

efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)

@franksmcb what system are you running?

That's an HP Laptop 14-df0xxx running 19.04

is fwupdmgr expecting efivars in /sys?

It would seem that is where it should be located.

This posting from Intel does seem to verify that. As does this one from the Arch Wiki.

Might want to take a look here.

did you manually mount efivars in your fstab file? can you share the mount command you used?

It's mounted automatically, no user intervention required.

What is your out put from mount

here's my output of mount -l

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=9944756k,nr_inodes=2486189,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=1996016k,mode=755)
/dev/sda1 on / type ext4 (rw,noatime,discard,errors=remount-ro,commit=500)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,clone_children)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=43,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=283)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
/var/lib/snapd/snaps/core18_1066.snap on /snap/core18/1066 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/core_7396.snap on /snap/core/7396 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/wormhole_112.snap on /snap/wormhole/112 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/slack_15.snap on /snap/slack/15 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/core_7270.snap on /snap/core/7270 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/vidcutter_14.snap on /snap/vidcutter/14 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/core18_1074.snap on /snap/core18/1074 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/wormhole_14.snap on /snap/wormhole/14 type squashfs (ro,nodev,relatime)
/var/lib/snapd/snaps/slack_16.snap on /snap/slack/16 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/rclone_466.snap on /snap/rclone/466 type squashfs (ro,nodev,relatime)
/var/lib/snapd/snaps/rclone_453.snap on /snap/rclone/453 type squashfs (ro,nodev,relatime)
/var/lib/snapd/snaps/rclone_456.snap on /snap/rclone/456 type squashfs (ro,nodev,relatime)
/var/lib/snapd/snaps/gmusic_1.snap on /snap/gmusic/1 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/wormhole_23.snap on /snap/wormhole/23 type squashfs (ro,nodev,relatime)
tmpfs on /tmp type tmpfs (rw,nosuid,noatime)
/dev/sda3 on /home type ext4 (rw,noatime,discard,commit=500)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
lxcfs on /var/lib/lxcfs type fuse.lxcfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
tmpfs on /run/user/1001 type tmpfs (rw,nosuid,nodev,relatime,size=1996012k,mode=700,uid=1001,gid=1001)
gvfsd-fuse on /run/user/1001/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1001,group_id=1001)
overlaid on /run/user/1001/jojo-google-chrome type overlay (rw,nosuid,nodev,relatime,lowerdir=/home/jojo/.config/google-chrome-backup,upperdir=/run/user/1001/jojo-google-chrome-rw,workdir=/run/user/1001/.jojo-google-chrome)
overlaid on /run/user/1001/jojo-chromium type overlay (rw,nosuid,nodev,relatime,lowerdir=/home/jojo/.config/chromium-backup,upperdir=/run/user/1001/jojo-chromium-rw,workdir=/run/user/1001/.jojo-chromium)
overlaid on /run/user/1001/jojo-firefox-4u5jb44s.guestUser type overlay (rw,nosuid,nodev,relatime,lowerdir=/home/jojo/.mozilla/firefox/4u5jb44s.guestUser-backup,upperdir=/run/user/1001/jojo-firefox-4u5jb44s.guestUser-rw,workdir=/run/user/1001/.jojo-firefox-4u5jb44s.guestUser)
overlaid on /run/user/1001/jojo-firefox-idqb6u25.Joni-01 type overlay (rw,nosuid,nodev,relatime,lowerdir=/home/jojo/.mozilla/firefox/idqb6u25.Joni-01-backup,upperdir=/run/user/1001/jojo-firefox-idqb6u25.Joni-01-rw,workdir=/run/user/1001/.jojo-firefox-idqb6u25.Joni-01)
tracefs on /sys/kernel/debug/tracing type tracefs (rw,relatime)
/var/lib/snapd/snaps/hugo_5482.snap on /snap/hugo/5482 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/hugo_5532.snap on /snap/hugo/5532 type squashfs (ro,nodev,relatime,x-gdu.hide)

Are you booting in efi mode?

I don't see a /boot/efi in your output.

there is no /efi partition. this is a dedicated linux machine. not dual boot. so no need for grub

According to this posting on their github, you need to have an EFI system partition mounted: "It appears to me that your EFI system partition isn't mounted. Without it being mounted fwupd can't know where to stage the update or install the bootloader."

can you check your grub file at /etc/default/grub and see if you're loading efi vars there or something like below?

GRUB_CMDLINE_LINUX_DEFAULT="efi=runtime quiet resume=UUID=aa4d27e9-c3fe-44f7-a31e-257bd53a268b

Negative. I do not have that file on the uefi systems only on the legacy systems.

Figured out the problem is that I'm booting in legacy mode and can't switch to UEFI because I my machine is not using GPT for partitions.