On Friday, 3 July 2020 03:05:34 BST Andrew Udvare wrote:
> On 02/07/2020 06:56, Peter Humphrey wrote:
> > But then,
> > # bootctl set-default 30-gentoo-5.7.7.conf
> > Failed to update EFI variable: Invalid argument
> 
> Probably the kernel is blocking write access to EFI. This is on purpose
> for safety as you can damage your firmware quite easily. systemd-boot
> and others do not have this restriction.

Is there some way for me to remove this restriction temporarily?

> You also should be careful writing to the EFI too much as the NVRAM flash may
> not be of high quality.

Yes, I do only write to it when I have to. I hope Asus would use decent-
quality components though.

> https://lwn.net/Articles/674940/

Interesting - thanks.

> You can try using `chattr -i` against the files like:
> 
> chattr -i /sys/firmware/efi/efivars/Boot*
> 
> Then you can try with bootctl and others, but this is not guaranteed to
> work.

Those files were already among the 17 that were mutable. It seems I need to 
find 
which of the other 117 files I need to make mutable.

> On my ASUS motherboard I haven't been able to write to EFI variables
> from within Linux for a long time. I have to add my keys in the BIOS and
> set the default in systemd-boot.

Looks like I'm in the same boat. Except that setting the default in systemd-
boot is exactly what I can't do!

> The logic to write to a file in efivars is here:
> 
> https://github.com/torvalds/linux/blob/master/fs/efivarfs/file.c#L15
> 
> If you use strace with bootctl you'll probably see one of these errno
> values.

I think what I'm seeing comes from this:

if (attributes & ~(EFI_VARIABLE_MASK))
        return -EINVAL;

Perhaps I should just stop here and revert to setting the default at the UEFI 
boot-choice screen.

Many thanks for your help, Andrew.

-- 
Regards,
Peter.




Reply via email to