OSDev

для всех
Текущее время: 24 июл 2019, 09:33

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 01 мар 2010, 22:41 

Зарегистрирован: 16 фев 2010, 21:18
Сообщения: 7
Как выключить/перезагрузить машину через ACPI? Как с ним работать?
Заранее спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 мар 2010, 03:20 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1382
Ну Вы и вопрос задали... Для начала изучить соответствующие разделы спецификации ACPI, что, учитывая их объём, займёт немало времени :) Лично я эту задачу никогда не решал, поэтому ответить в данный момент не могу.

Правда, учинить перезагрузку можно (по крайней мере, раньше можно было) без всякого ACPI -- через контроллер PS/2 (см, например, здесь: http://ru.osdev.wikia.com/wiki/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0_PS/2).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 мар 2010, 16:56 

Зарегистрирован: 16 фев 2010, 22:03
Сообщения: 101
http://a2os.org.ua/forums/topic.php?forum=10&topic=4
Вот. Там рассказывается как проще всего выключить компьютер через ACPI. А перезагрузка через контроллер PS/2 работает и по сей день. Вот так:
Код:
mov al, 0xFE
out 0x64, al


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 мар 2010, 18:29 

Зарегистрирован: 16 фев 2010, 21:18
Сообщения: 7
Теперь сам понимаю, о чем спросил. Извините, что отвлек. А за ответы спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 фев 2011, 15:56 

Зарегистрирован: 16 фев 2010, 21:18
Сообщения: 7
Мимо проходил, вспомнил, что недавно нашел способ отключения через APM:
// Проверено на VirtualBox (если что, версия 4.0.2); Отключение работает. StandBy, Suspend игнорируются;

// INT 0x15
// The Advanced Power Management Set Power State BIOS function is called to place the system
// in the requested state. The system BIOS only responds to power device ID = 0x0001 (system
// BIOS).
Input Parameters:
AH - 0x53, indicating an Advanced Power Management Function.
AL - 0x07, indicating Set Power State Subfunction.
BX - 0x0001, indicating system BIOS.
CX - System State ID, as follows:
0x0000 - Ready (not supported for device ID 0x0001).
0x0001 - Standby.
0x0002 - Suspend.
0x0003 - Off (not supported for device ID 0x0001).

Output Parameters:
CY - set if failure, else clear if success.
AH - error code, as follows:
0x01 - power management functionality disabled.
0x09 - unrecognized device ID.
0x0a - parameter valud in CX out of range.
0x60 - cannot enter requested state.
0x86 - APM not supported.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 фев 2011, 20:30 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1204
APM - прошлый век! Я от него полностью отказался.

http://www.wasm.ru/forum/viewtopic.php?id=21777


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 фев 2011, 20:42 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1109
То есть ты написал виртуальную машину ACPI?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 фев 2011, 23:01 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1204
Нет, пока что делаю первые шаги в этом направлении, ну и в крайнем случае использую сообщение "Теперь питание компьютера можно отключить."


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 фев 2011, 00:31 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1382
Просто нет смысла изучать устаревший стандарт, который поддерживается только для совместимости со старым ПО. А посему, если уж заморачиваться, что с ACPI, но никак не с APM.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 фев 2011, 00:52 

Зарегистрирован: 16 фев 2010, 21:18
Сообщения: 7
phantom-84 писал(а):
APM - прошлый век! Я от него полностью отказался.

http://www.wasm.ru/forum/viewtopic.php?id=21777



Я не спорю. `В будущем` тоже `планирую` использовать ACPI для управления питанием, но пока можно и это юзать.
Кто-то использует перезагрузку через контроллер клавиатуры, что тоже ненадолго.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB