4

I have a single boot Kali Linux installation on MacBook Air 2018 hardware.

After solving some issues to make all working I'm in trouble with this:

I'm trying to disable the startup sound before the boot. The typical sound of a MacBook.

I found on Apple docs that it's possible to modify the sound running from the terminal

sudo nvram SystemAudioVolume=%80

but nvram command is not available on Linux; there is however, another program called nvramtool.

Reading the man of nvramtool it's possible to get all coreboot parameters running nvramtool -a but the output of the command is:

nvramtool: coreboot table not found. coreboot does not appear to be
installed on this system.

So, after investigating a little bit I found a program called efivar that permits modifying EFI variables.

Typing efivar -l | grep -i SystemAudioVolume I get the variable indicated by Apple (SystemAudioVolume) with this value:

7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume

Now typing ,

efivar --print --name 7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume

I get this kind of output:

     GUID: 7c436110-ab2a-4bbb-a880-fe41995c9f82
     Name: "SystemAudioVolume"
     Attributes:
         Non-Volatile
         Boot Service Access
         Runtime Service Access
     Value:
     00000000  69        |i        |

EDIT
I tried creating a boot-able USB key of macOS Mojave.
Turning on the Mac, inserting the key and holding the alt I can go into the installation process from where I can get an instance of Terminal.app so I can try to run nvram from there. But I think, as suggested from Apple docs, that administrator permissions are needed.
Trying to execute nvram -p I get a list of all variables, executing nvram -p | grep -i SystemAudioVolume I get

7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume=i

typing nvram SystemAudioVolume=%80 and rerunning nvram -p | grep -i SystemAudioVolume I get

7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume=%80

but after rebooting the sound is still there and returning in the installation process running nvram -p | grep -i SystemAudioVolume I get again

7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume=i

Do you know how to modify the value? (if possible)

PS.
I can't create the TAG efivar cause I'm less than 300. But I think it should be added.

1
+50

Per this article, Disabling MacBook Startup Sound in Linux,

several Internet sources suggest that writing EFI variables from Linux may sometimes corrupt your Apple firmware. I didn't research this any further. If you happen to figure out how to successfully write to these variables under Linux please let everyone know in the comments (in case OS X recovery mode goes missing, you know).

Their solution was to simply use nvram to disable the sound via the following command:

nvram SystemAudioVolume=%00

They also used recovery mode to do this by holding Cmd+Option+R.

Another option is to simply write to the variable using printf, a method discussed in the comments of the blog.

Note: This method is potentially dangerous, it is advised to use the previous method first.

# Ensure efivars are mounted
mount | grep efivars
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,relatime)

# Remove immutable bit, allows modification
chattr -i /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82

# Set volume to 00
printf "\x07\x00\x00\x00\x00" > /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82

# Display new value
efivar -n 7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume -p
GUID: 7c436110-ab2a-4bbb-a880-fe41995c9f82
Name: "SystemAudioVolume"
Attributes:
    Non-Volatile
    Boot Service Access
    Runtime Service Access
Value:
00000000  00
  • 1
    Yeah, thank you for your response. I think is too dangerous trying changing it from Linux, i adopted another solution. I made a fresh install of Mac OS then i changed the value from a system's terminal session. Then i reinstalled my backuped version of kali linux. I think this is the right way, the best solution to get all things working clean!! Thanks again :D – Roberto Manfreda Sep 2 at 3:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.