Linux — изменение переменной efi с помощью efivar

fish оболочка:

⋊> ~ echo 'ab
     ba
     ac
     bc' | while read line; echo -n "$line" | sed -r 's|(.)|\1\n|g' | sort | xargs | tr --delete ' '; end | uniq -c

bashоболочка:

bash-3.2$ echo 'ab
ba
ac
bc' | while read line; do echo -n "$line" | sed -r 's|(.)|\1\n|g' | sort | xargs | tr --delete ' '; done | uniq -c

Выход:

     2 ab
     1 ac
     1 bc
4
31.08.2019, 14:41
1 ответ

Согласно этой статье, Отключение звука запуска MacBook в 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).

Их решение состояло в том, чтобы просто использовать 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
2
27.01.2020, 21:01

Теги

Похожие вопросы