# Disable startup sound of MacBook and iMac

**URL:** <https://linux-tips.com/t/disable-startup-sound-of-macbook-and-imac/606>\
**Category:** Administration\
**Created:** [December 31, 2017, 11:09am UTC](https://linux-tips.com/t/disable-startup-sound-of-macbook-and-imac/606 "2017-12-31T11:09:05Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![DrSlump](https://linux-tips.com/user_avatar/linux-tips.com/drslump/32/61_2.png) [@DrSlump](https://linux-tips.com/u/DrSlump)\
**Post date:** [December 31, 2017, 11:09am UTC](https://linux-tips.com/t/disable-startup-sound-of-macbook-and-imac/606/1 "2017-12-31T11:09:05Z")

</div>

Is there any way to disable startup sound of MacBook and iMac’s from Linux?

I saw it is possible through efi variables but when I try to write suggested sysfs variables, I always getting operation not permitted error.

---

<div class="post-metadata">

**Author:** ![redsector](https://linux-tips.com/user_avatar/linux-tips.com/redsector/32/71_2.png) [@redsector](https://linux-tips.com/u/redsector)\
**Post date:** [December 31, 2017, 11:21am UTC](https://linux-tips.com/t/disable-startup-sound-of-macbook-and-imac/606/2 "2017-12-31T11:21:36Z")

</div>

Yes, it is quite easy.

Starting from the kernel version **3.8** , if `CONFIG_EFIVAR_FS` support enabled, Linux kernel exposes EFI variables data to userspace via efivarfs and mounted using efivarfs kernel module at **/sys/firmware/efi/efivars**

You’re getting _operation not permitted_ errors because of the `i` flags on the these variable attributes:

```auto
$ lsattr /sys/firmware/efi/efivars/
...
------------------- /sys/firmware/efi/efivars/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c
----i-------------- /sys/firmware/efi/efivars/MemoryConfig-8be4df61-93ca-11d2-aa0d-00e098032b8c
----i-------------- /sys/firmware/efi/efivars/MTC-eb704011-1402-11d3-8e77-00a0c969723b
----i-------------- /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82
...

```

Before writing an efi variable which has `i` attribute, you need to remove the attribute first with `chattr` like this:

```auto
sudo chattr -i /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82

```

Now you can write this variable. You can use bash’s **printf** function to write binary values. Try following command as root (or use tee if you run through sudo):

```auto
# printf "\x07\x00\x00\x00\x00" > /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82

```

and reboot the system.
