7

Я искал около 8 часов, и я хотел бы прояснить моменты, которые я еще не до конца выяснил.

(Версия TLDR: Как я могу получить доступ (читать и писать) ко всем настройкам BIOS (таким как включение / отключение виртуализации, включение / отключение турбо частоты графического процессора, установка времени отображения журнала и т.д.) Из CLI?)

Вот история.

Во-первых, у нас были старые BIOS, такие как этот.

И теперь у нас есть новое поколение BIOS, таких как этот. И мы называем их UEFI BIOS, я прав?


Затем я прочитал (и протестировал) следующие статьи:

  • www.pixelbeat.org/docs/bios/
  • stackoverflow.com/questions/6259124/apis-for-querying-and-setting-bios-properties (а также все ссылки, указанные в ответах)
  • unix.stackexchange.com/questions/126132/how-to-dump-bios-data-to-a-file
  • stackoverflow.com/questions/34537435/where-does-dmidecode-get-the-smbios-table
  • en.wikipedia.org/wiki/System_Management_BIOS
  • www.linux-mag.com/id/7768/
  • www-pc.uni-regensburg.de/hardware/techdok/bios_dmi_20.pdf (до страницы 17)
  • www.geeklab.info/2010/05/backup-your-cmos-from-linux/
  • www.bioscentral.com/misc/cmosmap.htm
  • smackerelofopinion.blogspot.com.tr/2010/09/digging-into-bios-cmos-memory.html

После этого я несколько раз менял настройки BIOS (такие как виртуализация, включение / отключение IGD Turbo, изменение настроек USB и т.д.) И выгружал все содержимое следующих файлов / команд при каждой загрузке.

  • dmidecode
  • biosdecode
  • CPUID
  • / DEV / MEM
  • / DEV / NVRAM

Результат? Я сравнил результаты дампа бок о бок с Meld и woala! Ничего не изменилось! Какого черта?!!

Итак, вот список моих вопросов (я инженер-электронщик, поэтому вы можете узнать подробности или обратиться к техническим материалам без колебаний).

  1. В какой части материнской платы (я имею в виду чип) мы хранили все настройки BIOS (для старых версий)?
  2. Какое оборудование нам требуется, чтобы сохранить настройки и интерфейс BIOS UEFI? И как аппаратное обеспечение UEFI BIOS отличается от старых версий?
  3. Есть ли способ получить доступ к этому (или к этому) оборудованию через любые драйверы / файлы в Linux?
  4. Можно ли изменить эти конфигурации из-за ОС?

Все ответы будут высоко оценены.

Спасибо теперь.

4 ответа4

5

Не существует общего способа, которым ОС может получить доступ к системному BIOS. Это было бы возможно только в том случае, если бы производители предоставили подробную информацию и установили стандарты того, как это должно быть сделано. Это не тот случай, и я не думаю, что это будет хорошей идеей.

Некоторые производители создали программное обеспечение для своих систем, по крайней мере, для Windows. Это программное обеспечение должно быть разработано для определенных версий BIOS.

Проблема в том, что BIOS является собственностью каждого производителя. Обычно настройки хранятся в CMOS, но для этого нет никаких требований. Производители могут хранить настройки в любом месте и по своему усмотрению. Нет документации для этих деталей.

С этим связаны последствия для безопасности. Если законное программное обеспечение может получить доступ к BIOS, ничто не помешает вредоносному программному обеспечению сделать то же самое. Это откроет целый новый мир возможностей для вредоносных программ, который создатели смогут в полной мере использовать. Конечно, гарантии могут быть разработаны, но они могут быть и будут обойдены

4

То, что вы называете BIOS - это (как минимум) 3 разные вещи:

  • Утилита настройки системы (часто ошибочно называемая BIOS или CMOS Setup)
  • BIOS (то есть элементарный загрузчик и стандартизированные API)
  • (U)EFI Firmware (то есть более современная версия загрузочной аппаратной абстракции)

В то время как последние два предоставляют четко определенный набор API, первый - нет. Это означает, что не существует независимого от производителя универсального способа манипулирования всеми настройками, который предоставляет утилита установки.

Относительно того, где хранятся настройки: Большинство производителей используют статическое ОЗУ с батарейным питанием («CMOS-RAM» в древней номенклатуре), поэтому возникает проблема, если эти ячейки CR2032 на материнской плате погибают.

1

На серверах HPE вы можете изменить настройки с помощью утилиты conrep. Это часть RPM-инструментов hp-scripting-tools. Использование описано здесь:

h20566.www2.hpe.com/hpsc/doc/public/display?sp4ts.oid = 5249594 & docLocale = en_US & DocId = emr_na-c05182235

Это довольно просто. С параметром -s (сохранить) вы говорите это, чтобы сохранить конфигурацию, например:

conrep -s -f BL460Gen8.dat

И с параметром -l (load) вы говорите это для загрузки конфигурации:

conrep -l -f BL460Gen8.dat

Файл данных на самом деле является XML-кодом. Поэтому, если вы хотите, например, включить / отключить настройки гиперпоточности, найдите соответствующую строку и измените значение. Смотрите пример для G6 и более новых поколений:

<Section name="Intel_Hyperthreading" helptext="Toggles hyperthreading on Intel based G6 and greater systems">Enabled</Section>
0

Гораздо удобнее иметь возможность включать вещи с рабочего стола, чем перезагружаться в BIOS. Я знаю некоторые настройки, которые вы можете изменить с рабочего стола. Процессоры AMD для настольных ПК способны работать с памятью ECC, и большинство материнских плат также могут использовать ECC, но многие производители не предоставляют опцию bios для ее включения. Тем не менее, вы можете включить его самостоятельно. Я сделал это, и он включает память ECC. Может быть нехорошо, если вы включили его во время работы обычной памяти, так что не делайте этого.

sudo modprobe -v amd64_edac_mod ecc_enable_override=1

Там команда. И ниже делает это постоянным между ботинками.

sudo echo "options amd64_edac_mod ecc_enable_override=1" >> /etc/modprobe.d/amd64_edac_mod.conf

В настоящее время я хочу включить беспроводную связь на ноутбуке и думаю, смогу ли я сделать это с рабочего стола. Было бы неплохо иметь список того, какие параметры можно настроить с рабочего стола. ECC даже не предлагается в биосе, поэтому сколько таких функций может быть доступно, особенно с определенными продавцами, которые отправляют биографию без костей.

Будь реальным, будь трезвым.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .