Продолжение поста «На новых ноутбуках нет нормального "сна" (о режиме Modern Standby)»
Недавно такое, что в третьем пункте в предыдущем посте (включение кулеров и нагрузка процессора и нагрев после закрытия) снова произошло на моём Asus, и я тогда просто открыл ноутбук, и, заметив, что он ощутимо тёплый, немного попользовался им, плюнул, оставил его в открытом виде. Через 10 минут у него по настройке погас экран, через ещё 10 - как положено заснул, тоже по настройке. И больше до моей "команды" утром не просыпался. Чудеса, да и только! То есть, при закрытии он засыпает плохо и не всегда адекватно, а в простое в открытом состоянии - всё нормально. С кнопки на клавиатуре тоже быстро засыпает в открытом виде.
ЗЫ. Перестал пользоваться гибернацией - он-то в неё уходит нормально и выходит из неё тоже, но потом и начинается это чудо с засыпанием-незасыпанием при закрывании. Похоже, что новые устройства и Windows 10/11 не любят этот режим... Со старым, 2018 года всё нормально в этом плане (там гибридный спящий режим S3 и автоматическая гибернация после долгого сна). В итоге, уезжая на сутки (нужно время от времени), просто даю ноутбуку заснуть или "укладываю" его кнопкой и оставляю открытым. Приезжаю - ноутбук готов сразу к использованию (автоматическая гибернация там отключена по умолчанию, на старом была включена).
Виртуальная машина 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
Выбираем диск, жмем Enter.
Далее мы попадаем в меню 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"ОБЯЗАТЕЛЬНО ОТКЛЮЧИТЬ TSO https://communities.vmware.com/t5/VMware-Fusion-Discussions/VMware-Fusion-Only-Upload-Internet-Speed-is-Super-Slow-compared/td-p/2955386
sysctl net.inet.tcp.tso=0 и для того, чтоб работало после рестарта - создать файл /etc/sysctl.conf и вставить «net.inet.tcp.tso=0»
Если этого не сделать, то не будет работать VNC/SCP/загрузка файлов на самбу, может что-то еще (очень низкая UPLOAD скорость для TCP соединений)
И НЕ ЗАБЫВАЕМ, ЧТО В 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: вынесу отдельно: из непофикшеного есть проблема с рестартами виртуалки. Она успешно останавливает систему и повисает
Прибить ее можно из командной строки (путь до vmrun.exe может отличаться:
"C:\Program Files (x86)\VMware Workstation\vmrun.exe" -T ws stop "путь к виртуалке.vmx"
Не устанавливается .Net Framework 3.5 На 10 виндовс
Как установить .Net Framework 3.5 На 10 виндовс? И в программы и компоненты галочку ставили, в командной строке писали.. То файл битый, то система считает файл опасным и не пускает
Продолжение поста «STTTS на питоне для тех у кого нейронки не тянет»
STTTS на питоне для тех у кого нейронки не тянет
в общем спустя 5 лет я как то вернулся сюда и презентую свою программу повторялку, написанную на питоне.
зачем? ну блин мало ли зачем людям может понадобиться что то подобное? используют же для чего то воисмод? ну а я в общем уже года так 2 хотел реализовать эту идею и она все крутилась у меня в голове. И однажды вечером я сел за мой старый ноутбук и за 15 минут родил это чудо убогого искусства! и оно даже заработало с первого раза! ну а спустя где то еще 2 месяца я пишу эту статью, ибо случайно зашел сюда по шакальной ссылке...
суть в чем? скрипт распознает твои слова и затем повторяет их... и больше ничего... я сделал дублирование сказанного в командной строке, так что он еще и печатает то, что говорит.
ну в общем обычно все работает довольно не плохо, но для скрина распознавать она ничего не стала, а мне слишком лень переделывать... (((
основная особенность в том, что она не потребляет много ресурсов вашего пк и работает довольно просто, а открытый исходный код - это то, что дает вам возможность самостоятельно написать весь код и не беспокоиться о том, что вам скинут троян или скрытый майнер.
в целом вся эта белиберда представляет из себя скрипт на питоне из 20-25ти строк кода, использующий 4 библиотеки... на этом все! пара пара пам!
ну делать было нечего, а голос ирины мне не понравился, и я добавил голос "максимки" от ивоны. можете добавить любой другой голос, главное чтобы работал на SAPI5.
для добавления голоса вам нужен будет его ID, но вы разберетесь, как его достать!
гуи я для нее не написал, ибо на тот момент все уже работало, делать на tkinter желания не было, да и мне было просто лень реализовывать до конца уже реализованную идею...
если использовать виртуальный кабель, то можно говорить через нее, настроив микрофон в игре или в дискорде\телеграмме на виртуальный кабель, а затем в настройках микшера громкости указать у скрипта вывод на микрофон.
ну а на этом все! если вас это хоть как то заинтересовало, то это здорово. думаю, я уйду еще года так на 2, может как нибудь загляну сюда, если будет время, удачного вечера вам!
Поддержку популярной версии Windows 10 прекратят
В корпорации заявили, что поддержка версии Windows 10 21H2 будет прекращена 11 июня 2024 года. Обновление вышло в ноябре 2021 года. Пользователи ОС перестанут получать апдейты и патчи безопасности. Операционная система включает в себя корпоративную Windows 10, Enterprise, IoT Enterprise и сборку для образовательных учреждений.
Представители Microsoft отметили, что для сохранения поддержки пользователям нужно обновиться до более новой версии Windows 10 или установить Windows 11. «Это обеспечивает поддержку вашего устройства и получение ежемесячных обновлений, которые имеют решающее значение для безопасности и здоровья экосистемы», — заметили в корпорации.
Пользователям Windows 10 в компании уже предложили обновление 22H2. Также компания начала принудительно устанавливать апдейт для ряда пользователей.
Поиграем в бизнесменов?
Одна вакансия, два кандидата. Сможете выбрать лучшего? И так пять раз.