MacBook Air 2018ハードウェアにシングルブートKali Linuxインストールがあります。
すべてを機能させるためにいくつかの問題を解決した後、私はこれで困っています:
起動前に起動音を無効にしようとしています。 MacBookの典型的なサウンド。
私はApple docsで見つけました、ターミナルから実行しているサウンドを変更することが可能であること
Sudo nvram SystemAudioVolume=%80
ただし、nvram
コマンドはLinuxでは使用できません。ただし、nvramtool
という別のプログラムがあります。
nvramtool
の説明を読むと、すべてのコアブートパラメータnvramtool -a
を実行することができますが、コマンドの出力は次のようになります。
nvramtool: coreboot table not found. coreboot does not appear to be
installed on this system.
そのため、少し調べたところ、EFI変数の変更を許可するefivar
というプログラムを見つけました。
「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の電源を入れ、キーを挿入して、 altTerminal.app
のインスタンスを取得できる場所からインストールプロセスに入ることができるので、そこからnvram
を実行してみることができます。しかし、私は、Apple docsから示唆されているように、管理者権限が必要であると思います。
実行しようとしています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
値を変更する方法を知っていますか?(可能な場合)
PS。
タグを作成できませんefivar
原因は300未満です。しかし、それは追加されるべきだと思います。
この記事によると、 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