21 Марта 2024
28

Виртуальная машина MacOS 13+ на процессорах AMD (OpenCore)

Всем привет. Делюсь своими изысканиями по запуску виртуальных машин MacOS на процессорах AMD. Возможно кому-то будет полезным:
Предыстория: в наличии несколько виртуалок, с которыми долгое время не было никаких проблем. Версии - от Mojave до Monterey, они даже обновлялись штатно. Далее, при апдейте на Ventura/Sonoma ловим кернел панику - никакие рекомендации из интернета не помогли. Глаз пал в сторону хакинтоша, но как его конфигурировать под вмварь тоже оказалось не совсем понятным, поэтому и напишу этот гайд:
вводные - Ryzen 5950X, Windows 10, VMware Workstation 16.2 (была версия 16.0, пока не столкнулись в проблемой апдейта макоси).

Что понадобится (чем пользовался лично я):
OCAT - графический редактор plist
ProperTree - еще одна редачилка plist'a, мне через нее было удобно копипастить блок с патчем для AMD (удобно открыть patches.plist из репы, и выдернуть оттуда весь блок patch, чтоб вставить его в наш конфиг)
Рекомендация по настройке конфига под амуде
Готовые SSDT для нубасов вроде меня (насколько я понял это таблицы с ID оборудования, которое инициализируется при старте ОС. Что-то подобное можно создавать самому уже на конкретном железе. У меня стоял вопрос - а каким оно должно быть и как его создать на VMware, возможно кто-то из шарящих в теме пояснит в комментах, как это работает, и как это связано с DSDT таблицами)
Гайд по EFI драйверам и кекстам - по кекстам я ниже еще отпишу. А драйвера я оставил все, которые идут с редакцией OpenCore, но не все они обязательны.
Ну и загрузчик OpenCore собственной персоной
Кастомный .vmdk диск, с которого мы будем бутаться. (создаем сами)
Выкладываю свою версию EFI - для ЛЛ, но не факт, что именно с ней у вас все взлетит.

Теперь по OpenCore, что он из себя представляет:
Нас интересует версия X64, внутри есть папка EFI, ее в дальнейшем нужно будет закинуть на наш загрузочный раздел. При включении нашей виртуалки первым делом бутается /EFI/BOOT/BOOTx64.efi, который затем запускает /EFI/OpenCore.efi (если вы будете в firmware виртуалки указывать файл загрузчика, указывайте путь к BOOTx64.efi)
Что еще внутри папки EFI :
EFI/OC/ACPI - тут лежат SSDT/DSDT таблицы оборудования. Если удалять лишнюю, обязательно нужно проверить, чтоб не было ссылок на нее в config.plist иначе будет краш.
EFI/OC/Drivers - тут лежал драйверы .efi. OpenRuntime.efi и HfsPlus.efi обязательны, я не стал удалять лишние драйвера, но ради интереса поигрался и выяснил, что без OpenCanopy.efi, OpenLinuxBoot.efi, OpenLegacyBoot.efi - загрузчик не взлетал. Насколько я понял, эти драйвера не влияют на дальнейшую работу макоси, а сугубо отвечают за работоспособность загрузчика и его возможности.
EFI/OC/Kexts - тут валяются расширения ядра (kext - kernel extension), нужны для успешного запуска самой макоси, а так же для корректной инициализации и работы устройств.
Любой хакинтош начинается с Lilu.kext, затем должен идти фейковый SMC (я заводил тачку с VirtualSMC.kext), потом уже все остальное.
Их последовательность определяется конфигом config.plist, в каком порядке они указаны, в таком они и будут инжектиться при загрузке ОС.
Экспериментальным путем выяснено, что система не бутается без:
AppleMCEReporterDisabler.kext - Required on macOS 12.3 and later on AMD systems, and on macOS 10.15 and later on dual-socket Intel systems. *из доки по OpenCore
CryptexFixup.kext - Я так понял, что это обязательный кекст не только для AMD, но и для Intel до Haswell
NoAVXFSCompressionTypeZlib-AVXpel.kext - возможно избыточно, без него тоже бутается.
На всякий случай оставил:
VoodooHDA.kext - инициализация звука в MacOS
HibernationFixup.kext - на виртуалке проще отключить сон, но если что, возможно это будет фиксить. Дело в том, что под хакинтошами у макоси есть проблемы со сном, вернее с выходом из него)
Whatevergreen.kext - фикс инициализации графики, по идее он не нужен, т.к. есть VMWARE tools

Создаем свой .vmdk:
Для его создания я создавал новую виртуалку, "установлю потом", тип системы other, диск 0.2GB, но вмварь тогда создает диск IDE, поэтому я его удалил, и пересоздал уже как SATA. Размер выбрал с потолка, сам EFI весит около 10-15 МБ. Поэтому можете назначить меньше. Из доп. настроек нужно выбрать store virtual disk as a single file
Далее монтируем этот диск через Daemon Tools. Теперь открываем оснастку управления дисками, для этого жмем WIN+R, вводим diskmgmt.msc и enter, система тут предложит проинициализировать новый диск. Выбираем GPT, жмем ОК. Далее создаем том и форматируем в FAT32, в Label вписываем любой удобный и понятный, я так и назвал OpenCore.
Все, теперь осталось закинуть на диск папку EFI, размонтировать диск и можно с него бутаться.

Несовместимость виртуалки и vmdk диска (если подкидываем к уже готовой машине)

При попытке подсунуть загрузочный vmdk в виртуалку, которая была создана в более старой версии VMware скорее всего вылезет ошибка:

Варианта 2: либо пересоздавать новый vmdk для этой виртуалки, форматить его и засовывать туда EFI
либо конвертнуть виртуалку:
жмем по ней правой кнопкой мыши → manage → Change Hardware Compatibility
Мой первый EFI был создан в версии 16.2.x, поэтому выбираю ее, чтоб версия совпадала с той, в которой он создавался. Далее вмварь спросит, хотите склонировать или конвертировать текущую билд-тачку. Тут уже на ваше усмотрение, у меня с конвертацией проблем не возникло, но я не уверен, что их точно не будет.
После конвертации диск подцепится без ошибок)

Что дальше?
Отныне любая макось, будь то инсталлер или уже установленная версия - должны запускаться только через наш кастомный EFI. Иначе в дальнейшем у них будет паника ядра.
С чистой установкой все просто: (не буду останавливаться на том, как создать новую ВМ, как пропатчить ее unlocker'ом, как создать диск, выделить ресурсы и т.д.)
Добавляем в виртуалку наш EFI, в настройках смотрим на какой порт сата он добавился (можно сделать SATA 0:0, а можно забить - на ваше усмотрение.
В виртуальный CD добавляем .iso образ установщика макоси (можно взять с торрента, либо зашить самому, но для этого нужен отдельный гайд).
Далее в VMware выбрать Power on firmware

После этого у нас будет возможность бутануться с нужного диска, тут нам и понадобиться номер порта SATA

мой пример: 0:0 это EFI, 2:0 это целевой диск с макосью, 1:0 CD дисковод с инсталлером.

мой пример: 0:0 это EFI, 2:0 это целевой диск с макосью, 1:0 CD дисковод с инсталлером.

Выбираем диск, жмем Enter.
Далее мы попадаем в меню OpenCore:

Скрин для примера, тут конфиг с уже установленной системой

Скрин для примера, тут конфиг с уже установленной системой

Если нажать пробел, появятся дополнительные опции загрузки

OpenCore делает ВЖЖ ВЖЖ

OpenCore делает ВЖЖ ВЖЖ

Бутаем установщик и далее штатно проходим установку (не забываем запустить дисковую утилиту в установщике и отформатировать наш целевой vmdk в формат APFS).

Для тех, кто хочет обновить свой старенький Monterey
У вас варианта два, либо обновляться штатно, через Software Update, либо обновляться с iso (точно так же, как чистая установка в абзаце выше, но без форматирования целевого диска)
Правило одно в обоих случаях - перед апдейтом, вы должны обязательно бутаться с кастомного загрузчика. Если макось словит Kernel Panic в процессе обновления (она несколько раз рестартится пока идет процесс обновления), то ее попердолит так, что даже с подсунутым EFI она не будет бутаться.
Перед апдейтом можете снять снапшот, откат поможет в случае если что-то пойдет не так.

Какие могут быть проблемы

  • Если макось в процессе рестартов установщика загрузится не через OpenCore, а напрямую, и словит панику - ее уже будет не восстановить. (выше уже писал об этом, но лучше задублирую - это важно!)

  • Если после успешной загрузки макоси не работает мышь/клава, либо у мыши очень высокая чувствительность, что невозможно ею пользоваться - нужно проверить в настройках виртуалки версию USB контроллера. Должна быть 3.1.
    доп. может понадобиться VoodooPS2Controller.kext

  • Проброс Bluetooth лучше убрать (там же, где настройки USB)

  • Перед изменением количества ядер, выделенных виртуалке, лучше править патчи в config.plist на EFI разделе. Иначе тачка будет вставать в фриз: Патчи для AMD
    Без них будут проблемы. У меня зависало, если выделял больше 4х ядер.
    "C:\Program Files (x86)\VMware Workstation\vmrun.exe" -T ws stop "путь к виртуалке.vmx"

  • И НЕ ЗАБЫВАЕМ, ЧТО В VMX конфиг нужно прописать

    cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011"
    cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111"
    cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110"
    cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001"
    cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"
    cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000"
    cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011"
    cpuid.1.edx = "0000:0111:1000:1011:1111:1011:1111:1111"

    ethernet0.virtualDev = "vmxnet3"

UPD: вынесу отдельно: из непофикшеного есть проблема с рестартами виртуалки. Она успешно останавливает систему и повисает

При этом кнопки Power OFF в VMware неактивны

При этом кнопки Power OFF в VMware неактивны

Прибить ее можно из командной строки (путь до vmrun.exe может отличаться:
"C:\Program Files (x86)\VMware Workstation\vmrun.exe" -T ws stop "путь к виртуалке.vmx"

Показать полностью 6
14

Ответ на пост «Сбер, че за дичь?»9

Ответ на пост «Сбер, че за дичь?»

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

7

Самые лучшие нейросети для 3D

ChatAvatar

ChatAvatar — нейросеть для создания анимационных 3D аватаров. Достаточно написать текстовую подсказку и загрузить фото/ изображения

Polycam

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

TripoSR

Самые лучшие нейросети для 3D

Нейросеть TripoSR от разработчиков Stable Diffusion способна создавать 3D-модели из изображений всего за секунды. Работает прямо на телефоне и может удалять фон из изображений, позволяя создавать модели прямо из фотографий или скриншотов.

Попробовать на huggingface

Установить с GitHub

luma

Luma - которая умеет из текста создавать 3D-модели

Genie

Genie - нейросеть так же умеет создавать модели про текстовому промпту или исходному изображению. Бесплатно включено 2500 слов в месяц, платная подписка начинается от 11.4$/мес.

Хотите узнавать первыми о полезных сервисах с искусственным интеллектом для работы, учебы и облегчения жизни? Подпишитесь на мой телеграм канал НейроProfit, там я рассказываю, как можно использовать нейросети для бизнеса.

Показать полностью 1 3
425

Уникальный индийский топпинг

В Индии уличный мороженщик дрочил и кончал в мороженое, а потом продавал его. Теперь дрочера ждёт тюрьма за непристойное поведение в общественном месте.

105

Без приветов никуда!

Друзья, наши выпускники решили передать свои пушистые приветы из дома и зарядить вас позитивом на год вперёд.

Ждана (теперь Дана) и Сосиска (теперь Конфета)

Великолепный дуэт Ждана и Сосиска уехали из приюта домой 8 ноября 2016 года и 9 декабря 2018 года.

Великолепный дуэт Ждана и Сосиска уехали из приюта домой 8 ноября 2016 года и 9 декабря 2018 года.

«У нас всё хорошо! Валяются, отличаются хорошим аппетитом, разбрасывают шерсть."

Вам большой котопривет!

***

Шаде (теперь Шани)

Малышка Шаде покинула приют 3 января 2020 года.

Малышка Шаде покинула приют 3 января 2020 года.

Плюшевая очаровашка передаёт всем привет!

Красавица Шадэ (ну не просто же так ей дали это имя?) отлично устроилась!

***

Пальмочка (теперь Мушу)

Игривая Пальмочка уехала из приюта 31 января 2020 года.

Игривая Пальмочка уехала из приюта 31 января 2020 года.

«С Мушу все прекрасно!

Она лучше всех!

Мы назвали ее Мушу, потому, что это маленький кусачий колбасодракоша!»

И ещё немного о Мушу:

"Утром мы валяемся в кровати,

Но недолго, барин кушать хочет!

И зовёт: "Вставай, лентяйка, хватит!",

И усами мне лицо щекочет"!

***

Степочка (теперь Персик)

Милейший Степочка покинул приют 6 июня 2022 года.

Милейший Степочка покинул приют 6 июня 2022 года.

«Все хорошо, кушает вдоволь, бегает по вечерам, как молодой сайгак.

"Он оооочень няшный, тискательный и ласкушечный".

"Он оооочень няшный, тискательный и ласкушечный".

Не любит вставать по утрам (все мы в этой жизни немного Персик)!

"Всегда находится со мной в комнате и по квартире перемещается со мной, ну кроме тех моментов когда у него тихий час – примерно с 9 до 12".

"Всегда находится со мной в комнате и по квартире перемещается со мной, ну кроме тех моментов когда у него тихий час – примерно с 9 до 12".

Стал внаглую лазить по обеденному столу, знает, что нельзя, что будут отчитывать, но отказать себе в удовольствии напроказничать не может».

С новым другом Мэйсоном.

С новым другом Мэйсоном.

"Мэйсон через 2 дня принял Персика. Играют вместе. Не представляю как я раньше жила только с одним котом?"

***

Астрочка

Элегантная Астрочка уехала домой 3 мая 2022 года.

Элегантная Астрочка уехала домой 3 мая 2022 года.

«У нас все отлично, проблем нет. Астрочка нас радует каждый день».

Игривое настроение

Игривое настроение

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

***

Софико

Прекрасная Софико покинула приют 17 января 2021 года.

Прекрасная Софико покинула приют 17 января 2021 года.

Софико освоилась дома!

Покорены новые высоты!

***

Тигр и Тихомир

Озорные Тигр и Тихомир уехали из приюта домой 31 декабря 2019 года и 17 января 2020 года.

Озорные Тигр и Тихомир уехали из приюта домой 31 декабря 2019 года и 17 января 2020 года.

«Котики здоровы и активны!».

Соображают втроём. Так ведь интереснее и веселее!

Соображают втроём. Так ведь интереснее и веселее!

"У нас все хорошо! Взяли третьего кота. На удивление и Тигр, и Тиша относятся к нему спокойно и терпеливо."

***

Блэр (теперь Буба) и Фантазия (теперь Симпл)

Красотки Блэр и Фантазия покинули приют 7 марта 2019 года и 12 мая 2020 года.

Красотки Блэр и Фантазия покинули приют 7 марта 2019 года и 12 мая 2020 года.

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

Кошечка Блэр (Буба)

Кошечка Блэр (Буба)

Переломным моментом в их отношениях стало появление гигантской когтеточки и то, что я поставила ее рядом с домиком, где обычно спит Буба.

Кошечка Фантазия (Симпл)

Кошечка Фантазия (Симпл)

Теперь у них в углу комнаты целый жилой комплекс: несколько коробок для вещей (в них спит Буба, вещей там нет), кошачий комплекс и когтеточка-лежанка. А в стене рядом со всем этим добром находятся трубы с горячей водой, поэтому кошки все зимнее время дремлют, прижавшись к стене. Как оказалось, возможность спать рядом очень сплотила кошек.

Первый шаг к взаимопониманию...

Первый шаг к взаимопониманию...

Сейчас они часто спят на когтеточке вместе или по очереди».

Вдвоём ведь и веселее и теплее!

Вдвоём ведь и веселее и теплее!

"Кошки - это здорово, две кошки - ещё лучше!"

***

Фейка (теперь Боня)

Любопытная Фейка уехала из приюта 29 октября 2020 года.

Любопытная Фейка уехала из приюта 29 октября 2020 года.

«У неё всё хорошо, здорова, очень игривая и ласковая кошечка».

"Очень активная. И спит тоже активно, изо всех кошачьих сил!"

***

Дьюк

Озорной Дьюк покинул приют 18 ноября 2020 года.

Озорной Дьюк покинул приют 18 ноября 2020 года.

«Добрый день! У котика все хорошо, любим всеми».

"Он избалован любовью! Но похудеть никак не может, пузико большое!"

***

Спасибо вам за то, что делитесь частичкой своего счастья с нами!

Станьте создателем своей
счастливой истории - выберите котика, пройдите собеседование и забирайте пушистого друга домой!

Показать полностью 25
513

СПБ и ЛО. Тосно. Bobr kurva* ищет дом. Стерилизована, привита, обработана

Очень ласковая молодая пушистая киса. Примерно год. Очень мыгонькая, очень игривая. Ладит с другими котами. Пока еще очень очень худенькая и легкая.

Писать в телеграм umkaluda или ВК https://vk.com/id196851038

666 бездомных хвостов нашли свой дом
https://t.me/s/irescue - мой телеграм канал с уютным чатом и большим количеством котиков и общения на разные темы (телега animalrescueed)
Донаты на Пикабу (для мобильной версии) https://pay.cloudtips.ru/p/0649c6db
Альбом с теми, кто ищет дом (СПБ и ЛО) https://vk.com/album-203932626_280491845)

Показать полностью 7 2
345

Железнодорожники спасли раненую сову в Хабаровске

🦉В Хабаровске железнодорожники спасли раненую сову, которая не смогла взлететь. Теперь птице помогают восстановиться, а затем найдут ей новый дом.

https://www.dvnovosti.ru/khab/2024/03/20/166475/

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

Отличная работа, все прочитано! Выберите