我在 MacBook Air 2018 硬件上安装了单引导 Kali Linux。
解决了一些问题以使所有工作正常后,我遇到了麻烦:
我正在尝试在启动前禁用启动声音。 MacBook 的典型声音。
我在Apple文档中发现可以修改从终端运行的声音
sudo nvram SystemAudioVolume=%80
但nvram
命令在 Linux 上不可用;然而,还有另一个程序称为nvramtool
.
阅读 mannvramtool
可以让所有 coreboot 参数运行,nvramtool -a
但命令的输出是:
nvramtool: coreboot table not found. coreboot does not appear to be
installed on this system.
因此,经过一番调查后,我发现了一个名为 的程序,efivar
它允许修改 EFI 变量。
键入efivar -l | grep -i SystemAudioVolume
我得到 Apple ( ) 指示的变量,SystemAudioVolume
其值如下:
7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume
现在输入,
efivar --print --name 7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume
我得到这样的输出:
GUID: 7c436110-ab2a-4bbb-a880-fe41995c9f82
Name: "SystemAudioVolume"
Attributes:
Non-Volatile
Boot Service Access
Runtime Service Access
Value:
00000000 69 |i |
编辑
我尝试创建 macOS Mojave 的可启动 USB 闪存盘。
打开Mac,插入密钥并按住“alt我可以”进入安装过程,从那里我可以获得一个实例,这样我就可以尝试从那里Terminal.app
运行。nvram
但我认为,正如苹果文档所建议的那样,需要管理员权限。
尝试执行nvram -p
我得到所有变量的列表,执行nvram -p | grep -i SystemAudioVolume
我得到
7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume=i
打字nvram SystemAudioVolume=%80
并重新运行nvram -p | grep -i SystemAudioVolume
我得到
7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume=%80
但重新启动后声音仍然存在并在安装过程中返回运行nvram -p | grep -i SystemAudioVolume
我再次得到
7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume=i
你知道如何修改这个值吗? (如果可能的话)
附言。
我无法创建 TAGefivar
因为我还不到300。但我认为应该加上。
答案1
根据这篇文章,在 Linux 中禁用 MacBook 启动声音,
一些互联网来源表明,从 Linux 写入 EFI 变量有时可能会损坏您的 Apple 固件。我没有进一步研究这个。如果您碰巧知道如何在 Linux 下成功写入这些变量,请在评论中告知大家(以防 OS X 恢复模式丢失,您知道)。
他们的解决方案是简单地nvram
通过以下命令禁用声音:
nvram SystemAudioVolume=%00
他们还使用恢复模式通过按住Cmd+ Option+来执行此操作R。
printf
另一种选择是使用博客评论中讨论的方法简单地写入变量。
注意:此方法有潜在危险,建议先使用前一种方法。
# 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