Hackintosh: Audio
Обновена на: March 24, 2022Във връзка с новата машина, която няма onboard audio, използвам стара звукова карта от 2005та. Само тази карта имам. Първоначално мислех, че самата карта не е наред – например официалните Windows 7 64-bit драйвъри ми даваха BSOD всеки път. В последствие научих, че бих могъл да ползвам Windows XP драйвъра – следва да разберем.
По-тегавата ситуация е обаче с хакинтоша, защото съм наясно, че има (поне) два kext-а за този чип (CMI8738 – имай предвид, че повечето евтини вътрешни звукови карти ползват този или сестринския му CMI8768 чип), които обаче се зареждат малко по-различно от “просто ги сложи в CLOVER/kexts/Other”. От El Capitan насам имаме SIP (System Integrity Protection), а тези кесктове са стари (последният не е) и не са подписани за SIP.
Затова, задължително от Recovery Mode пишем “csrutil disable”.
Нещата стават по-забавни, защото в един момент имах и двата кекста в Clover и в /System/Library/Extensions – картата работи (Йееее, не е изгоряла!), но не знам с кой кекст. Дали е някой от двата в /S/L/E, или е някой от двата в Clover? Кой от двата е?
Начинът, по който разбрах (поне малко) кой от двата – бих ги нарекъл драйвъри, за да не си мисля за Папи Ханс постоянно – е работещият, е като поставих единия и в Clover, и в SLE. Резултатът е, че картата се намира, но работи болезнено зле – със забавяния и пукания. Не, неизползваема е.
Набързо махнах драйвър номер 1 от SLE и поставих драйвър номер 2. Забележи – Д1 стои в Кловър, Д2 е в SLE. Картата работи перфектно.
Kextstat ми казва, че в момента е зареден Д1, но System Information – че Д2 работи. Ако това устои на reboot, няма да го пипам, но ако имаме проблеми, мисля да махна Д1 от Кловър и да оставя Д2 в СЛЕ. Това би следвало да работи. Но, както споменах, ако това продължава да работи, няма да бъде пипано.
Следва да обясня на себе си как се инсталира кекст в СЛЕ – копира се, сменят се рекурсивно пермисиите на 755, сменя се рекурсивно собствеността на root:wheel и се чисти кеша. Кешът уж се чисти само с “kextcache -i /”, но явно това не е достатъчно или аз съм тъп. Вторият начин е с две команди – “kextcache -system-prelinked-kernel” и “kextcache -system-caches”. С почистен кеш поне знаеш, че ако не видиш, докато системата стартира verbosely, информация за CMI картата – не ти е тръгнал драйвъра.
След работа ще си поиграя с Windows. Защо пиша това? Защото казах, че повечето евтини карти са с този чип. Chances are, ако ти трябва дискретна карта, ще имаш този чип. Затова знай, че работи в macOS, работи и в Windows (уж). Би следвало да работи и в Linux, I mean come on.
UPDATE 1:
Стигнахме му края. И краят, както винаги, е тъп. C-Media започват да ползват manufacturing ID 13F6 по някое време след 2006та. Моята карта е от 2005та. Което означава, че ID-то й е 0х011100F6. Какви айдита поддържа драйвърът ни? 0xYYYY13F6. Кефим ли се? Кефим се.
П.П. Обновил и ре-ъплоуднал съм кекстовете.