Кексты для mac os 10.11. Кексты

По просьбе нашего форумчанина rewon, решил подыскать как больше информации о утилитах для настройки компьютеров Хакинтош (обычные ПК работающие под Mac OS X) . Утилиты EFIStudio, Kext Helper b7 и OSx86Tools могут облегчить жизнь хакинтошника. Так же следует помнить, неверное обращение с выше перечисленными программами может «убить»ваш Хакинт0ш, что скорей всего приведет к полной переустановки операционной системы.

Эта статья мой личный опыт, для разъяснения как работают программы я собрал информацию с разных ресурсов.

1. EFI Studio. Стринги для Хакинтош

Прочитали название статьи и подумали что я сошел с ума, решил поиздеваться над хакинтошем? Нет это не издевательство над хакинтошником. Да нет все правильно, стринги здесь от англ. слова strings . Программа EFI Studio позволит вам забыть о всех «слетах» и переустновках драйверов видео на хакинтоше.

Вообще программа умеет работать со стрингами не только под видео. Но я проверял только gfx.

Выбираю Display , а потом свое видео (8500GT 256Мб) и жму Add Device :

Появляется окошко, здесь жмем write to com.apple.Boot.plist

После этого закрываем программу и идем на диск с Mac OS X -> Система -> Библиотеки -> Extensions (в англ. версии HDD Mac OS X -> System -> Library -> Extensions ) и ищем файлы Nvinject с расширением kext и удаляем их, но корзину на всякий случай чистить пока не будем. После этого перезагружаемся. Если все хорошо, то у вас будет родное разрешение монитора и поддержка QE и CI.

Если вы не добились желаемого результата используя EFIStudio, то просто восстановите из корзины свои файлы Nvinject и перезагрузитесь.

Информация о EFIStudio via MacPages

2. Kext Helper b7. Установка кекстов «с полпинка»

Для начала что такое kext, полное название kernel extension – или кекст. Для тех кто больше знаком с миром Windows это можно объяснить как драйверы (drivers, дрова) операционной системы Mac OS X. Если вам интересно более техническое определение, пожалуйста на? Wiki .

Часто после, даже успешной, установки у Хакинтоша находятся какие то «части тела» не полноценно, а то и вообще полностью парализованные. Например как это было у меня, Хакинтош не перезагружался и не выключался (вытащить шнур всегда помогало ). Так же кексты отвечают за работу видео процессора (видеокарты), аудиокарты, LAN, WiFi и многих других. Кernel extension хранятся в /System/Librarу/Extensions.

Для пользователей Хакинтош существуют модифицированные кексты, переделанные для поддерживаемого «железа». Где их взять? Google самый лучший помощник в этом. Еще советую обязательно заглянуть на сайт InsanelyМac. Я так же собрал не большую коллекцию «такого добра», загляните сюда , может пригодится.

Именно для автоматической замены кекстов была сделана утилита Kext Helper b7.

Как пользоваться.

1. Предположим что вы нашли подходящий кекст. Запустите Kext Helper b7, и просто перетащите кекст в окно утилиты.

2. Введите пароль администратора – активируется кнопка Easy Install , нажмите ее.

3. Подождите подтверждения, затем перезагрузите ваш Хакинтош.

4. Наслаждайтесь (возможно) работающим кекстом, а с ним и вашим Хакинтошем.

3. OSx86Tools. «Швейцарский нож» хакинтошника

Загрузить утилиту можно с страницы Google Code или .

Многофункциональная утилита для Хакинтоша. OSx86Tools не поддерживает русский язык, поэтому я переведу все ее функции. Вот так выглядит вся программа.

Теперь все функции.

Графика и кастомизация

1. Модифицируете информацию о своем Mac (Хакинтош).

Часто операционная система (хакинтошевские сборки) не могут определить ваше «железо» и выдают прикольные вещи.

2. Включить/Выключить Quartz GL.

По умолчанию, в Mac OS X, Quartz GL отключена. Если у вас установлена поддерживаемая видеокарта (большинство современных ОК), используя эту кнопку, вы можете «разогнать» увидеть значительные результаты (требует перезагрузки) в работе видео/графических задач. Команда модифицирует com.apple.windowserver файл и добавляет QuartzGLEnabled для контроля Quartz GL. Это можно сделать командой Терминала:

Включить QuartzGL

Sudo defaults write /Library/Preferences/com.apple.windowserver QuartzGLEnabled -boolean YES

Отключаем этой командой, меняем YES на NO

Обязательно перезагружаем компьютер.

Обслуживание системы

3 и 4. Поправка/Исправление прав доступа (пермишининов).

Нарушение прав доступа, или пермишинов, довольно таки распространенная вещь в Mac OS X. Права доступа к папкам и файлам, используются в UNIX, Linux, или BSD операционных системах. Иногда права доступа «слетают», если дело серьезно и пермишины конкретно упрямятся, это может привести компьютер к неработоспособности. Поэтому важно «ремонтировать» права доступа, я это делаю на всех своих Macintosh’ах. Для этой задачи существует множество платных и бесплатных утилит. Лучше всего воспользоваться Дисковой Утилитой – Disk Utility, или командой Терминала:

Sudo diskutil repairPermissions /

5. Очистка кэши экстеншенов.

6. Очистка кэши программ пользователя.

7. Очистка кэши системных программ.

Сильно много объяснять что такое кэш от анг. cache смысла нет. Для очистки кэши так же существует множество программ. Одна из них Onyx .

CRON скрипт для автоматического обслуживания. Используется для удаления временных файлов и логов. По умолчанию скрипт работает каждое утро, но так как большинство пользователей отключают свои компьютеры, CRON может не сработать. Скрипт работает в трех режимах: daily – каждый день, weekly – каждую неделю, monthly – каждый месяц. Запустить CRON можно «ручками» используя Терминал:

Sudo periodic daily

или по желанию weekly monthly

9. Обновление пребайдинга.

Пребайдинг – это способ сокращения времени необходимого при запуске исполняемых файлов в формате Mach-O. Например, это то, что делает Mac OS X в стадии оптимизации на этапе установки программного обеспечения системы или определенных приложений. Пребайдинг предназначен для ускорения системы, методом сокращения времени открытия программы. Похожий процесс происходит и в Linux, только называется Prelink.

Для любителей Терминала команда:

Sudo update_prebinding -root / -force

10. «Затрагивание» папки Extensions

Во время этого процесса происходит «затрагивание» папки где располагаются Kernel Extensions. Выставляется правильное время модификации и доступ к кекстам. Рекомендуется выбирать эту функцию только один раз, после установки новых кекстов. Процесс можно запустить также при помощи команды Терминала

Sudo touch /System/Library/Extensions

11. Применить выбранную задачу.

Выбрав, по крайней одну из функций, вам нужно будет нажать «Run Selected Task». Вам необходимо будет вести пароль администратора, так же приготовьтесь к перезагрузке компьютера.

Ядро

12. Делаем резервную копию основного ядра.

Очень простая процедура. Делает бэкап основного ядра (mach_kernel) системы. Желательно использовать перед установкой нового ядра. Следуйте инструкция программы, с какого диска вы делаете копию и куда.

13. Установить или Восстановить Ядро.

Один из самых безопасных методов установки ядра. Следуйте инструкциям утилиты, в зависимости что вы будете делать устанавливать или восстанавливать ядро.

14. Делаем резервную копию папки Extensions.

Происходит тот же процесс как и пункте 12, только копируется папка Extensions. Вам нужно выбрать куда вы хотите сохранить папку, процедура медленная может занять некоторое время.

15. Восстановление Extensions.

Противоположный процесс пунтка 14.

16. Установка кекстов.

Эта функция программы заменит вам утилиту Kext Helper b7, которую мы рассматривали выше. Полная автоматизация при установке кекстов.

Система и компьютер

17. Показать информацию «железе»/изготовителе.

Для использования этой функции вам нужно установить PCI утилтиу, затем перезагрузить компьютер. Это очень полезная утилита при подборке драйверов.

18. Восстановление операционной системы.

Если вы сильно «увлеклись» с кекстами или что-то перестало работать эта функция восстановит ваш компьютер и вернет его к после-установочное состояние.

19. Принудительно выключить компьютер.

20. Загрузить и установить драйверы.

Очень полезная штука. Функция автоматически подыщет «дрова» под ваше железо, вам только нужно выбрать место где вы хотите их сохранить. Затем утилита установит их сама.

21. Добавить EFI стринги/Boot Flag.

Как использовать эту функцию программы я нашел .

Сначала скажу зачем нужны Strings и почему они лучше, чем кексты. Причина как всегда банальна – обновления MacOS X. При обновлении не редкость, когда кексты меняются и модифицируются, вследствии чего нужно постоянно следить за «особо важными» и делать их резервные копии. Стринги же напротив – идеальный вариант для хакинтоша, установив один раз правильно Strings вы избежите всех этих «сюрпризов» при обновлении.

Кликнув по кнопке 21 увидим окно для работы со стрингами.

Видите эту «шестнадцетиричную кашу» в нижней области программы, вот с этим нам и придется работать, но не все так трудно как может показаться с первого раза. На самом деле OSX86Tools неплохо организована и достаточно удобна в работе. Сверху можно видеть иконки GFX Strings (Стринги видео), Audio Strings (Стринги аудио) и Ethernet Strings (Стринги сетевых интерфейсов).

Нажав на GFX Strings можно установить стринги видео, благо список поддерживаемых видеокарт большой, хотя здесь по большому счету представлены одни карточки Nvidia.

В самом низу есть один пункт, делающий OSX86Tools незаменимым инструментом в руках новичков при покорении Strings – Custom GeForce, выбрав этот пункт вы сможете при помощи удобного меню создать стринги для своей видеокарты самостоятельно!

Создаем свои GFX Strings

Например, создадим стринги для достаточно экзотичной видеокарты Nvidia GeForce 9600GSO.

В первом диалоговом окне необходимо выбрать объем памяти видеокарты, «наградим» нашу видеокарту 256Мб VRam.

Определим порты нашей 9600GSO, пусть будут два DVI.

Теперь стринги для нашей видеокарты готовы! Нужно их скопировать в буфер обмена…

Заменить нашими Strings ту самую «кашу» и нажать Apply changes to com.apple.Boot.plist.

После перезагружаемся и если все делали правильно, то ваша видеокарта начнет правильно определятся системой.

22. Установка EFI/ запуск FDISK

Еще одна полезная функция программы позволяющая установку EFI и не-EFI бутлоудыров Chameleon 1.0.11, PC_EFI v8, или Darwin). Мне она пригодилась при установке Хакинтош на нетбук, где я использовал USB флэшку на которой был установлен образ Mac OS.

Вот пока в все! Если у вас возникли трудности, вопросы и у вас есть что добавить ждем ваших комментариев!

Источник http://www.lifeoftech.net/?p=4558


Рассказывая об установке OS X, нельзя не коснуться темы кекстов. В сообществе Apple, объединенном принципом Think Different, любят называть привычные вещи другими именами. И кексты тому не исключение. Что же это такое? Слово “кекст” происходит от английского kext или kernel extension, т.е. расширение ядра. В виде кекстов реализованы практически все драйверы для OS X. Они используются для работы различных устройств в OS X. Но это не единственное их назначение, также, например, есть кексты отвечающие за правильные выключение и перезагрузку системы, переход в режим сна, за экономию энергии системой (Power Management) и многие другие функции. При загрузке системы ядро mach_kernel подгружает все кексты из специального кэша, а этот кэш, в свою очередь, периодически создаётся на базе системной папки для расширений ядра - /System/Library/Extensions. Важно понимать, что без правильно подобранной конфигурации кекстов нормальная работа OS X не возможна. Вообще тема кекстов распространена в гораздо большей степени в хаксообществе, нежели среди маководов. Apple не приветствует вмешательство пользователей в работу системы на низком уровне. А копаться в "самой совершенной в мире компьютерной операционной системе" - это удел хакинтошников. Отчасти это справедливо, поскольку большинство драйверов в OS X либо уже встроены (ассортимент маков все же не очень богат и комплектация в общих чертах типовая), либо реализованы в виде специальных установочных пакетов (с расширениями.pkg или.mpkg), при запуске которых от вас потребуется лишь ввести пароль, а всё остальное сделают скрипты. Apple way во всем... Хотя и не всегда всё так гладко: иногда при подключении периферии от посторонних производителей вам может достаться просто файл с расширением.kext. Так что маководы тоже не застрахованы от работы с кекстами. Если же у вас хакинтош, приготовьтесь к тому, что вам придётся перепробовать десятки разных кекстов, прежде чем вы заставите свой компьютер работать именно так, как хочется вам.

Как все устроено



Полагаю, мало кто из винюзеров задумывался над тем, как устроен драйвер, куда он устанавливается и как взаимодействует с системой. Написание и редактирование драйверов на взгляд обычного пользователя кажется чем-то за гранью фантастики. Еще бы, большинство драйверов упаковано в exe, снабжено красивыми установщиками, причем настолько красивыми, что пользователю и делать только остается, как со всех согласиться и перезагрузиться. Лишь в крайнем случае пользователь вместо красивой обертки получает кучу dll-ек, которую нужно ставить через Диспетчер устройств. В случае с хакинтошем главная проблема - это тотальная нехватка драйверов. При чем зачастую ввиду отсутствия официальной поддержки готового решения днем с огнем не сыщешь. Хотя не все безнадежно, иногда для того, чтобы завести упрямый сетевой адаптер или звуковую карту, достаточно немного подредактировать кекст. Как это делается? Для начала взглянем изнутри на такой типовой кекст, как . Он отвечает за работу клавиатуры, мыши и тачпада. Важный кекст. Что он из себя представляет?


Для начала это не файл. Но и не совсем папка. Это бандл (bundle). Это, надо сказать, типично Apple-вское явление, при котором папка с определенным расширением и структурой начинает вести себя как файл. При двойном щелчке по кексту в маке, мы получим сообщение с меню с выбором программы для запуска, в других системах мы увидим лишь папку с “расширением” .kext. Чтобы посмотреть потроха кекста в маке, нужно щелкнуть правой кнопкой по нему и выбрать пункт “Показать содержимое пакета”. Внутри мы увидим папку Contents, далее MacOS, Plugins, Resourses, Info.plist.


В папке MacOS находится исполняемый бинарник без расширения. Это и есть сам драйвер. Его тоже можно патчить (часто это делается скриптами), но для этого нужно быть специалистом несколько иного уровня. Оставим его. В папке Resourses мы увидим языковые модули с расширением.lproj (ничего не напоминает, пользователь iPhone?). Еще есть файл Info.plist. Собственно, он нам и нужен, поскольку именно его правка и снимает множество проблем. Так же есть Plugins. Эта папка есть не во всех кекстах, только в “сложных”. А поскольку этот кекст охватывает три совершенно разных устройства, под каждое из них есть свой кекст с аналогичной структурой. Иногда еще в папке с кекстом можно найти файлик versions.plist. Там записываются данные о версии драйвера. В частности он есть в AppleIntelCPUPowerManagemant.kext, отвечающий за управление питанием. Но нас интересует в первую очередь Info.plist.


По своей структуре это обычный xml, поэтому открывать его можно как в обычном тестовой редакторе, так и в утилите типа PlistEditor. В файле есть определенные ключи (key) и строковые значения (string). В подавляющем большинстве случаев хакинтошников интересует раздел IOKitPersonalities, в котором заданы параметры работы устройства, а также id оборудования и производителя. Это очень важный момент, поскольку очень часто драйвер физически может работать с вашим устройством, но банально не подгружается, поскольку id вашего оборудования не совпадает с id устройств, записанных в Info.plist. Правка id помогает завести формально неподдерживаемые ревизии wifi-адаптеров, картридеров, звуковых карт и прочего оборудования. Во многом случаях есть готовые инструкции по правке Info.plist или работе со скриптами-патчами. И пусть это вас не смущает, поскольку сложного здесь ничего нет. После правки кекста нужно, как всегда, восстановить права доступа через Дисковую утилиту и перезагрузиться.

Установка кекстов



Помимо довольно простой структуры драйверов у маков есть еще одно достоинство - это довольно простая установка кекстов. В общем виде установка кекста сводится к трем действиям:
1. Копирование кекста в папку /System/Library/Extensions*
2. Исправление прав доступа
3. Удаление и переформирование кэша ядра для загрузки системы

*Сразу оговорюсь, что в случае с загрузчиком типа Chameleon некоторые кексты можно класть в /Extra/Extensions

Последний пункт можно обойти в случае загрузки с ключем UseKernelCache=No. Что нам это дает? Правильно, это дает возможность оперативно менять кексты даже если система не грузится и даже если у вас другого мака под рукой нет. Так то, даже драйвера в макось при необходимости можно устанавливать папочным способом, хоть и не рекомендуется. Второй пункт частично решается ключем -f (тот же ApplePS2Controller может работать и без лечения прав). По крайней мере при наличии совместимых кекстов ключи -f и -s позволят вам загрузиться в консоль и поправить права доступа. Лечение прав на примере FakeSMC уже рассматривалось в предыдущей статье .
В случае ручной установки кекстов на “живой” системе все действия можно проделать в Терминале:
sudo -s (получаем права суперпользователя)
Password: (вводим пароль)
cp -r -v путь/к/кексту.kext /System/Library/Extensions/ (копируем кекст в /S/L/E)
rm -r -v /System/Library/Caches/com.apple.kernelcaches/kernelcache
rm -r -v /System/Library/Extensions/Caches/*
rm -r -v /System/Library/Extensions.mkext (чистим кэш)
chown -R root:wheel /System/Library/Extensions/* (устанавливаем владельцем пользователя root и группу wheel)
chmod -R 755 /System/Library/Extensions/* (лечим права)

diskutil repairpermissions /

Для еще большего упрощения жизни пользователей OS X придуманы также автоматические средства установки. Самым известным из них является простенькая программка . Она умеет практически всё, что связано с кекстами: установку, исправление прав доступа, перепаковку кэша. От пользователя потребуется ввести пароль и подождать некоторое время до завершения всех служебных процедур.

При всех этих талантах утилита от имеет только одну кнопку в интерфейсе (воистину Apple way!). Есть несколько способов работы с этой программой:

1) Перетаскивание кекста на значок программы: в этом случае начнётся полный комплекс процедур по установке кекста в систему.

2) Перетаскивание сразу нескольких кекстов на значок программы: утилита установит кексты по очереди.

3) Запуск самой утилиты. В этом случае будет запущена проверка прав доступа к уже установленным кекстам и перестроение кэша.

Пока идут служебные процедуры, в окне программы крутится индикатор-ромашка, а вам предлагается созерцать лог происходящих событий. По завершении работы Kext Utility кнопка Cancel изменит своё название на Quit. После перезагрузки все новые устройства, для которых вы установили кексты, должны опознаться системой.

Манипуляции с кекстами в консоли



Помимо команд для собственно установки в OS X есть ряд полезных команды для работы с уже установленными кекстами. Приведу краткий перечень (команды выполняются в консоли или Терминале с правами суперпользователя).
Для просмотра загруженных кекстов - kextstat
Для загрузки нужного кекста - kextload /System/Library/Extensions/Имя_файла.kext
Для выгрузки кекста: sudo kextunload /System/Library/Extensions/Имя_файла.kext

Описание кекстов



Привожу описание лишь некоторых кекстов, поскольку их много.

1. Управление питанием

Fakesmc.kext- это эмулятор System Management Controller (SMC) для OS X с открытым кодом. Без этого кекста OS X не запустится на PC. В дополнение к нему модули-индикаторы ACPISensors.kext и IntelCPUMonitor.kext.

AppleIntelCPUPowerManagement - это стандартный кекст для процессоров Intel, отвечающий за управление питанием. В случае полной совместимости будет работать из коробки, в случае неполной - потребуется или патч, или полное отключение. Использование оригинального AppleIntelCPUPowerManagement.kext возможно, если ваш процессор поддерживает инструкции SSE4 и использовании отредактированного DSDT (должна быть исправлена HPET-секция)

NullCPUPowerManagement.kext - отключает оригинальный AppleIntelCPUPowerManagement.kext.

OpenHaltRestart.kext - с этим кекстом выключение/перезагрузка компьютера проходит правильно (выключаются кулеры, жесткие диски и т.д.).

EvOreboot.kext - Аналог OpenHaltRestart.kext

Sleepenabler.kext - восстанавливает работу сна, если вы используете NullCPUPowerManagement.kext (AppleIntelCPUPowerManagement.kext отключен).

EvOSpeedStep.kext - позволяет системе использовать технологию SpeedStep для вашего процессора. С помощью нее при простое частота вашего процессора понижается, снижается его энерпотребление, тепловыделение. Сама частота увеличивается пропорционально нагрузке на процессор. Но этот кекст работает не всегда, также при включенном SpeedStep производительность снижается.

VoodooBattery.kext и AppleSmartBatteryManager.kext - кексты для отображения заряда батареи на ноутбуках. До Mac OS X 10.6 работали полностью самостоятельно, начиная с Mac OS X 10.7, требуется правка DSDT.

2. Видео

AppleIntelHDGraphics.kext и AppleIntelHDGraphicsFB.kext - оригинальные кексты для видеокарт Intel HD3000 и выше. Если у вас именна эта серия видеокарт, то замена скорее всего не потребуется

GeForce.kext, NVDAGF100Hal.kext, NVDAResman.kext - оригинальные кексты для видеокарт NVidia различных серий.

nvinject.kext, nvenabler.kext, nvkush.kext, natit.kext и другие - инжекторы видеокарт NVidia, то есть ваша видеокарта работает корректно (можно выставлять разрешение, частоту обновления, поворот изображения)

FramebufferDisabler.kext - модифицированный Generic disabler.kext для отключения "framebuffer" кекстов: NVDAResman.kext, ATIFramebuffer.kext, AppleIntelIntegratedFramebuffer.kext, которые вызывают панику ядра при загрузке с установочного диска или в уже установленную систему, в которой не работает графическое ускорение.

EVOenabler.kext - инжектор любой видеокарты, то есть ваша видеокарта работает корректно (можно выставлять разрешение, частоту обновления, поворот изображения). Чтобы настроить этот кекст под свою видеокарту, вам необходимо изменить имеющиеся значения в Info.plist на свои. По умолчанию прописана ATI 4890.

3. Звук

AppleHDA.kext - оригинальный кекст на звук. Совместим с большим количеством карт Realtek серии ALC. Кексты на звук следует по кодеку, скажем, ALC269 и т.п. Часто требует патча под конкретную звуковую карту.

VoodooHDA.kext - кекст, позволяющий работать большинству звуковых кодеков. Не совместим с AppleHDA.kext (вызывает панику ядра, если AppleHDA не выключить через HDADisabler или удалить). По качеству исполнения хуже оригинального AppleHDA и менее стабильный.

4. Сетевые карты и wifi

AttansicL1eEthernet.kext - необходим для работы сетевых карт на чипе Attansic L1e.

SKGE.kext - с помощью него работают некоторые сетевые карты на чипе Marvell, в частности Marvell Yukon 88E8001.

RealtekRTL81xx.kext - кекст под сетевые карты Realtek серий 81xx/82xx

IO80211Family.kext - стандартный кекст для wifi-адаптеров. Совместим с карточками с чипсетами Atheros и Broadcom. Для отдельных серий карточек может потребовать правка id в Info.plist.

5. SATA/IDE

IOATAFamily.kext - добавляют поддержку PATA (IDE) устройств большинству компьютеров. Также позволит вам использовать SATA устройства без включенного AHCI-режима на большинстве материнских плат с чипсетами ICH6/7/8/9/10.

JMicronATA.kext - необходим для правильной работы контролера JMicron ATA (IDE) в системах с 4 гигабайтами оперативной памяти и больше.

AHCIPortInjector.kext - добавляет поддержку AHCI-контролеров, которые не поддерживаются стандартным кекстом (для ICH9 и предыдущих поколений ICH чипсетов).

LegacyAppleAHCIPort.kext - отображает название вашего SATA контролера вместо Unknown AHCI controller в System Profiler.

LegacyJMicronATA.kext - добавляют поддержку IDE на контролере JMicron большинству компьютеров.

ApplePS2Controller.kext и AppleACPIPS2Nub.kext - стандартные кексты для PS/2 клавиатур, мышек и тачпадов. Зачастую для работы требуется патч.
PS2Controller

VoodooPS2Controller.kext - кексты для безнадежных PS/2 клавиатур, мышек и тачпадов. Начиная с Mac OS X 10.7 прекратил развиваться.

Post scriptum


Все скриншоты из статьи сделаны на реальной рабочей системе. Кексты и описания взяты с ресурса .
Alex_G_Sam Alex_G_Sam

«кекст » - транскрипция английского сокращения kext от «kernel extension» , т.е. расширение ядра. В виде кекстов реализованы практически все драйверы для Mac OS X. При загрузке системы ядро Mac OS подхватывает все кексты из специального кэша, а этот кэш, в свою очередь, периодически создаётся на базе системной папки для расширений ядра. Непонимание механизма работы Mac OS X с кекстами чревато большими проблемами с загрузкой компьютера.

Традиционно ответим на скептический вопрос «зачем это нужно?». Если у вас не хакинтош и если вы не планируете подключать к Маку никакого дополнительного оборудования от посторонних производителей (экзотические сканеры, мыши и клавиатуры, модемы и т.п.) - то действительно незачем.

Дело в том, что большинство драйверов для Мака реализованы в виде специальных установочных пакетов (с расширениями.pkg или.mpkg), при запуске которых от вас потребуется лишь ввести пароль, а всё остальное сделают скрипты.

Есть два способа установки кекстов - ручной и автоматический. Сегодня мы покажем вам автоматический, потому что он гораздо проще, а наша статья адресована и пользователям Маков, и владельцам хакинтошей. А вопросы ручной установки драйверов в систему мы рассмотрим в нашем «хакинтошном» цикле, т.к. это требует некоторых дополнительных знаний от пользователя.

За автоматизацию установки кекстов следует сказать большое спасибо нашему соотечественнику по имени cVad, который создал для хакинтошного сообщества программку Kext Utility. Она умеет абсолютно всё, что связано с кекстами: установку, исправление прав доступа, запаковку кэша. От пользователя потребуется ввести пароль и подождать некоторое время до завершения всех служебных процедур.

При всех этих талантах утилита от cVad имеет только одну кнопку в интерфейсе. Есть несколько способов работы с этой программой:

1) Перетаскивание кекста на значок программы: в этом случае начнётся полный комплекс процедур по установке кекста в систему.

2) Перетаскивание сразу нескольких кекстов на значок программы: утилита установит кексты по очереди.

3) Запуск самой утилиты. В этом случае будет запущена проверка прав доступа к уже установленным кекстам и перестроение кэша.

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

По завершении кнопка Cancel изменит своё название на Quit. После перезагрузки все новые устройства, для которых вы установили кексты, должны опознаться системой.

P.S. Небольшое отступление для пользователей Snow Leopard. В новой операционке механизм работы с кекстами осложняется тем, что теперь есть две архитектуры для расширений ядра: 32-разрядная и 64-разрядная. 32-битные кексты ни в какую не захотят работать в 64-битном режиме системы. Помните об этом при загрузке и установке.

ATHEROSL1CETHERNET AR813X, AR815X

Кекст подходит для всех систем, начиная от 10.7 и заканчивая уже любимой 10.10.5. Поддерживаются сетевые карты от Atheros, указанные здесь:

AR8131, AR8132;
AR8151, AR8152;

  • Рекомендуем положить кекст в Кловер после установки. Можно установить с помощью Kext Utility или Kext Wizard (до 10.10.5);
  • Перезагрузиться;
  • Радоваться!

Обратите внимание, нахождение данного сетевого кекста в папке Clover во время установки может вызвать проблемы.

NULLETHERNET.KEXT (АКТУАЛЬНАЯ ВЕРСИЯ: 2014/R.1016)

Данный кекст предоставляет возможность завести AppStore и iCloud даже без карты Ethernet и Wi-Fi. Достаточно просто установить кекст, и проинжектировать устройство-пустышку в DSDT (патч для этого также лежит в папке), и произвести завод облачных сервисов, будто у нас есть Ethernet, через usb-свистки и прочее оборудование.

Устанавливайте, только если уверенны в его необходимости.

VOODOOPS2CONTROLLER.KEXT (ВЕРСИЯ: 2016/R.0616)

Voodoops2controller – кекст, который заставит работать порты PS2 на компьютере, а так же клавиатуру и тачпад на ноутбуке. Вещь незаменимая, если у вас не ELAN/Synaptic, или же вы просто нуждаетесь в установке – просто закиньте этот текст в SLE или же в “/EFI/CLOVER/kexts/10.x”, и радуйтесь рабочей клавиатурой, мышкой и трекпадом.

Если не закинуть рядом с кекстом VoodooPS2Daemon, в последних версиях из GitHUB паника неизбежна. Т.к. это утилита – ее нужно выполнить из консоли, и убедится, что если у вас версия выше 1.7.4 – что отсутствуют файл
/System/Library/Extensions/AppleACPIPS2Nub.kext
/System/Library/Extensions/ApplePS2Controller.kext
--
Если версия 1.7.8 и выше – обязателен к установке рядом с кекстом VoodooPS2Daemon, и его выполнении в консоли.

SYNAPTIC TOUCHPAD (ВСЕ ВЕРСИИ)

Данный кекст обеспечит максимальную работоспособность вашего Synaptic-тачпада и клавиатуры.

Схема установки:


Скачать нужную ревизию;

ELAN SMARTTOUCHPAD PS2 (ВСЕ ВЕРСИИ)

Данный кекст обеспечит максимальную работоспособность вашего ELAN-тачпада и клавиатуры.
Схема установки:
Удалить все предыдущие кексты из /S/L/E, /E/C/k/10.x, и из прочих мест, где могут быть кексты;
Скачать нужную ревизию;
Установить с помощью Kext Utility или Kext Wizard (до 10.10.5), или положить в кловер.
Разные кексты под разную аппаратную версию (это можно посмотреть в AIDA64 на Win):

  • Рекомендуем положить кекст в Кловер. Можно установить с помощью Kext Utility или Kext Wizard (до 10.10.5);
  • Перезагрузиться;
  • При отсутствии результата пофиксить права на диске, или же включить Fix_LAN;

ATHEROS AR81X1, AR81X2 V1.0.2

Кекст подходит для всех систем, начиная от 10.6.8 и заканчивая уже любимой 10.10.5. Поддерживаются сетевые карты от Atheros:

AR8131, AR8132;
AR8141, AR8142;
AR8151, AR8152;
AR8161, AR8162;
AR8171, AR8172.

Обратите внимание, в версиях выше 10.10.5 может вызывать панику ядра.

GenericUSBXHCI. kext

Кекст, необходимый для завода USB 3.0 на ненативных материнских платах и 99% ноутбуков. Так же исправляет кракозябры в названии при отображении флэшек и внешних жестких дисков в Finder.

Работает во версиях, включая Sierra 10.12.6. В High Sierra не испытывал.

HFSPlus.efi

Ускоряет загрузку загрузчика Clover. В комплекте с официальным Кловером идет драйвер VboxHFS.efi, который лицензионно чистый и понимает линки, но работает медленнее, чем эппловский HFSplus.efi.

VoodooHDA

VoodooHDA.kext – звуковой драйвер, заменяющий оригинальный AppleHDA.kext. Самый простой способ завести звук на хакинтоше.

Список поддерживаемых звуковых карт:

2-х канальные: ALC231, ALC260, ALC262, ALC268, ALC269, ALC272
6-ти канальные: ALC662, ALC663, ALC665
8-ми канальные: ALC1150, ALC861, ALC861-VD-GR, ALC880, ALC882, ALC883, ALC887, ALC888, ALC888T, ALC885, ALC888S, ALC888S-VC, ALC888S-VD, ALC889, ALC892, ALC898

Если у вас не сохраняются настройки VoodooHDA при выходе из системы или после перезагрузки. Рекомендую два варианта:

Вариант 1:

  • Удалить установленную версию;
  • Установить VoodooHDA-v2.8.2;
  • Перезагрузить;
  • Добавить VoodooHDASettingsLoader.app в автозагрузку;
  • Скачать последнюю версию кекста с сайта разработчиков;
  • Установить последнюю версию с помощью Kext Utility;
  • Снова перезагружаем и радуемся отличному звуку и работающему сохранению настроек VoodooHDA!

Вариант 2:

Перебираем версии пока не добьемся желаемого сохранения и отличного звучания.

Verde.kext

Для владельцев видео карт Radeon потребуется Verde.kext, при установке всех версий выше 10.9.5 без него видео карта не заведется, будете наблюдать черный экран после загрузки системы.

RealtekRTL8111

Поддерживает сетевые карты Realtek RTL8111/8168 B/С/D/Е/F/G.

Работает во всех версиях начиная с 10.8 до 10.12.6(Включительно).

ACPIBatteryManager.kext (RehabMan версия: 2016/R0628)

ACPIBatteryManager – кекст для отображения батарейки в системе. Часто зависим от правок в DSDT.

FakePCIID и плагины (RehabMan)

Начиная с Haswell, любое приложение или сервис может проверить PCI-ID, не смотря на то, что было сообщено на этапе инициализации.
FakePCIID перехватывает эти запросы, и возвращает значение, которое мы указали через FakeID в клевере, или другим образом.
Плагины для FakePCIID имеют очень разносторонний функционал, вся работа описана .

ACPIDebug (RehabMan)

Тем, кто знает, что это за кекст, объяснять его работу не нужно.
А тем, кто не знает - он и не нужен.

BrcmPatchRAM (the-darkvoid, RehabMan)

Подгружает прошивку Bluetooth’а для чипов Broadcom.

Kext Lilu и плагины

Патчер кекстов и процессов. Ни на что не влияет сам по себе, действует только с соответствующими плагинами, которые указаны ниже.
Некоторые плагины здесь не указаны, т.к. они выходят часто, и некоторые очень узконаправлены.
Все известные плагины - github.com .
Информация - github.com .

Кекст для динамического патчинга AppleHDA. Достаточно правильного Layout’а, и звук работает.
Таблица поддерживаемых кодеков и лейаутов - github.com .
Инструкции - github.com

Патчер пользовательского уровня для DRM-защищённого соединения.
То есть, позволяет воспроизводить фильмы/клипы в iTunes, и подобные операции.
Инструкция - github.com .

Производит необходимые для AMD GPU патчи.
Заводит сон, создаёт фреймбуфер «на ходу», загружает 8000+ карты без Intel HD .
Не кекст, а сказка для радеона!
Инструкции - github.com .

Патчит компонент CoreDisplay, разрешая большие разрешения для Intel HD и Nvidia график.
В момент написания этой страницы мы не имели подтверждения его работоспособности.
Инструкция - github.com .

Патч, разрешающий использовать 3 и 25 моды сна.
Установить моду сна можно командой: sudo pmset -a hibernationmode 25
Подробнее о модах сна можно найти в обсуждениях на applelife.ru и insanelymac.com
Страница проекта - .


IntelGraphicsDMVTFixup
(BarbaraPalvin) - github.com

Патч для изменения необходимого количества выделенной памяти (DMVT) для Intel HD график Broadwell и выше.
Рекомендуется использовать только в случае, если вы не можете изменить свой DMVT.
Также необходимо выключить патчи, которые позволяли это обходить, и пересобрать кэш.
Страница проекта - github.com .

Разрешает использовать Nvidia-графики на SMBios’ах, контролируемых AppleGraphicsDevicePolicy.kext.
Страница проекта - .

Разрешает использования NightShift (10.12.4+) на SMBios’ах, которые его не поддерживают (2011 год и ниже).
Страница проекта - github.com .

Звуковые кексты

AppleALC (vit9696) - github.com

Плагин для Lilu, который вынесен выше в отдельную категорию кекстов. Информация о нём там же.

На данный момент этот способ устарел морально, и все платформы уже присутствуют в AppleALC.
Вряд ли мы будем перерабатывать эту статью. Перейдите либо на AppleALC, либо на VoodooHDA.

Универсальный драйвер звука. Помогает завести практически любой звук.
Например, HDMI-звук на Nvidia Pascal, или ALC269 без перебора кучи лейаутов.
Помните – вуду даёт отличный звук после отличной настройки!
Инструкция - applelife.ru .


CodecCom
m ander (TimeWalker, RehabMan) - bitbucket.org

Сodec Commander используется в качестве решения, которое позволяет запускать внешний усилитель EAPD на HDA кодеках ноутбуков и некоторых ITX плат. Обычно такие усилители сидят на ноде колонок или наушников. Когда кодек теряет питание, усилитель EAPD тоже теряет питание и включить его обратно без дополнительной помощи невозможно. Также, с помощью hda-verb, можно управлять состоянием нод через терминал или aml-таблицу. Инструкция по настройке будет позже на сайте, включая очень интересные PDFки.
Информация -

Вы решились установить macOS на свой компьютер? Скорей всего для вашего Хакинтоша понадобятся специальные драйвера или kext. О том какие вам необходимы и где их скачать, вы узнаете из этой статьи.

Установить Хакинтош первый раз всегда очень сложно, чтобы там не говорили, необходимо иметь совместимое железо, найти установщик (дистрибутив) с операционной системой MacOS, записать на флешку, настроить BIOS и наверное самое главное — это забросить в установщик kext-ы (драйвера), чтобы установка прошла удачно и система работала.

Ранее мы рассказывали что необходимо, чтобы установить хакинтош:

  • Скачивание
  • Создание загрузочной флешки

Теперь же поговорим о kext (kernel extension). Kext — это драйвера, но для macOS. Они необходимы, для того чтобы подружить операционную систему с вашими комплектующими компьютера Hackintosh.

Можно разделить kext-ы на два типа — обязательные и необязательные. Если в случае необязательных kext у вас может не заработать что-то из адаптеров или периферии (сетевой адаптер, клавиатура), то в случае с обязательными, без них система не будет работать вообще. Приступаем рассказывать вам за кексты Хакинтош!

Kext

FakeSMC - самый главный кекст без которого не обойдется ни один Хакинтош (обязательный). В оригинальных компьютерах и ноутбуках MAC есть специальный чип, SMC, который следит за состоянием комплектующих. В обычных компьютерах его нет, поэтому чтобы macOS ничего не заподозрила и нужен FakeSMC.
Скачать FakeSMC

VirtualSMC - аналог FakeSMC, только от другого автора. Устанавливают или FakeSMC, либо VirtualSMC. Использовать оба НЕЛЬЗЯ !
Скачать VirtualSMC

Lilu - патчер системных процессов системы, на базе которого работают другие kext заводящие видео, звук, сеть.
Скачать Lilu

FakePCIID - подменяет идентификатор драйвера, заставляя работать с текущими комплектующими операционную систему macOS. В состав FakePCIID входит множество kext которые работают только при наличии FakePCIID (Intel Audio HDMI, Intel HD Graphics, Broadcom Wi-Fi, сеть Broadcom BCM57XX).
Скачать FakePCIID

Null-Ethernet -обязателен тем компьютерам и ноутбукам, у которых отсутствует Ethernet порт.
Скачать Null-Ethernet

NullCPUPowerManagement - для Хакинтошников которые ставят macOS на Intel Pentium .
Скачать

Сеть

IntelMausiEthernet - Для сетевых адаптеров от компании Intel.
Скачать IntelMausiEthernet (альтернативный драйвер от других разработчиков)

AtherosE2200 - кекст для всех моделей адаптеров Atheros.
Скачать Atheros

Broadcom NetXtreme 57xx - Для сетевых адаптеров Broadcom. Входит в комплекте с kext FakePCIID и работает только с ним.

Видео

Intel HD Graphics - входит в комплект FakePCIID и работает только с ним.

WhateverGreen - kext для видеокарт Radeon, Nvidia, Intel. С версии 1.2.0 объединил в себя три кекста IntelGraphicsFixup, NvidiaGraphicsFixup, Shiki .
Скачать WhateverGreen

IntelGraphicsFixup - исправления для HD 4000/4400/4600, Sky Lake и Kaby Lake Graphics. Работает только c Lilu.
Скачать IntelGraphicsFixup

NvidiaGraphicsFixup - исправления для графики Nvidia. Работает только с Lilu.
Скачать NvidiaGraphicsFixup

Shiki - Необходим если возникают проблемы при воспроизведении DRM видео, улучшает работу аппаратного декодирования, устанавливается опционально. Работает только с Lilu.
Скачать Shiki

Звук

AppleALC - драйвер звука, работает только c Lilu.
Скачать AppleALC

VoodooHDA - универсальный драйвер звука, если есть проблемы со звуком, точней если его вообще нет, то вам необходим VooDooHDA.
Скачать

HDMIAudio - Данный kext может помочь вам активировать вывод звука через HDMI порт видеокарты.
Скачать

USB

USBInjectAll - заводит USB на macOS, работает с версий ОС 10.11 и новее. В 99,9% случаях необходим для установки.
Скачать USBInjectAll

XHCI-200-series-injector, XHCI-300-series-injector - рекомендуется добавить данный kext в момент установки системы, для систем с процессором SkyLake, Kaby Lake и новее. Необходим для активации USB 3.0 портов.
Скачать XHCI-series-injector

XHCI M ux - для включения EHCI . Для процессоров Intel Haswell и новее. Входит в комплект FakePCIID и работает только с ним.

SATA

SATA-200-series-unsupported.kext и SATA-100-series-unsupported.kext — для материнских плат, у которых возникают проблемы с SATA.
Скачать

Для Тачпадов и Клавиатуры

ApplePS2SmartTouchpad - для тачпадов Synaptics, ELAN, FocalTech.
Скачать ApplePS2SmartTouchpad

VoodooPS2Controller - для всех тачпадов и включения PS/2 интерфейсов.
Скачать VoodooPS2Controller

Батарея

ACPIBatteryManager.kext - для того чтобы macOS отображала батарейку. Скачать ACPIBatteryManager.kext

Надеюсь вам хватит тех kext-ов что мы привели здесь, а других вам не понадобиться.

Какие Kexts скачивать для вашего компьютера?

Обязательно!

  1. FakeSMC, либо VirtualSMC
  2. Lilu
  3. WhateverGreen
  4. USBInjectAll

Если материнская плата B или H, 100’ой или 200’ой серии, скачать SATA-series-unsupported .

Для материнских плат 200’ой, 300’ой серии XHCI-series-injector .

У вас еще остались вопросы? Пишите их в комментариях, рассказывайте, что у вас получилось или наоборот!

Вот и все! Больше полезных статей и инструкций читайте в разделе . Оставайтесь вместе с сайтом , дальше будет еще интересней!

Вместо эпиграфа:
Говорим драйвер - подразумеваем кекст

Честно говоря, сегодня будет не совсем полноценный, так сказать, шаг. Но от этого он будет не менее полезным. И задумывался он как ответ на некоторые вопросы, появляющиеся в комментариях. Я постараюсь дать несколько полезных советов и развеять некоторые страхи. Или не развеять. В общем посмотрим, что получится 🙂

Предыдущие 3 части можно найти или по тэгу .

Развеивание страхов

Руководствуясь своим каким-никаким опытом, я могу предположить, что наибольшее нервное напряжение возникает в случае какого-либо некорректного действия пользователя, в результате которого вроде как нормально работающая система перестает загружаться. Что же делать в этом случае?

  1. Прежде всего, нужно вспомнить - что же такого было поставлено, что система перестала грузиться?
  2. Попробовать загрузиться в safe mode. Для этого перед загрузкой вместо всяких ключей (-v или -s) вводим help и внимательно читаем. По-моему, могут помочь ключи -F (игнорирование файла конфигурации) и наш главный козырь -x (загрузка в безопасном режиме с использованием стандартных драйверов).
  3. Если загрузиться в safe mode получилось - то руками удалить то, что устанавливалось. Обычно все кексты лежат в /System/Library/Extensions/ .
  4. Почитать форум InsanelyMac и найти там детальную инструкцию установки драйверов для своей видео-карты, сетевого адаптера или любого другого оборудования. Поверьте, в 95% случаев вы точно узнаете - где все взять и как его установить. Либо вы узнаете, что для этого оборудования драйвера нет.

А вот теперь самое главное:

Если система сломалось, а до этого работала - не бойтесь отформатировать раздел и заново установить более-менее «рабочую» конфигурацию Leopard’a . Обычно все проблемы возникают, и их можно решить, в самом начале, до момента постоянного пользования Хакинтошем.

Это нормальная практика, ничего тут такого удивительного нет. Большинство людей, с которыми я общался, в самом начале переустанавливали систему не менее 15-30 раз. Поэтому запаситесь терпением.

Удаление видео-драйверов

Этот пункт я вынес отдельно потому что у меня для вас есть небольшой сюрприз. В описании уже устаревшего (10.5.2) есть отдельный абзац посвященный этой проблеме:

If you have problems on reboot with video (blue or black screen):
All you have to do is just press F8 at Darwin’s prompt and then type -s (single user mode) then at root type mount -uw / and /movevideodrivers then it will be prompt to move video drivers by class (nvidia ; ati ; or intel gma) voila! type yes to confirm or enter to skip !

Что в переводе значит следующее:

Если у вас появились проблемы с видео (голубой или черный экран): все что вам надо -это загрузиться с ключем -s (в single user mode), потом от рута запустить 2 команды: mount -uw / и /movevideodrivers . После этого у вас спросят какой видео-драйвер у вас стоит (nvidia, ati или intel gma). Отвечаем yes для подтверждения и нажимаем enter для пропуска. Вуаля! Система грузится.

Все бы ничего, но этот скрипт был доступен только для Kalyway и больше ни для какой другой сборки. Я очень долго его искал и наконец-то подготовил вам сюрприз. Перед тем, как ставить драйвера для видео скачайте и положите в / (рутовый раздел) вот - да-да, это тот самый movevideodrivers . После этого нужно будет зайти в терминал и выставить ему права на запуск. Если я правильно помню, хватит такой команды:

sudo chmod +x /movevideodrivers

Все, после этого можно будет экспериментировать с видео. И сейчас я расскажу как.

Pacifist - наше всё

Утилита предназначена для работы с пакетами.pkg, образами.iso и.dmg, кучей архивов вроде.zip, .tar, .tar.gz и пр. Кроме этого, он еще умеет открывать установочные диски (а в нашем случае - любой диск с любой сборкой). В добавок, он может извлекать лишь некоторые пакеты из архивов. Именно эта функция нам и нужна.

Программа платная (shareware) и стоит 20$, но в бесплатном режиме придется всего лишь подождать определенное время перед возможностью работать (секунд 20). А функционал вроде не урезанный.

Так вот, после того, как мы запустим утилиту и выберем «Open Apple install disk» Pacifist просканирует его и покажет весь список пакетов в виде дерева каталогов. Структура дерева будет примерно соответствовать аналогичному меню при выборе . По этой структуре (или поиском в приложении) можно найти интересующий нас драйвер, и нажав на кнопку Install установить его в систему. При этом придется ввести свой пароль.

После этого перезагружаемся - если опять черный/голубой экран - используем /movevideodrivers и заново пытаемся установить подходящий драйвер.

Установка kext’ов

Для начала отмечу, что kext’ы (kernel extension) - это расширение ядра системы. В Windows аналогичным понятием являются драйверы. Бывает, что на том же InsanelyMac в качестве дополнению к посту является рабочий кекст для запуска wifi, видео или сетевого адаптера. Установить его можно вручную (но это сопряжено с некоторой головной болью), а можно воспользоваться утилитой Kext Helper B7 (обычно она идет в комплекте с любой сборкой).

После этого нужно будет перезагрузиться и проверить - корректно ли установился драйвер. А вот удалять кексты нужно руками из папки /System/Library/Extensions/ .

Некоторые решения поставляются уже в виде.pkg - обычного инсталлятора. Поэтому установить драйвер будет еще проще.

Удачной установки 😉