Nenhum arquivo de kernel especificado Erro no ambiente KEXT MAC
-
27-10-2019 - |
Pergunta
Tento implementar KEXT para dispositivos USBHID.Se estou verificando no Terminal, ele consegue carregar o KEXT, ou seja,
Newtok: Desktop Rasheed $ kextutil -nt SampleKextDriver.kext
Nenhum arquivo de kernel especificado;usando kernel em execução para vinculação.
SampleKextDriver.kext parece ser carregável (incluindo ligação para bibliotecas em disco).
Mas, infelizmente, recebi a mensagem acima.Meu arquivo plist é
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>SampleKextDriver</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.apple.dts.driver.SampleKextDriver</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Mustahfa</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>IOKitPersonalities</key>
<dict>
<key>Device Driver</key>
<dict>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>CFBundleIdentifier</key>
<string>com.apple.dts.driver.SampleKextDriver</string>
<key>IOMatchingCategory</key>
<string>com_apple_dts_driver_SampleKextDriver</string>
<key>IOProviderClass</key>
<string>IOUSBDevice</string>
<key>idProduct</key>
<integer>4389</integer>
<key>idVendor</key>
<integer>8192</integer>
<key>IOClass</key>
<string>IOService</string>
<key>IOProviderClass</key>
<string>IOUSBInterface</string>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.iokit.IOHIDFamily</key>
<string>1.6.4</string>
<key>com.apple.kpi.iokit</key>
<string>10.7</string>
<key>com.apple.kpi.libkern</key>
<string>10.7</string>
</dict>
</dict>
</plist>
Não sei onde errou, não tenho muita experiência no desenvolvimento do Mac OS X.Alguém pode sugerir os melhores documentos ou alguma ideia
Obrigado pela sua informação ...
Solução
1.U não deve usar a opção -n ao carregar seu kext.
A opção -n para kextutil parece usada para gerar apenas o arquivo de símbolo.
A opção -t para kextutil imprime o motivo da falha quando ocorre o erro.
Para obter mais detalhes sobre kextutil , você deve digitar man kextutil no Terminal .
2.Eu sugiro que você abra o Terminal e digite os comandos a seguir para determinar a versão dos Kexts dos quais seu driver depende.(Claro, você deve especificar a versão mais baixa do sistema que seu driver precisa suportar.)
kextstat | grep com.apple.iokit.IOHIDFamily
kextstat | grep com.apple.kpi.iokit
kextstat | grep com.apple.kpi.libkern
em seguida, atualize o dicionário OSBundleLibraries do info.plist do driver.
3.Espero que seja útil para você.Tenha um bom dia!