Muitos perguntam onde baixar kexts para placas de vídeo nVidia, a resposta é que elas já estão instaladas, fazem parte do Mac OS X. O problema é que elas não foram carregadas porque a placa não foi reconhecida.
Para que a placa seja reconhecida é necessário injetar algumas propriedades nela. O bootloader
Chameleon faz isso automaticamente, basta ativar a opção
GraphicsEnabler e configurar o
PciRoot (apenas se não for zero).
No arquivo
org.chameleon.Boot.plistCode:
<key>GraphicsEnabler</key>
<string>Yes</string>
<key>PciRoot</key>
<string>1</string>
Para saber o valor correto do PciRoot rode no terminal
Code:
ioreg -l | grep -15 "AppleACPIPCI\ " | grep UID
Você pode usar o
Chameleon Wizardviewtopic.php?f=9&t=398Existem kexts para isso (NVenabler, NVinject, EvoEnabler, entre várias outras) mas elas fazem a mesma coisa, injetam propriedades, elas não são os drivers em si.
http://www.projectosx.com/forum/index.php?showtopic=370Também é possível passar as propriedades manualmente para o Chameleon.
No arquivo org.chameleon.Boot.plist
Code:
<key>device-properties</key>
<string>[hexadecimal EFI string]</string>
Para obter as propriedades injetadas automaticamente pelo Chameleon rode o comando
Code:
ioreg -lw0 -p IODeviceTree -n efi -r -x | grep device-properties | sed 's/.*<//;s/>.*//;' > device-properties.hex
Para converter o arquivo device-properties.hex (hexadecimal EFI string) para plist (property list file) você pode usar o
GFXUtil (
http://forum.netkas.org/index.php?topic=64.0)
Code:
gfxutil -s -n -i hex -o xml device-properties.hex device-properties.plist
Também pode usar o
OSX86Tools (
http://code.google.com/p/osx86tools/).
O OSX86Tools também pode ser usado para criar uma EFI string.
Outra forma de injetar as propriedades é pela DSDT, veja nesse tópico
viewtopic.php?f=7&t=39Para algumas placas pode ser necessário adicionar o device ID nas kexts
NVDAResman,
NVDANV40Hal (séries 6xxx e 7xxx),
NVDANV50Hal (série 8xxx em diante) e
NVDAGF100Hal (série 4xx em diante).
Edite o arquivo
Info.plist das kexts e adicione o ID da sua placa (0x
DeviceIDVendorID) na chave
IOPCIPrimaryMatch ou
IOPCIMatchCode:
<key>IOPCIPrimaryMatch</key>
<string>0x06e410de</string>
Como encontrar o device ID
viewtopic.php?f=6&t=25Como editar o Info.plist
viewtopic.php?f=3&t=69