Mac OS X на оборудовании x86 Технический архив 2008–2024
InfiniteMac OSx86 › Ядро OSx86 10.X и архитектура загрузки › Поддержка встроенной графики Intel GMA X4500HD /…
266,730 reads · 2008-10-29 – 2011-03-13
Отчёт Ядро 10.X

Поддержка встроенной графики Intel GMA X4500HD / X4500MHD в Mac OS X

Обсуждение перспектив поддержки интегрированного графического ядра Intel GMA X4500HD / X4500MHD (платформа Intel Montevina / чипсет GM45) в Mac OS X по сравнению с проверенной графикой Intel GMA X3100 при выборе ноутбука.

Основной автор
@naquaada Опубликовано 2008-10-29
Раздел архива
Ядро OSx86 10.X и архитектура загрузки
Охват в архиве
266,730 просмотров · 29 отобранных заметок (из 32 исходных сообщений) · 2008-10-29 – 2011-03-13
Участники обсуждения (20)
@martin255 (4)@uman (4)@changturkey (2)@Undead Surfer (2)@asert (2)@modemthug (2)@max.1974 (2)@brizzle (2)@naquaada@scififan68@BlackCH@evb60@shanwookie@localparty@sparksthesquid@Sevan+4 more
Справочник оборудования
Laptop RAM & SSD Upgrades ↗ SATA III & NVMe SSDs ↗ USB 3.2 Boot Flash Drives ↗
Полный технический перевод на русский язык · Все команды терминала, имена кекстов, узлы ACPI и флаги загрузчика сохранены в оригиналеОткрыть оригинал на английском (Original English) →

Подскажите, пожалуйста: поддерживается ли сейчас (или будет ли поддерживаться в обозримом будущем) встроенная видеокарта Intel GMA X4500HD в Mac OS X? Я присматриваюсь к двум моделям ноутбуков:
Acer TravelMate 5720-602G16_XPP (notebook sbilliger.de/product_info.php/acer_travelmate_5720602g16_xpp_3gb) и Acer TravelMate 5730-842G25N (notebook sbilliger.de/product_info.php/acer_travelmate_5730842g25n_3072mb).

Главный критерий выбора этих моделей для меня — длительное время автономной работы (до 5 часов от батареи). Проблема в том, что в первой модели установлена графика GMA X3100, которая полноценно поддерживается в OS X, а во второй — более новая GMA X4500HD. Мне совершенно не нужна мощная 3D-графика — ноутбук нужен исключительно для работы с программами и запуска старых игр под DOS или эмулятор Amiga.

Помимо видеоядра и объёма жёсткого диска, ноутбуки отличаются процессорами: в первом стоит Intel Core 2 Duo T7500 (2 × 2,20 ГГц, 4 МБ кэша L2, шина FSB 800 МГц), а во втором — более свежий Intel Core 2 Duo P8400 поколения Montevina (2 × 2,26 ГГц, 3 МБ кэша L2, шина FSB 1066 МГц). Будет ли заметна разница в быстродействии процессоров и что делать с графикой X4500HD?

Полевые заметки и отчёты сообщества

Отобрано 29 технических ответов из 32 исходных сообщений темы

Заметка #1 @scififan68 2008-12-08

Сильно сомневаюсь, что встроенная графика GMA X4500 когда-либо получит полноценную поддержку в Mac OS X: в новых поколениях ноутбуков Apple полностью перешла на интегрированные чипсеты NVIDIA (GeForce 9400M), поэтому ждать драйверов от самой Apple не приходится.

Заметка #2 @changturkey 2008-12-08

Эх, а я надеялся, что кто-нибудь из разработчиков сообщества сумеет адаптировать драйвер или хотя бы сделать переключение в родное разрешение экрана (аппаратное ускорение QE/CI мне не так уж важно).

Заметка #3 @martin255 2009-06-18

changturkey, если вам нужно только родное разрешение экрана без аппаратного ускорения, то на сегодняшний день уже известны два рабочих решения! Первое заключается в установке загрузчика GRUB с пропатченным модулем 915resolution, который на лету перезаписывает таблицу видеорежимов VBIOS перед передачей управления OS X. А второе, гораздо более простое решение, появилось буквально на этой неделе — модифицированный загрузочный файл boot (Chameleon с интегрированным патчем разрешения, изначально собранный для субноутбука Sony VAIO P). На моём ThinkPad X200s с ним сразу заработало разрешение 1280×800!
Оба способа подробно описаны в профильной ветке на InsanelyMac (первый — начиная с поста №38, второй — с поста №106): http://www.insanelymac.com/forum/index.php?showtopic=12… ↗

Заметка #4 @Undead Surfer 2009-06-24

А почему бы для выставления нужного разрешения просто не прописать стандартный ключ "Graphics Mode"="ШxВx32" в com.apple.Boot.plist?

Заметка #5 @uman 2009-06-24

Меня эта тема тоже живо интересует, так как скоро мне в руки должен попасть ноутбук с такой графикой. Я нашёл открытую техническую документацию Intel по программированию графических ядер:

intellinu xgraphics.org/documentation.html

Было бы здорово изучить её силами сообщества: главная идея — проверить, может ли чип GMA 4500 работать в режиме обратной совместимости с командами GMA X3100 (или хотя бы GMA 950) путём подмены Device ID через инжектор Natit или строки EFI.

Заметка #6 @martin255 2009-06-24

UndeadSurfer, стандартный ключ в com.apple.Boot.plist сам по себе не срабатывает на широкоформатных матрицах ноутбуков потому, что в заводской таблице VESA внутри видео-BIOS чипов Intel прописаны только стандартные разрешения 4:3 (вроде 1024×768 и 1280×1024), а родного широкоформатного режима матрицы (например, 1280×800 или 1366×768) в таблице VESA попросту нет. Именно поэтому загрузчику приходится предварительно патчить таблицу VBIOS в оперативной памяти на этапе загрузки.

uman, судя по спецификациям Intel, внутренняя архитектура X4500 довольно заметно отличается от X3100, но можете заглянуть в эту тему энтузиастов на InsanelyMac: http://www.insanelymac.com/forum/index.php?s=&showt… ↗

Заметка #7 @uman 2009-06-25 ↳ Re: @martin255
@martin255uman, судя по спецификациям Intel, внутренняя архитектура X4500 довольно заметно отличается от X3100... но можете заглянуть в эту тему энтузиастов на InsanelyMac...

Попытка написать драйвер с нуля под OS X обречена на провал, поскольку Apple не публикует закрытые исходные коды и заголовки графической подсистемы IOGraphics / Quartz.

Заметка #8 @Undead Surfer 2009-06-25 ↳ Re: @martin255
@martin255UndeadSurfer, стандартный ключ в com.apple.Boot.plist сам по себе не срабатывает на широкоформатных матрицах ноутбуков потому, что в заводской таблице VESA внутри видео-BIOS...

Странно, у меня на рабочем настольном ПК с чипсетом G45 разрешение 1280×1024 спокойно выставилось через обычный com.apple.Boot.plist.

Заметка #9 @martin255 2009-06-25

UndeadSurfer, всё верно: стандартное мониторное разрешение 1280×1024 (соотношение 5:4) изначально присутствует в таблице режимов VESA внутри BIOS чипсета G45/X4500, а вот широкоформатные ноутбучные разрешения (16:10 и 16:9) — нет.

Заметка #10 @uman 2009-06-30 ↳ Re: @martin255
@martin255uman, судя по спецификациям Intel, внутренняя архитектура X4500 довольно заметно отличается от X3100...

Обращение к Martin и всем владельцам систем с графикой GMA 4500

Я внимательно полистал документацию Intel по серии GMA 4500 и обнаружил, что на уровне базовых регистров у неё сохраняется широкая преемственность с поколением GMA X3100! Поэтому я предлагаю провести практический эксперимент: попробовать привязать штатные кексты AppleIntelGMAX3100 от Leopard к идентификаторам чипов серии 4500.

1. Убедитесь, что в файле AppleIntelGMAX3100.kext/Contents/Info.plist прописана маска:

<key>IOPCIClassMatch</key>
<string>0x03000000&0xff000000</string>
<key>IOPCIMatch</key>
<string>0x00008086&0x0000ffff</string>

(она соответствует любому видеоадаптеру класса 0x03 от производителя Intel 0x8086).

2. Откройте файл AppleIntelGMAX3100FB.kext/Contents/Info.plist, где по умолчанию стоит:

<key>IOPCIClassMatch</key>
<string>0x03000000&0xff000000</string>
<key>IOPCIPrimaryMatch</key>
<string>0x2A028086</string>

3. И замените строку IOPCIPrimaryMatch на список идентификаторов семейства GMA 4500:

<key>IOPCIClassMatch</key>
<string>0x03000000&0xff000000</string>
<key>IOPCIPrimaryMatch</key>
<string>0x2A42 0x2A43 0x2E12 0x2E13 0x2E02 0x2E03 0x2E22 0x2E23 0x2E32 0x2E33</string>

Здесь перечислены Device ID мобильных чипов 4500MHD (2A42, 2A43) и настольных 4500 / X4500 / X4500HD (2E12, 2E13, 2E02, 2E03, 2E22, 2E23, 2E32, 2E33).

4. Перезагрузитесь с флагом -v, откройте программу «Консоль» (Console) и проверьте в «Терминале», загрузился ли кекст:

$> kextstat | grep AppleIntelGMAX3100

Отпишитесь о результатах!

-u

Заметка #11 @martin255 2009-06-30

uman, обязательно попробую и отпишусь! Кстати, однажды я уже видел в логах загруженный кекст X3100, когда прописал в SMBIOS профиль от MacBookAir1,1.

Заметка #12 @BlackCH 2009-06-30

Внимание: целевые идентификаторы устройств (Device ID) жёстко зашиты внутри самих исполняемых бинарных файлов этих кекстов, поэтому одной правки Info.plist недостаточно — нужно дополнительно пропатчить бинарники в HEX-редакторе!

Заметка #13 @uman 2009-07-01 ↳ Re: @BlackCH
@BlackCHВнимание: целевые идентификаторы устройств (Device ID) жёстко зашиты внутри самих исполняемых бинарных файлов этих кекстов, поэтому одной правки Info.plist недостаточно — нужно дополнительно пропатчить бинарники в HEX-редакторе!

Точно! Спасибо за важное уточнение, BlackCH — я проверил бинарник в HEX-редакторе, идентификаторы действительно зашиты внутри кода.

Итак, уточнённая инструкция для тех, кто готов протестировать на железе с GMA 4500:

1. В файле Info.plist внутри AppleIntelGMAX3100FB.kext замените значение 0x2A028086 в ключе:

<key>IOPCIPrimaryMatch</key>
<string>0x2A028086</string>

на полный идентификатор вашей модели GMA 4500:
- 4500MHD: 0x2A428086 или 0x2A438086
- 4500: 0x2E128086 или 0x2E138086
- X4500 и X4500HD: 0x2E028086, 0x2E038086, 0x2E228086, 0x2E238086, 0x2E328086 или 0x2E338086

2. Затем откройте в HEX-редакторе исполняемый файл AppleIntelGMAX3100FB (и аналогично бинарник AppleIntelGMAX3100 во втором кексте) и выполните поиск и замену (с обратным порядком байтов Little Endian):
Найти: 86 80 02 2A
Заменить (на примере 0x2A428086): 86 80 42 2A

Жду ваших отчётов!
-u

Заметка #14 @evb60 2009-07-06 ↳ Re: @uman
@umanПопытка написать драйвер с нуля под OS X обречена на провал, поскольку Apple не публикует закрытые исходные коды...

Мы не пишем 3D-драйвер с нуля, но нам уже удалось запустить модифицированный фреймбуфер с переключением разрешений на лету! Если получится подобрать правильные параметры инжекта, возможно, удастся сдвинуться и дальше.

Заметка #15 @shanwookie 2009-07-14 ↳ Re: @Undead Surfer
@Undead SurferСтранно, у меня на рабочем настольном ПК с чипсетом G45 разрешение 1280×1024 спокойно выставилось через обычный com.apple.Boot.plist...

Подтверждаю: на материнской плате Intel DG45ID в системе 10.5.7 я прописал режим через OSx86 Tools и получил стабильные 1280x1024x32@60Hz.

Заметка #16 @localparty 2010-01-23 ↳ Re: @uman

После HEX-патча кекстов X3100 под 0x2A42 экран гаснет

@umanИтак, уточнённая инструкция для тех, кто готов протестировать на железе с GMA 4500: 1. В файле Info.plist внутри AppleIntelGMAX3100FB.kext замените значение 0x2A028086...

uman,

Я тщательно проверил твой метод на своём ноутбуке Dell Latitude E6500 со Snow Leopard 10.6.2 и графикой Intel GMA X4500MHD (Vendor ID 0x8086, Device ID 0x2a42). Я прописал в Info.plist обоих кекстов (AppleIntelGMAX3100.kext и AppleIntelGMAX3100FB.kext):

<key>IOPCIPrimaryMatch</key>
<string>0x2A428086</string>

и с помощью HEX-редактора Hex Fiend заменил в обоих бинарных файлах все вхождения 86 80 02 2A на:

86 80 42 2A

Подтверждаю, что при загрузке система действительно подхватывает модифицированные кексты: сначала ненадолго появляется серое яблоко, а затем в момент инициализации фреймбуфера экран полностью гаснет (становится чёрным), хотя сама ОС на фоне продолжает работать. Пробовал также менять только первое вхождение байтов — результат тот же (чёрный экран). Без этих кекстов система грузится в 1024×768 (либо в 1600×1200 при указании флага "Graphics Mode"="1920x1200x32", хотя родное разрешение моей матрицы — 1920×1200). Есть идеи, что ещё можно подкрутить?

Заметка #17 @asert 2010-02-04

Готов заплатить вознаграждение $200.00 (через PayPal или переводом) тому разработчику, который сделает рабочий патч с поддержкой аппаратного ускорения QE/CI для мобильной графики Intel GMA 4500MHD в Snow Leopard 10.6.2 (для ноутбука Dell Inspiron 1545). Жду серьёзных предложений в этой ветке!

Заметка #18 @sparksthesquid 2010-02-08

Для тех, кому нужно хотя бы родное широкоформатное разрешение экрана на GMA 4500 без растянутой картинки: прикладываю архив с модифицированным загрузчиком Chameleon RC4 (с интегрированным патчем VBIOS 915resolution). Просто удалите любые экспериментальные кексты от 3100, замените файл boot и пропишите родное разрешение матрицы в com.apple.Boot.plist — отлично работает и в 10.5.x, и в 10.6.x!

Заметка #19 @Sevan 2010-02-14

Перепробовал уже все модифицированные варианты фреймбуфера с InsanelyMac для своей карты Intel GMA 4500MHD (0x2a42) на ноутбуке с 17-дюймовым экраном: с ними выставляется родное разрешение, но изображение на экране покрывается полосами и сильным фиолетовым оттенком. Кто-нибудь знает, как убрать это искажение цветов?

Заметка #20 @modemthug 2010-04-20

Кажется, я нашёл кексты Intel HD из обновления для новых MacBook Pro!

Привет всем! У меня самого настоящий iMac и MacBook Pro, но я прочитал, что в новых моделях MacBook Pro (2010 года на процессорах Core i5/i7 Arrandale) появилась встроенная графика Intel HD Graphics! Я скачал свежее системное обновление для этих MacBook Pro с сайта Apple, распаковал архив через утилиту XAR и вытащил оттуда новые графические кексты Intel HD. Проверьте, пожалуйста, вдруг они подойдут или помогут завести GMA 4500:

rapid share.com/files/377968637/Intel_HD_kexts.zip.html

Заметка #21 @modemthug 2010-04-20

Залил эти кексты на нормальный файлообменник без лимита на 10 скачиваний:

media fire.com/?jjmtwijjo5i

Заметка #22 @JaS 2010-04-20

К сожалению, эти кексты из обновления MacBook Pro 2010 предназначены для нового графического ядра Intel HD Graphics (Ironlake, встроенного непосредственно в процессоры первого поколения Core i5/i7) и требуют соответствующего нового ядра и фреймворков OpenGL.

Заметка #23 @pflaume 2010-05-13

Собираюсь снова попробовать поставить Mac OS X на свой субноутбук Lenovo IdeaPad U350 — в прошлый раз так и не смог выставить на нём родное разрешение 1366×768.

Заметка #24 @danhtho 2010-06-15

Установил сборку Kalyway 10.5.2 на ноутбук, но разрешение экрана застряло на 1024×768. Подскажите самый простой для новичка способ переключить разрешение на родные 1366×768!

Заметка #25 @mesco64 2010-11-09

Сбор средств на разработку драйвера GMA 4500

Поддерживаю идею с премией разработчику! Думаю, по всему миру легко наберётся полсотни владельцев ноутбуков с графикой Intel GMA 4500MHD, готовых скинуться долларами и проспонсировать создание полноценного драйвера с аппаратным ускорением QE/CI. Отзовитесь, опытные программисты!

Заметка #26 @max.1974 2011-01-09

Кексты для GMA 4500 не работают

Увы, чуда не произошло... Я тоже готов перевести 100 долларов США по PayPal тому разработчику, который заставит эту чёртову карту GMA 4500 работать с ускорением!

Заметка #27 @brizzle 2011-03-13

Решение для разрешения 720p на GMA 4500

На сайте kexts.com в разделе видеокарт Intel выложен пакет модифицированного фреймбуфера AppleIntelGMAX3100FB.kext, адаптированный под GMA 4500MHD — аппаратного ускорения он не даёт, но позволяет выставить родное широкоформатное разрешение 1280×720 / 1366×768 вместо 800×600.

Заметка #28 @brizzle 2011-03-13

Драйвер фреймбуфера для GMA 4500MHD

Ищите на kexts.com архив с названием 4500mhd kexts __ apple 3100 fb — с ним работает широкоформатное разрешение 720p.

Заметка #29 @max.1974 2011-03-13

Скиньте, пожалуйста, прямую ссылку для остальных участников темы (хотя если этот кекст даёт только нативное разрешение без QE/CI, то это уже давно решается загрузчиком Chameleon с патчем 915resolution)...

Проверили и дополнили материал: @changturkey @asert
Источники и реестр соавторов (указано участников: 20 · Тема #1521)
УчастникРоль в досьеСообщенийПериод активности
@martin255Ключевой участник42009-06-18 → 2009-06-30
@umanКлючевой участник42009-06-24 → 2009-07-01
@changturkeyУчастник22008-12-08
@Undead SurferУчастник22009-06-24 → 2009-06-25
@asertУчастник22010-02-04 → 2010-02-09
@modemthugУчастник22010-04-20
@max.1974Участник22011-01-09 → 2011-03-13
@brizzleУчастник22011-03-13
@naquaadaОсновной автор12008-10-29
@scififan68Участник12008-12-08
@BlackCHУчастник12009-06-30
@evb60Участник12009-07-06
@shanwookieУчастник12009-07-14
@localpartyУчастник12010-01-23
@sparksthesquidУчастник12010-02-08
@SevanУчастник12010-02-14
@JaSУчастник12010-04-20
@pflaumeУчастник12010-05-13
@danhthoУчастник12010-06-15
@mesco64Участник12010-11-09

Выберите язык · Choose your language