1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Clover 2011-2014 архив

Тема в разделе 'Хакинтош', создана пользователем slice, 23 июл 2011.

Статус темы:
Закрыта.
  1. slice

    slice Apple Life Dev Разработчик

    Симпатии:
    6`033
    Основная(новая) тема здесь Clover а это архив разработки.
    Show Spoiler

    Полное описание Кловера, руководство пользователя. PDF <-ссылка
    Текущая ревизия описания 1754.



    Вы имеете право спросить насчет улучшения: "А нельзя ли сделать, чтобы...". Такие вопросы законны, они учитываются, и с некоторым шансом на что-то влияют.
    Но не ждите ответа, все такие вопросы считаются риторическими.
    И, ради бога, не трясите снова и снова, здесь и в личке, требуя какого-то ответа. Не отвечаю - значит нечего ответить.


    CloverFixDsdtMaskCalculator.app (open)

    Для тех, кто еще не знает, предыстория.
    Чтобы запустить Хакинтош, нужен специальный загрузчик, их много разных, но по своей основе можно разделить на два класса: FakeEFI и RealEFI.
    FakeEFI изобретен David Elliot много лет назад, и действует по-простому принципу: сделаем вид, что у нас ЕФИ уже отработала, оставим в памяти следы его деятельности (boot-args и все дерево таблиц), оставим в памяти EfiRuntime в упрощенном виде "Неподдерживается", и запустим ядро mach_kernel. Так работает Хамелеон, и работает успешно, но за небольшими исключениями типа панели "Загрузочный диск". Не исключено, что со временем Эппл даст нам и другие проблемы, связанные с отсутствием Рантайм Сервисов.
    Real EFI должен был бы быть прошит вместо БИОСа, но для тех, у кого материнская плата на основе БИОС, придуман загружаемый ЕФИ. Эта система, загрузка EFI на машине с BIOS придумана Intel, и сейчас находится в активной разработке с открытыми исходными кодами на сайте tianocore.org. Собственно этот загрузчик называется DUET. Да вот беда. ЕФИ-то он загружает, а вот загрузка операционной системы МакОС там не предусмотрена. Требуется следующий шаг. И его сделал iPhoneTom со своим загрузчиком ХРС, и он реально работает. Клон этого загрузчика выставил в свободное плавание Нинзя под названием iBoot (прошу не путать, есть еще iBoot от тонимака, который реально Хамелеон). К сожалению Афоня своих кодов публиковать не желает, и в разработку никого не принимает. Впрочем, он и сам справился.
    Идея возродить создание ЕФИ-загрузчика появилась с появлением Льва, который не грузился в то время с Хамелеоном, но, как выяснил гык-ссе2 грузился с ХРС. Но вот у меня лично ХРС не работает ни на одном ноуте, и ничего в нем исправить не могу. Ну что-ж, тогда начну с нуля. Впрочем, гык уже начинал , так что не совсем с нуля. Такая же проблема, как у меня встала и у кабыла, так что он меня подговорил начать этот марафон, и, кстати, немало помог в этом. Ему же принадлежит название Clover и логотип.
    После того, как неткасу удалось переделать Хамелеон для загрузки Льва, интерес к кловеру пропал. Но не полностью. Проект имеет право на жизнь.
    --------------------
    Вспомним еще историю нашей лаборатории.
    EFI на PC. Часть1. апрель 2007. Daemon . Первая попытка приблизиться. "в первую очередь нужно систематизировать знания в этой области"
    EFI на PC. Часть2. май 2007. netkas . Не мог побороть проблему видео (ЕДК тогда был х-й), и закончил тему со словами "если кто хочет это сделать - пожалуйста, я этим больше занимацо не буду".
    EFI на PC. Часть3. февраль 2009. _caine . Просто собрал Дует со словами: "Я хотел привлечь внимание девелоперов к этой технологии".
    EFI на PC. Часть4. июль 2009. гык-sse2 . Ему удалось собрать Дует, который грузит MacOSX. Все завершилось со словами:
    1. Систему 10.6.8 грузит, но паника через несколько минут.
    2. Систему 10.6.3 вообще не грузит.
    Позже, в 2011 добавил: Лев работает без паник.
    --------------------
    Что есть Кловер?
    Это Дует, дополненный специфическими функциями для загрузки MacOSX, частично позаимствованными из VirtualBox, который тоже с открытыми исходниками, частично из Хамелеона, ну а остальное приходится самому доделывать.
    Для тех кто считает что Кловер украден из ХРС (open)

    Жаль, что не все меня услышат.
    Нинзя опубликовал свои исходники айБута, которые были позаимстованы из ХРС одной из очень старых версий. Из уникального в этих исходниках только графическая оболочка, меню запуска системы. С патчами, необходимыми для запуска OSX там было совсем никак. К этому времени ХРС уже значительно вырос, и стал полноценным загрузчиком. Не знаю, как выглядели его исходники к этому моменту, но даже внешне понятно, что намного продвинутее.
    У меня к этому времени уже был CloverEFI, даже запускающий MacOSX, только не было графической оболочки. И я доделал айБут от Нинзи, внедрив туда патчи для OSX, и назвал этот комплекс CloverV1. Да, графическая оболочка позаимствована с ХРС, хотя и значительно переделана. Например, там есть интерфейс мыши. Все остальное к ХРС отношения не имеет, даже в плане чем-то помочь.
    По лицензионным причинам я вынужден был бросить этот проект, и стартовать новый, с нуля. Вернее с Рефита, который открыт. Так появился CloverV2. В нем нет ни строчки из ХРС, ни одной идеи, принадлежащей Тому, а если есть что-то из Кловера-1, то это то, что сделал лично я, ибо никто еще не работал со мной вместе. Нинзя тоже не особо помогал, он правил только интерфейс, т.е. только свои коды. Он пытался внедрить некоторые новые идеи. но позже я от них отказался, просто за ненадобностью, например, пароль на вход в ГУИ.
    Утверждение, что Кловер возник благодаря ворованным исходникам - ложь, распространяемая Афоней.
    Основа кловера - ЕДК2+Дует обновляются ежедневно, в том числе и сейчас.

    Хронология обновлений Clover
    Clover V1 архив (open)

    Три основные проблемы:
    1. Если памяти на машине мало, происходит необъяснимое КП через несколько минут. Мысли №1 №2
    Решено!
    2. Компьютер погружается в сон, но не выходит из него. Решено 04.01.2012!!!
    3. На Делл Инспирон не работает ни один ЕФИ-загрузчик. Мысли № 3.1
    Решено!

    Разумеется, в кловере пока нет ГрафикЕнаблера как в Хамелеоне, но всякие сервисы, удобства и косметика будут делаться только после того, как загрузчик нормально заработает. Теперь все есть.

    В качестве графической оболочки есть два варианта: iBoot от Нинзи (CloverV1), либо rEFIt (CloverV2). .

    OldClover.PNG Мать вашу! Сколько еще можно грузить молча старую версию?!

    Сейчас пишу из системы, запущенной этим загрузчиком. Запускался в варианте HFS. (файл boot на HFS партиции с сектором boot1h)
    Снимок экрана 2011-07-23 в 13.00.00.
    Инсталляция на флешку ФАТ32 в OSX
    Инсталляция на флешку с использованием LiveCD Ubuntu
    Как сделать DSDT в Ubuntu
    Инсталляция на флешку под виндами

    Видеоролик от beshuta "Как подготовить флешку"
    http://www.applelife...post__p__258905




    Стабильный комплект версии-1
    Версия оболочки с график-енаблером 32бит и 64бит

    Clover V2
    Версия 2, Включает в себя новые функциональные возможности:
    - UUID прописанный в config.plist совпадает с системным.
    - GraphicsInjector для Intel, ATI, NVidia (опционно)
    - EthernetBuiltin
    - UsbFix (как здесь и больше)
    - возможность ребута через панель StartupDisk(Загрузочный том) в нужную партицию
    UPD - Добавлено:
    - Возможность грузиться напрямую из UEFI BIOS не используя файл boot
    - ускоренная загрузка без задержек и картинок (опционно)
    - Автопатч DSDT загрузчиком, новичкам не нужно колдовать с DSDT (опционно)
    - Автопатч кекстов AppleRTC, AICPM, кексты фреймбуфера видиокарт AMD(ATI) (опционно)
    Ну и просто, система хорошо оттюннингована, спит и просыпается, рестартует, не сбивается и не тормозит.

    Старые улучшения - история (open)


    В ревизии 323 отловлены многие баги, и добавлена генерация процессорной секции, т.е P и C стейты. Начальный алгоритм от Мозо, но с переделками.

    Ревизия 329 способна грузить Экстра-кексты.

    Сектор boot1h2 способен грузить два разных бутлодера с одного раздела.
    Подробности.

    Р евизия 350 в аттаче. Недостатки еще есть, но уже можно назвать бетой.
    В комплекте refit.conf с темно-зеленой темой. Отдельно файл с обычной металлической.
    А вообще учитесь сами настраивать темы по своему разумению.

    Ревизия 354. Сделаны исправления по ЦПУ и по Гуям.

    Ревизия 406. Изменения в интерфейсе. Возможность грузиться из UEFI BIOS. Текущие поправки по EDK2 и по тестам трудящихся.

    Ревизия 469. Release Candidate. В основном реализовано все, что задумано. Еще есть отдельные ошибки, еще есть пожелания, но главное - он работает!

    Ревизия 479. Полный патч ДСДТ на лету!
    - Загрузка и инструкции.
    - Вычисление кода патча DSDT
    Ревизия 490 и далее - исправления этого патча.

    Ревизия 503. Быстрая молчаливая загрузка без картинок и лишних задержек.

    Ревизия 521. Добавлен патч кекстов "на лету" это AppleRTC и для Asus AICPUPM

    Ревизия 538. Обновление патча ДСДТ. Вручную надо еще немного поправить, чтобы получить работающий сон. См. пост 8007.

    Ревизия 540. Добавлены ключи для патча фреймбуфера кекстов контроллера для видеoкарт AMD(ATI)
    ATIConnectorsController=серия видеокарты AMD
    ATIConnectorsData=код фреймбуфера в файле контроллера - скрипт ati-personality.pl
    ATIConnectorsPatch=измененный код - скрипт radeon_bios_decode

    Пример для AMD6570
    GraphicsInjector=Yes
    FBName=Pithecia
    ATIConnectorsController=6000
    ATIConnectorsData=000400000403000000010000210302040400000014020000000100000000040310000000100000000001000000000001
    ATIConnectorsPatch=040000001402000000010000000004040004000004030000000100001102010310000000100000000001000000000001

    Ревизия 565 способна грузить кексты даже с кернелкешем. #9104

    Ревизия 579. Сохраняет ВидеоБиос по клавише F6 в файл EFI/misc/c0000.bin

    Ядро для ML устраняющее утечку памяти.

    Ревизия 588. Решена проблема с памятью.

    Ревизия 596. теперь можно выключить инжекцию ЮСБ, поправлен поиск ЦПУ в ДСДТ

    Ревизия 644. Теперь можно патчить кексты. Для чего. Как.

    Ревизия 659. Подгрузка самодельного ЕДИД. Как вставить и как редактировать.

    Ревизия 676. Скрытие ненужных разделов.

    Ревизия 689. Решена проблема со входом на айКлауд. Также криво, как в Хамелеоне, но работает. Теория и практика.

    Ревизия 724. Работает мышь в интерфейсе Кловера.
    Ревизия 749. Исправлено многое.
    Требования к работе с мышью.
    1. Пропишите в refit.conf
    Код:
    # Mouse pointer settings:
    # Set mousespeed to adjust mouse cursor sensitivity.
    # Common values are between 2-8.
    # To disable mouse, set mousespeed to 0.
    mousespeed 8
    #mousemirror
    dblclick 500
    
    Скорость = 0 - безопасное значение, ибо с некоторыми мышами загрузчик просто виснет. Если же вы найдете, что у вас мышь работает, то поставьте значение.
    2. В папку EFI/drivers32 или EFI/drivers64 или EFI/drivers64UEFI положите драйвер мыши PS2 или USB (есть в инсталляторе).
    3. В папку со своей темой положите файл pointer.png. Он должен быть 32х32 пикселя и иметь прозрачность за пределами стрелки. В инсталляторе есть такие для всех тем.

    Ревизия 798.
    Более полное использование NVRAM, возможность перезагрузки в Виндоус и обратно.
    В Интерфейсе введены анимация и фоновые изображения. #12938

    Ревизия 809.
    Включена анимированная тема "Черно-зеленый-2" от blackosx.

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

    Ревизия 857
    Сделано более высокое разрешение в ГУИ загрузчика. При бут-загрузке уже включено, при УЕФИ-загрузке требуется дополнительный драйвер CsmVideoDxe (имеется в инсталляторе).

    Основное место, откуда скачивать, теперь сорсфорж
    http://sourceforge.net/projects/cloverefiboot/
    Но там нету HFSPlus.efi и NTFS.efi. Скачивайте здесь.

    Ошибка после инсталляции в efi-раздел! (в новых ревизяих исправлено) (open)
    лечится дисковой утилитой запущенной с инсталлятора оси: нужно выбрать весь винт а не раздел или прямо в меню клевера


    Немного лирики

    В этой теме, все сообщения и вопросы без железа(конфигурации) в подписи, будут удалены.

     

    Вложения:

    Последнее редактирование модератором: 4 апр 2014
    Magnus, macik, froluxa и 55 другим нравится это.
  2. medik

    medik Технический Специалист Команда форума

    Симпатии:
    2`524
    FakeEFI RealEFI - это ясно.
    Может назвать загрузчики на дуэте EmulationEFI ?
     
  3. Prorab71

    Prorab71 iНовичок

    Симпатии:
    17
    а нельзя ли по подробнее об установке ?
    детище новое надо и новое описалово!
    я так думаю!
     
    Hung нравится это.
  4. Beshuta

    Beshuta iНовичок

    Симпатии:
    9
    Подготовил флешку как на ХРС, скопировал содержымое Клевера + ДСДТ... Mbr Starting и мигает красный курсор, загрузки дальше нет(
     
    Hung нравится это.
  5. slice

    slice Apple Life Dev Разработчик

    Симпатии:
    6`033
    А знаешь, это не эмулятор. Это настоящий ЕФИ, от своего создателя - от Интел.
    Просто в Маках ЕФИ прошит в РОМ, а мы грузим в оперативную память. Собственно среду ЕФИ, стандартную, и модули, которые должны исполняться в этой среде.
    У Эппл свои модули, наша задача угадать резуьтат их работы.
    А, например, модуль boot.efi прекрасно исполняется в нашей среде. Да и HFSPlus.efi.

    Я предпочитаю делать описание конечного продукта. А сейчас только разработка.
    Установка точно такая же, как Хамелеона. Файлы boot0 и boot1h вложены в пакет. Они, кстати, прекрасно уживаются с Хамелеоном, я их использую и для того, и для другого.
    Ну а когда загрузочное устройство (флешка?) подготовлено, на него кидаем все содержимое пакета + свой DSDT.aml.
    И в путь!

    Есть второй вариант - установка на рездел (на флешку) в формате ФАТ32. В этом случае воспользуемся всем добром от ХРС.
    Только Efildr20 будет наш. Ну и содержимое папки /efi/
     
    ronaldkts нравится это.
  6. Prorab71

    Prorab71 iНовичок

    Симпатии:
    17
    будем пробывать!
    судьба боотплиста и смбиосплиста?
    или как то в связке с хамом работает твой клевер??
     
  7. гык-sse2

    гык-sse2 Apple Life Dev Разработчик

    Симпатии:
    951
    com.apple.Boot.plist остался там же, где и был - в папке SystemConfiguration то ли в /Library/Preferences, то ли /System/Library/Preferences.
    smbios.plist нет, пока там все захардкодено (модель определяется в зависимости от процессора).

    Пробовать-то пока нечего. (Ну если только чтобы убедиться, что загрузка ACPI-таблиц от Слайса не у всех работает (2 варианта: либо грузит, либо виснет).
    u99acpitables2 у меня грузит все таблицы, если восстановить ванильный AcpiTable модуль и то ли PlatformBds, то ли BdsLib. Причем его даже в любую папку можно пихнуть (таблицы туда же). Но: 1)таблицы нужны все 2)нужно cd-нуть в папку, где лежит u99acpitables2.efi и таблицы
     
    iROOT нравится это.
  8. slice

    slice Apple Life Dev Разработчик

    Симпатии:
    6`033
    У меня была аналогичная проблема. Решилась так:
    Флешку нужно форматировать, и первым кидать туда Efildr20, а уже потом все остальное. По-моему, дравер FAT32, заложенный в PBR не умеет работать с фрагментированными файлами.
    Во всяком случа, после таких манипуляций оно заработало.
    Если же использовать загрузку с HFS+, как хамелеон, то проблем нет.

    Тестировать и вправду нечего, просто в этой ветке собираем все, что известно по-поводу. Выкладываем модули EFI, какие-нибудь отчеты, если кому удалось загрузиться. Наблюдения. Чем больше наблюдений, тем больше шансов на успех.
    Посмотреть вложение Booted_with_clover.zip
    С кловером можно загрузиться в трех вариантах:
    1. Через его меню выбрать boot.efi загружаемого раздела.
    2. Ничего не нажимая ждать автовыбор /efi/boot/bootIA32.efi, который в данный момент = iBoot (ninja)
    3. Выбрать в меню ShellFull.efi, поиграться там с отчетами и дампингами памяти, а затем оттуда вызвать boot.efi (Apple).
    Так вот, результаты всех трех случаев получаются разными.
    Второй вариант был бы наиболее правильным, но почему-то SMBIOS слетел.
    Дело в том, что во втором варианте мы не только имеем графическую оболочку (кстати с мышкой, в отличие от Хамелеона), но также имеем некоторые пост-патчи. Я не могу все это переносить в Efildr20 по причине его размера, сейчас он на пределе. Поэтому все следующие патчи должны быть в загружаемом модуле, ну и пусть им будет йабут.
    Мне, кстати, начихать на его проблемы с лицензией. У нас есть исходники, там есть копирайт, а дальше делаем что хотим.
     
  9. slice

    slice Apple Life Dev Разработчик

    Симпатии:
    6`033
  10. slice

    slice Apple Life Dev Разработчик

    Симпатии:
    6`033
    В шапке у меня выложен Клевер с драйвером ИДЕ, если у вас САТА, испытайте вот эту версию
    Посмотреть вложение Clover-SATA.zip


    Задолбался исправлять PartitionDxe. Нативный так и не работает, несмотря на многочисленные правки со стороны Тиано.
    А ВБоксовый устарел для новых интерфейсов (BlockIO2). Пытаюсь согласовать одно с другим, но не понимаю, как оно вообще работает.


    Да, товарищи! А каким драйвером mach_kernel выводит сообщения на экран? Не через БИОС же!!!
    Я бы хотел использовать этот драйвер для Клевера вместо вложенного BiosVideo, и тогда Клевер заработает на Инспироне!
     
  11. гык-sse2

    гык-sse2 Apple Life Dev Разработчик

    Симпатии:
    951
    Ядро выводит через BiosVideo.efi. На MacPro он есть и на других тоже. Называется, в зависимости от версии, либо BiosVideo, либо BiosVideo[INT10] (в списке драйверов, а не имя файла).
    (Если вместо BiosVideo использовать text-only VgaMiniportDxe, то ядро ничего на экран не выводит).

    Докачал наконец-то Xcode 3.2.5 (на сайте Apple только 3.2.6).
     
    iROOT нравится это.
  12. slice

    slice Apple Life Dev Разработчик

    Симпатии:
    6`033
    Тогда объясни мне, каким образом ядро выводит сообщения в случае Хамелеона, там никакого BiosVideo.efi нету. И почему ядро нормально выводит сообщения на инспироне, а ЕФИ-загрузчики просто уходят в рестарт на первом же выводе?
    Качал бы 3.2.6. Чем хуже?
     
  13. slice

    slice Apple Life Dev Разработчик

    Симпатии:
    6`033
    Обновил исходники на SVN, теперь там ревизия 65. У меня в варианте ./buildIDE грузит нормально и быстро. В варианте ./build32 (SATA) спотыкается и ничего не грузит. Как сделать универсальную - ума не приложу.
     
  14. dmdimon

    dmdimon Модератор Команда форума

    Симпатии:
    52
    тысячу лет назад, в самом начале этой эпопеи, неткас разбирался с видеобуфером который должен быть сформирован и передан ядру. Подробности не помню, но наверняка помнит он сам. Там ни о каком ефи речь не шла, ядро получало веса-комплиантный видеобуфер и вроде как через веса работало с ним. Не помню. Где-то в недрах Hackint0sh.org должна храниться та ветка, очень ранняя, фактически самые первые его эксперименты, можно порыть - или спросить его.
     
  15. гык-sse2

    гык-sse2 Apple Life Dev Разработчик

    Симпатии:
    951
    Тогда BiosVideo в состав EDK не входило (но у интела уже было), а ядро вообще ничего не получало. Он пропатчил ядро, дописав кусок на ассемблере, и этот кусок переключал в консольный 80x25. При этом в -s работать можно, а GUI не отображается. Второй вариант ядра переключал в графический режим, и ничего не было видно, пока не загрузится Callisto (фреймбуфер вроде такой был). У меня где-то есть архив с тем ядром и его дуэтом.

    Ядро не через BiosVideo, оно получает VESA от UGA/GOP, а UGA/GOP - это BiosVideo.
     
  16. гык-sse2

    гык-sse2 Apple Life Dev Разработчик

    Симпатии:
    951
    Тем, что 4.0 даже скомпилировать не может, хотя версия компилятора не менялась.
    Скомпилировал 3.2.5 - все равно нерабочий получается. Попробую свои старые исходники скомпилировать.
     
    iROOT нравится это.
  17. slice

    slice Apple Life Dev Разработчик

    Симпатии:
    6`033
    Ты не поверишь, я тоже сторожил и видел эти обсуждения. Более того, неткас отыскал Joblo и консультировался с ним. Конечный результат, тот, что в Хамелеоне, я и так знаю. Я все-таки один из разработчиков, и в коды Хамелеона вникал, в том числе и по-поводу вывода на экран. Результаты исследования ошарашивающие. Веса режим БИОСа подразумевает вывод на экран в Real Mode
    Код:
    PrintString: 
    movw $0xb800, %ax
    movw %ax, %es
    movw $0x7c0, %ax
    movw %ax, %ds
    movw $7, %cx
    movw $160, %di
    rep
    movsw
    ret
    
    И это работает, в том числе на Инспироне.
    Хамелеон для вывода строки вызывает процедуру вызова символа в цикле по строке, и на каждый символ переключается из протектид моды в реал, и обратно. Скорость соответствующая, ибо для возврата нужет резет с сохранением состояния.
    В ЕФИ сделали вывод в протектид моде, и, вроде, логически правильно
    Код:
    ##############################################################################
    # Now in 32-bit protected mode.
    ##############################################################################
    ClearScreen: 
    pushl   %eax
    pushl   %ecx
    
    movb    $0x00, %al
    movb    $0xc, %ah
    movl    $0xb8000, %edi
    movl    $80*24, %ecx
    LN_C5: 
    movw    %ax, (%edi)
    addl    $2, %edi
    loop    LN_C5
    movl    $0xb8000, %edi
    
    popl    %ecx
    popl    %eax
    
    ret
    
    Видите этот адрес 0xb8000? Это оно, адрес Веса-буфера в защищенном режиме.
    Вот не знаю, что в Инспироне не так, но вызов этой процедуры приводит к немедленному ребуту.
    Так же как и в кодах Си
    Код:
    VOID
    PrintHeader (
    CHAR8 Char
    )
    {
    *(UINT8 *)(UINTN)(0x000b8000 + mHeaderIndex) = Char;
    mHeaderIndex += 2;
    }
    
    
    Тот же самый адрес, и тот же немедленный ребут.
    Но я не могу повторить трюк из Хамелеона, потому что он привязан к младшим адресам памяти, куда и грузится Хам.
    UGA/GOP/BiosVideo - термины EFI среды. С хамелеоном их нет! Нету совсем, понимаешь, нету никаких ЕФИ-вызовов в хамелеоне. Значит ядро само выводит на экран, причем не обращаясь к INT10, поскольку на Маках нету БИОСа.
    В кодах xnu все ужасно запутанно, без поллитра не разберешься, а целиком скопировать себе - место не позволяет....
     
  18. slice

    slice Apple Life Dev Разработчик

    Симпатии:
    6`033
    Вставляй отладочные сообщения, чтобы увидеть, в каком месте происходит затык. Я так вычислил на Инспироне, почему ЕФИ не работает.
     
  19. SunKi

    SunKi GURU Гуру

    Симпатии:
    570
    Мне казалось что информация о видео передается кернелу через bootargs:
    Код:
    /*
    * Video information.. 
    */
    
    struct Boot_Video {
    uint32_t        v_baseAddr;     /* Base address of video memory */
    uint32_t        v_display;      /* Display Code (if Applicable */
    uint32_t        v_rowBytes;     /* Number of bytes per pixel row */
    uint32_t        v_width;        /* Width */
    uint32_t        v_height;       /* Height */
    uint32_t        v_depth;        /* Pixel Depth */
    } __attribute__((aligned(4)));
    
    typedef struct Boot_Video       Boot_Video;
    
    
    /* Boot argument structure - passed into Mach kernel at boot time.
    */
    #define kBootArgsRevision               4
    #define kBootArgsVersion                1
    
    #define kBootArgsEfiMode32              32
    #define kBootArgsEfiMode64              64
    
    typedef struct boot_args {
    uint16_t    Revision;       /* Revision of boot_args structure */
    uint16_t    Version;        /* Version of boot_args structure */
    
    char        CommandLine[BOOT_LINE_LENGTH];  /* Passed in command line */
    
    uint32_t    MemoryMap;
    uint32_t    MemoryMapSize;
    uint32_t    MemoryMapDescriptorSize;
    uint32_t    MemoryMapDescriptorVersion;
    
    Boot_Video  Video;          /* Video Information */
    ...........................
    
    Может я конечно что не так понял...
     
  20. slice

    slice Apple Life Dev Разработчик

    Симпатии:
    6`033
    Молодец, правильно! Я уже к этому начал подходить. Вот что я нашел в ядре
    Код:
    struct PE_Video {
    unsigned long   v_baseAddr;     /* Base address of video memory */
    unsigned long   v_rowBytes;     /* Number of bytes per pixel row */
    unsigned long   v_width;        /* Width */
    unsigned long   v_height;       /* Height */
    unsigned long   v_depth;        /* Pixel Depth */
    unsigned long   v_display;      /* Text or Graphics */
    char		v_pixelFormat[64];
    unsigned long	v_offset;	/* offset into video memory to start at */
    unsigned long	v_length;	/* length of video memory (0 for v_rowBytes * v_height) */
    unsigned char	v_rotate;	/* Rotation: 0:normal, 1:right 90, 2:left 180, 3:left 90 */
    unsigned char	v_scale;	/* Scale Factor for both X & Y */
    char		reserved1[2];
    long		reserved2;
    };
    
    Замечу, что именно так работает графическая оболочка Хамелеона, а для вывода символов используется картинка font_console.png.
    Наверно, в ядре тоже какой-то фонт захаркоден, и мяч_кернел всегда работает в графичеком режиме!
    А мне, наверно, надо посмотреть графику iBootEFI, и переключить клевер в графический режим уже на старте, до вывода первых сообщений на экран.
    Работка не очень простая, но реальная.

    ЗЫ: структуры отличаются. Чья ошибка?
     
Similar Threads: Clover 2011-2014
Форум Заголовок Дата
Хакинтош Clover 31 окт 2011
Хакинтош Собираем Кловер с помощью CloverGrowerPro 20 мар 2013
Хакинтош Разработка Clover 14 янв 2013
Хакинтош Clover Восстановление OS X через Интернет 16 янв 2013

Статус темы:
Закрыта.

Поделиться этой страницей