8

On Mac OS X there is a tool called nvram to get and set EFI properties. As I am now deploying GNU/Linux on Apple hardware, I'd like to have a similar tool that is able to talk to Apple's EFI implementation.

Are there tools to achieve this?

7
  • 1
    you should just be able to read them with the efivars program available via package manager. However, if you took the (horrible!) advice offered by many - such as at this Ubuntu/Mac how-to - and converted your disk to a Hybrid MBR so you might boot Linux in legacy (read - BIOS) mode, then those variables are not available to you and will not be until you boot the Linux kernel in EFI-mode. Here is a far better tutorial on the subject.
    – mikeserv
    Sep 8, 2014 at 3:06
  • 1
    There's /sys/firmware/efi/vars/ holding those on my UEFI compatible systems upon efivars.ko module load but it was known a year or two ago that loading it might corrupt Apple's firmware, it was advised that one backs it up and has the backout plan/tools handy (see also rodsbooks.com/efi-bootloaders/installation.html). Sep 8, 2014 at 13:08
  • @mikeserv efivars works, at least for reading. About all those Apple-Firmwares-Will-Be-Destroyed-Warnings... I never got authoritative information about that.
    – bot47
    Sep 8, 2014 at 22:01
  • @mikeserv Would you write an answer about efivars?
    – bot47
    Sep 8, 2014 at 22:02
  • I dont have any Apples and so i dont know the ins and outs well enough to make any authoritative calls in that respect. Youre far better off cruising rodsbooks as Michael has suggested - Rod Smith is about as authoritative as it gets in my opinion on this subject. I do know that theres little mystery there - i can read those with printf and od in a pinch. You might also look into the clover bootloader forums - which is the other active refit fork and is what all of the hackintosh guys use. I am curious though and i may dig into it. Can i ask - what do you wanna do with them?
    – mikeserv
    Sep 8, 2014 at 22:13

1 Answer 1

1

The tools available are going to vary between Linux distributions, but with a Ubuntu 16.04 LTS live ISO booted from a USB stick on a 2011 MacBook Pro, nvram variables are readable in the filesystem:

ubuntu@ubuntu:~$ cd /sys/firmware/efi/efivars/
ubuntu@ubuntu:/sys/firmware/efi/efivars$ ls
AAPL,PathProperties0000-4d1ede05-38c7-4a6a-9cc6-4bcca8b38c14
AcpiGlobalVariable-af9ffd67-ec10-488a-9dfc-6cbf5ee22c2e
[...]
ThorUpdateResult-7c436110-ab2a-4bbb-a880-fe41995c9f82
Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c
ubuntu@ubuntu:/sys/firmware/efi/efivars$ hexdump -C Lang-*
00000000  07 00 00 00 65 6e 67                              |....eng|
00000007

To modify variables, install the efivar tool with apt.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .