Проблема с контроллерами SATA II

Тема в разделе "WASM.ELECTRONICS", создана пользователем Dzutte, 27 янв 2009.

  1. Dzutte

    Dzutte New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    17
    Привет!
    Известен метод загрузки Windows напрямую из Linux без необходимости перезагрузки компьютера.
    Для этого используется kexec, который предназначен для загрузки ядер Linux "на лету", и загрузчик grub4dos, модифицированный таким образом, что воспринимается kexec'ом как ядро и загружается, переводя машину в стадию загрузки оси.
    Проблема возникает в том случае, когда эта схема применяется на машинах с контроллерами SATA II (контроллеры второго поколения), не поддерживающими совместимость с IDE-шным интерфейсом. В этом случае grub4dos не может инициализировать устройство и обратиться к диску...
    Есть подозрение, что необходимо явно ресетить контроллеры SATA либо сразу всю шину.
    Может быть, кто-нибудь в курсе, как это можно сделать программно? Либо вообще в курсе, как эту проблему можно решить?
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Dzutte
    Бред. Скорее всего дело в том что grub4dos работает либы с прерыванием либы с legacety IDE. А посему просто не видит диск. Так как он либы в Native IDE либы в ACHI(AHCI) Нужно както объяснить ему, как это сделать не знаю.
    Вот в ntldr можно подключить драйвер.

    Помойму это можно сделать только при ресете шины.
    Это аналогично полному ресету.
     
  3. Dzutte

    Dzutte New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    17
    Исключено - при нормальной загрузке grub4dos спокойно видит диск, висящий на SATA-контроллере, и грузится с него. А вот после "отката" из Linux - уже не хочет..
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Ну так при нормальном режиме он должен использовать прерывания, а при аткате скорее всего порты в\в.
    Что бы не гадать надо посмотреть, как там происходит.
     
  5. Dr0ne

    Dr0ne New Member

    Публикаций:
    0
    Регистрация:
    22 фев 2009
    Сообщения:
    4
    В нормальном режиме работой с SATA контроллером занимается BIOS, знающий как с ним работать и grub (как и все прочие бутлоадеры) как правило все делают через оный.Благо, BIOS то знает как со своей железкой работать.Вот и работает все и вся при обычной загрузке.При условии что BIOS есть и знает как работать с девайсом.По этой же причине на контроллерах которые карты ставят чип c расширением BIOS-а.Но ... Linux то не пользуется BIOS.У него свои драйвера для работы с дисками.При этом вероятно вы уже не можете рассчитывать на услуги BIOS в момент kexec() и врядли ядро линукса заботится о возможности юзать bios после kexec(), ядру линукса то оно не особо надо - ну вот вам и фига вместо диска.Програмьте контроллер через порты сами, только это запросто может быть специфично для каждого конкретного чипсета.
     
  6. Dzutte

    Dzutte New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    17
    Dr0ne, спасибо за мысли!