Выключение ПК.

Devices programming
  • Код для BIOS и будет работать только в реальном режиме процессора. В Колибри также есть подобный кусок, однако надеяться на 100% работу на всех компьютерах бесполезно.
  • kernel/trunk/boot/shutdown.inc

    на многих платформах - не работает (новые биосы на APM забили, ждем ACPI).

    Для гарантированного выключения своего собственного компьютера рекомендую ознакомиться с документацией к PM-регистрам южного моста.
    У тебя какой чипсет?
  • art_zh, выражайся аккуратнее, например, как Mario - "есть подобный кусок". Он отнюдь не единственный и безальтернативный и даже не основной; основной вариант уже давно - выключение через ACPI, kernel/trunk/kernel.asm, неподалёку от system_shutdown.
    Сделаем мир лучше!
  • CleverMouse
    да, я про это чудо забыл - оно тоже нифига не работает на очень многих платформах.
    Прямой шатдаун гораздо эффективнее.
  • art_zh, да, конечно, единственный правильный способ - это писать свой, единственный и неповторимый код для каждого чипсета, а универсальные способы хором "нифига не работают на очень многих платформах". Мы все верим.
    Сделаем мир лучше!
  • Именно это я и имею в виду. Хотя и не претендую на "единственно правильный способ".
    Чел спросил - я посоветовал как с моей точки зрения лучше.

    Вот пример рестарта для ю.мостов AMD SB700/800/Hudson :

    Code: Select all

    pm_restart:	   
         mov	ax, 6
         mov	dx, 0xCF9	; reset reg
         out	dx, ax
    
    Все остальное (универсальное и нерабочее) - в топку.
  • Не ругайтесь! Самый надежный способ это выдернуть штепсель из розетки. Все остальные способы (даже выключатель питания) дюже ненадежные.
  • Итак, налицо:
    - подмена тезиса с выключения - которое появилось не так давно и не является стандартным - на перезагрузку, которую умели делать уже в очень далёкие времена;
    - употребление без комментариев как "всем известное" нетривиального утверждения, на деле не подтверждаемого фактами - "нерабочее".
    Товарищи, перед нами демагог. Может быть, помочь товарищу "уйти в науку" до зимы административными методами?
    Сделаем мир лучше!
  • CleverMouse, чего ж так жестко-то? Это мужское эго, наверное. Если товарищ хочет уйти в науку, то мы ему поможем, а пока что причин на это не видимвижу. Это было моё альтер-эго с манией величия.
  • CleverMouse wrote:Товарищи, перед нами демагог. Может быть, помочь товарищу "уйти в науку" до зимы административными методами?
    Собственно чего так резко то? Артем вроде никого не оскорблял, а за демагогию тут можно много кого расстреливать - меня в частности тоже. Каждый имеет право на свою точку зрения, даже если она в конечном счете окажется ошибочной. Я тут не наблюдаю никакого криминала.
  • Direct shutdown для некоторых SB800+ и Гудзонов (я еще не видел ни одной материнки с этими мостами, на которой бы работал "универсальный" код):

    Code: Select all

    	mov	dx, 0x0804	
    	mov	ax, 0x3400
    	out	dx, ax
    ; THE END...
    
    Я против ACPIzации Колибри.
    Это моя твердая позиция, к черту демагогию.
  • art_zh
    А если надо кеши сбросить и винты запарковать ? У меня материнка отключается когда винт уже явно останавливается.
  • Последние две фразы art_zh инициировали бурную флудильню про необходимость ACPI вообще, которую я выделила в отдельную тему.

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

    Когда выясняется, что некоторый код якобы где-то не работает, ВНЕЗАПНО именно в сообщении, критикующем этот код и предлагающем свой подход... скажем так, это вызывает некоторые сомнения в истинности утверждения.
    Сделаем мир лучше!
  • В общем я не помню где это было (заклаку потерял), но один челоек из форума (разработчик ядра, вроде) создавал свою тестовую версию
    системы (не совсем KOS) для архитектуры IA-32 (x64) с ипользованием APIC и простым ACPI. Вопрос: А повторить или переписать готовый код
    на Asm слабо?
    Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
  • Who is online

    Users browsing this forum: Semrush [Bot] and 3 guests