Прошу не засорять ветку вопросами как устанавливать кексты, редактировать info.plist, и лечить пермишины. Как вернуть все назад не переустанавливая систему. Это все описано в FAQ (ЧаВо - часто задаваемые вопросы).
Речь идет о Радеонах до Х1000, ибо более новые управляются другими драйверами и новыми методами.
Из чего состоит полноценный графический драйвер в MacOSX?
1. Драйвер шины IOPCIFamily.kext
Читайте о нем и загружайте новейшую версию из ветки .
2. Если вы имеете шину PCIE, этот шаг можно пропустить. Если AGP, то вам необходим AGPGart, новейшая версия доступна в ветке . Настоятельно не рекомендую другие версии.
3. Инжектор. Это небольшой кекст, сообщающий системе подробности про видеокарту. В реальном Маке это делает EFI. B Hackintosh варианты: PC-EFI, CallistoHAL, natit, ATIinject. Все они вызывают у меня сомнения, потому я написал собственный инжектор , который теперь доступен для любых модификаций. От продвинутых пользователей я жду советов, что можно добавить в его info.plist. В данный момент он настроен как замена для CallistoHAL, и, в отличие от последнего, дает два десктопа, тогда как я собирался получить два монитора.
В его info.plist нужно заменять DeviceID и размеры видеопамяти. Мои настройки
DevID = 0x5835
0х08000000 = 128Mb - общий размер видеопамяти
0х04000000 = 64Mb - память, отведенная под AGP.
Остальные параметры надерганы из разных натитов и реальных маков. Все ли правильно, и что еще добавить?
Еще раз: устанавливается вместо CallistoHAL, но при наличии Callisto.kext.
EDITED 21-07-2008
Новая версия ATILead 1.2.2 должна работать с любыми радеонами. В настоящий момент настроена для Ati.kext.
4. Фрембуфер. Собственно тот драйвер, который строит изображение на экране. Варианты:
IONDRVSupport.kext (class IONRDVFramebuffer)- драйвер по умолчанию, работает в самом простейшем режиме VESA, и не позволяет переключать разрешение экрана.
Callisto.kext (class CallistoFB) - есть версии 3,5,6,8 для разных радеонов. В исходниках, к сожалению, недоступен. Ветка про него
ATINDRV.kext - похоже для нашего случая неприменим.
EDITED: 21-07-2008 Начинается отладка нового фреймбуфера
5. Акселератор. Для карточек 8500-9250 (chip R200-RV280) используется ATIRadeon8500.kext, и в реальных маках успешно, на хаках хороших отчетов пока не видел. Для карточек 9500-9800, X200-X850 нужно использовать ATIRadeon9700.kext с патчем. Об этом ниже.
6. Плагины к акселератору. Самый интересный в данный момент - GA.plugin. Он включает в работу акселератор. В его отсутствии никакого ускорения невозможно. В его info.plist есть два интересных пункта:
<key>CFPlugInFactories</key> <dict> <key>1002514c-0000-0000-0000-000a27898d3e</key>
Кое-кто считает, что это DeviceID и стремится его поменять. Я не нашел для этого достаточных оснований.
<key>IOProviderClass</key> <string>IONDRVFramebuffer</string>
Это класс фреймбуфера, с которым нужно связать акселератор. Например OMNI рекомендует написать CallistoFB. Не отрицая этого я предлагаю написать в более общем виде
IOFramebuffer - т.е. суперкласс от любых вариантов. Работает!
Переходим к самому страшному: бинарному патчу. Для этого вы должны знать свой DeviceID, например посмотреть в систем профайлере. Определить по таблице ниже "образец для подражания":
Семейство R200 (а также RS300)
Ваш DevID Образец
4242..4243 514c 5148..514d 514c 4c64..4c67 4c66 5964 5963 5c61 5c63
Семейство R300 (кроме RS300)
3150..3154 3e50 3e50..3e54 3e50 4145..414b 4144 4151 4150 4153..4156 4152 4e45..4e47 4e44 4e49..4e4a 4e48 4e50..4e53 4e50 5460..5464 5b60 5b60..5b65 5b60 5a41, 5a61 5b60 5a42, 5a62 5b60
Замечу, что существующий Koverg.patch осуществляет именно последний вариант.
Семейство R400 имеет два образца 4a4e, 4a48. Т.е. делается два патча!
4a4f..4a54 4b4a..4b4f 5548..5554 564a..5653 5954..5955 5974..5975 5d48..5d57 5e48..5e4f
Никого не забыл? В таблице, естественно, не упомянуты DeviceID, которые уже есть в info.plist, и не нуждаются в таком патче.
Для примера предположим, что ваш DevID=5461. В таблице находим, что образец будет 5b60. И этому чипу соответствует ATIRadeon9700.
Создаем в корне диска папку /patch, копируем туда бинарный файл. Привелегии рута!
sudo -s
Password:
cp -v /S*/L*/E*/ATI*9700.kext/C*/M*/* /patch
Вас не слишком шокирует, что я все заменяю звездочками?
А теперь сам патч с вашими цифрами
perl -pi -e 's|\x66\x3d\x60\x5b|\x66\x3d\x61\x54|g' /patch/ATIRadeon9700
либо, в зависимости от версии
perl -pi -e 's|\x3d\x60\x5b\x00\x00|\x3d\x61\x54\x00\ x00|g' /patch/ATIRadeon9700
----------------------- образец ----------------- DevID ---------
Порядок байтов в интеле обратный, потому ID написаны наоборот!
Для R400 и выше патч нужно применить дважды с двумя образцами: один раз 4a4e, другой раз 4a48.
Теперь можно пропатченный бинарник положить на место, предварительно сохранив исходный вариант.
cp -r -v /S*/L*/E*/A*9700.kext /nopatch
rm -v /S*/L*/E*/A*9700.kext/C*/M*/A*
cp -v /patch/A* /S*/L*/E*/A*9700.kext/C*/M*/
Да, и конечно, не забудьте прописать свой DeviceID в info.plist, как обычно.
Во всем этом есть еще действующие лица
OpenGL.framework - часто рекомендуют использовать более старую версию. Стоит попробавать!
ApplicationServices.framework/frameworks/CoreGraphics.framework внутри которого можно найти Configuration.plist с минимальными требованиями для включения QuartzExtreme. Его можно подредактировать!
Поправка:
Для IGP, в том числе Xpress 200M, этого всего недостаточно, требуется каким-то образом осуществить перераспределение памяти, как на уровне радеоновых регистров, так и на уровне реестра. Вопрос в стадии изучения.
EDITED: Может быть на уровне фреймбуфера. Теперь я могу на это влиять!
Жду отчетов!
Новость 06-06-08
На задворках интернета найден
Два важных трюка:
1. В Леопарде ATIRadeon9700GLDriver.bundle оказался PowerPC. Вместо него нужно подсунуть переименованный ATIRadeonX1000GLDriver.bundle.
Подробнее так
sudo -s
cp -v /S*/L*/E*/ATIRadeonX1000GLDriver.bundle/C*/M*/A* /S*/L*/E*/ATIRadeon9700GL*/C*/M*/ATIRadeon9700GLDriver
2. ATIRadeon8500GLDriver.bundle не работает для Radeon9000-9500, хотя и должен. Трюк тот же, только подсовываем 9700 вместо 8500.
Прикрепленные файлы
-
ATILead.kext.zip (16,08К)
Количество загрузок:: 569 -
Ati.kext.zip (33,85К)
Количество загрузок:: 340
Сообщение отредактировал slice: 20 Окт 2008 - 11:23

Вход
Регистрация
Помощь


Цитата






