LINUX.ORG.RU
ФорумTalks

а bios после загрузки ОС используется?


0

1

Внезапно, прочитав лог загрузки в попытках выяснить, почему не пашет suspend, наткнулся на

[Firmware Bug]: powernow-k8: No compatible ACPI _PSS objects found.

Т.е. получается, что ОС не полностью сама все контролирует, а используются функции из прошивки. Тогда вопрос: а на каком процессоре все это работает? Есть ли к нему доступ из программ, работающих на CPU? Ведь получается, что когда компьютер включается, bios загружает на него прошивку. Значит доступ в принципе должен быть.

Есть ли какая информация по этому?

★★★★★

кури osdev wiki. там все в примерах расписано, в т.ч. как обращатсья к ф-циям бивиса.

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от Artificial_Thought

Это называется ACPI. А сам BIOS не нужен после загрузки ОС, да.

И за температурой процессора и скоростью вентилятора биосу следить после загрузки ОС не надо. В линуксе поломали предупреждение биоса о критическом перегреве камня а своего искаробки не сделали - ОС сама «справляется» с его функциями.

Napilnik ★★★★★
()

мда... прям, печали тред какой-то ((

dimon555 ★★★★★
()
Ответ на: комментарий от Kroz

Срочно читать что такое процессор!

я знаю, что это такое. В современном компьютере их десятки

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от Napilnik

В линуксе поломали предупреждение биоса о критическом перегреве камня а своего искаробки не сделали

Да, кстати, как биос может следить за температурой проца? В какой момент и где исполняется его код, когда ОС загружена?

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Да, кстати, как биос может следить за температурой проца? В какой момент и где исполняется его код, когда ОС загружена?

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

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

Я понимаю, что грибной сезон во всю открыт, но ты хоть смотри, что собираешь, а не жри всё подряд. Ну или, хотя бы, меньше LSD в соус клади.

redgremlin ★★★★★
()
Ответ на: комментарий от Napilnik

В настройках биоса выставляется аларм на какую-то температуру и потом при небходимости мычит встроенный динамик.

А где исполняется код включания мычалки?

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Есть способ заставить работать системный динамик через модуль pcspkr, но в старых линуксах у меня бепер работал искаропки, но звучал на одной частоте, потом где-то работал вывод звука динамика через звуковуху - везде всё по разному.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

Да тебе и так уже хватит, раз уж зеленые слоники по клавиатуре прыгают да вайн критической температурой заведует.

redgremlin ★★★★★
()
Ответ на: комментарий от cvs-255

Это модуль ядра, и выполняется он на ЦП. К биосу отношения не имеет.

Без разницы, на чём он выполняется, к биосу он имеет прямое отношение. В линуксе биос знает что надо подать звук на динамик, но не имеет к нему доступа, доступ осуществляется через модуль ядра, который пропускает не все звуки.

Napilnik ★★★★★
()


Старый метод прошивки убитой микросхемы биоса без програматора.
Береме комп с такой же мамкой. Грузимся в операционку. Выковыриваем на горячую микросхему биоса, ставим убитую и прошиваем.

Сработал бы это трюк еслиб биос использовался после загрузки ос?

owlmind
()
Ответ на: комментарий от redgremlin

Да нет, ты гонишь какую-то бездоказательную хрень. Тьфу на твой словесный понос.

Napilnik ★★★★★
()
Ответ на: комментарий от owlmind

Сработал бы это трюк еслиб биос использовался после загрузки ос?

Работающие винты умельцы в маздае выковыривали и меняли на другие, сработал бы этот трюк если бы винты в маздае использовались после загрузки ОС?

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

В линуксе биос знает что надо подать звук на динамик

тогда вопрос - на каком процессоре выполняется программа из биоса, которая знает, что надо подать звук?

cvs-255 ★★★★★
() автор топика

Если функции BIOS, доступные из защищённого режима. Их может вызывать ядро, выполняться они будут на CPU, пока не вернут управление ОС. Но они не нужны.

Есть ещё режим SMM процессора, который позволяет при получении процессором прерывания SMI выполнять код незаметно для ОС. При загрузке прошивка помещает этот код в ОЗУ по адресу 0xA0000, после чего прячет код за видеобуфером, т.е. из ОС нельзя прочитать или изменить этот код, не зная особенностей данного чипсета. При получении прерывания SMI открывается доступ к скрытому коду, выполняется переход в режим SMM, прозрачный для ОС, выполняется этот код до команды RSM, после чего процессор возвращается в предыдущий режим, и управление возвращается ОС. Из ОС такой переход может быть заметен только по слишком долгому времени выполнения инструкции. Эта фича также не нужна и используется, например, для эмуляции PS/2 мыши и клавиатуры, если есть только USB'шные.

А ещё есть EC — Embedded Controller. Это отдельный от процессора медленный контроллер, который работает параллельно и выполняет свой код. Взаимодействовать с ним можно, например, через PCI Configuration Space или косвенно через ACPI. Эта штука используется, например, для управления вентилятором, поддержки дополнительных клавиш вне клавиатуры, выключения устройств (bluetooth-, wi-fi-адаптеры) и прочего управления системой.

А в твоём случае в таблицах ACPI не найден нужный драйверу объект. Там написано firmware bug, потому что прошивка предоставила кривые таблицы ACPI в ОЗУ при передаче управления загрузчику или ядру.

gentoo_root ★★★★★
()
Ответ на: комментарий от cvs-255

тогда вопрос - на каком процессоре выполняется программа из биоса, которая знает, что надо подать звук?

Для пищания PC Speaker'ом нужно настроить PIT в начале пищания и в конце, это не занимает много времени, поэтому это можно сделать даже из SMM. Но скорее всего, это делает EC, который как раз и нужен, чтобы мониторить состояние системы и делать системоспецифичные вещи.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

И я правильно понял, что нормальной открытой документации по этим контроллерам нету?

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

И я правильно понял, что нормальной открытой документации по этим контроллерам нету?

На большинство нету. А ещё на разных материнках стоят разные EC. Свою программу EC может либо сам считывать с флешки, либо её в него каждый раз загружает BIOS. Второй случай значительно усложняет заливку альтернативных прошивок вроде coreboot, потому что не получится оставить дефолтную программу для EC (не расковыривая BIOS).

gentoo_root ★★★★★
()

bios, лишь набор кода и данных

код этот может расширяться разными pci устройствами (например: возможность сконфигурировать raid до загрузки ос)

код биоса может мапиться в оперативную память

ос может вызывать выполнение кусочков кода биос, может она это делать по-разному, есть код, который доступен в protected mode(смотри bios32 services и как линукс может их вызывать)

есть ещё и таблицы acpi, они содержат в топ числе некий код на другом языке, чтобы напрямую не передавать управление процессора, а интерпретировать его и узнать, в какой регистр девайса чего записать, чтобы выключить его и включить.

плюс к этому superio чип, он вентиляторами управляет на десктоп системах, можно его запрограммировать и он будет по температуре с процессора с разной скоростью курить венилятор, а ещё умеет лампочку зажигать, когда кнопку повер жмёшь.

bios первым выполняется и умеет всякие хитрые штуки, как запись в память smm кода и запрет на его чтение и перезапись, а может и по smbus разные девайсы попрограммировать. вообщем может всякие необратимые действия проделать, а может и обратимые, но которые ос обычно не изменяет, например pci мосты не перепрограммирует

acpi таблицы можно подменить. весь код биоса можно изъять через программатор

ах да, есть ещё у процессора микрокод, который можно обновить

есть всякие спецификации про bios и прочее, что-то открытое, что-то нет. информацию про smm просто так не достанешь. acpi можно читать.

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

например pci мосты не перепрограммирует

и наверняка документация на это тоже закрытая

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

и наверняка документация на это тоже закрытая

http://www.pcisig.com/specifications/ более-менее открытая, только там за некоторую денег хотят, но она нагугливается

c pci-host, который в northbridge не знаю, но вроде как тоже более менее доступна

можно смотреть код линукса и seabios

dimon555 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.