Pregunta

Intento implementar KEXT para el dispositivo USBHID.Si estoy comprobando el Terminal, puedo cargar KEXT, es decir,
Newtok: Escritorio Rasheed $ kextutil -nt SampleKextDriver.kext No se ha especificado ningún archivo de kernel;usando kernel en ejecución para vincular. SampleKextDriver.kext parece ser cargable (incluido el enlace para bibliotecas en disco).
Pero, lamentablemente, recibí el mensaje anterior.Mi archivo plist es

<?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>

No sé dónde hice mal, no tengo mucha experiencia en el desarrollo de Mac OS X.¿Alguien puede sugerir los mejores documentos o alguna idea?

Gracias por tu información ...

¿Fue útil?

Solución

1.U no debería usar la opción -n al cargar su kext.
La opción -n para kextutil parece usarse para generar solo el archivo de símbolos.
La opción -t para kextutil imprime el motivo del error cuando se produce el error.
Para obtener más detalles sobre kextutil , debe escribir man kextutil en la Terminal .

2. Le sugiero que abra la Terminal y escriba los comandos de seguimiento para determinar la versión de los Kexts de los que depende su controlador.(Por supuesto, debe especificar la versión más baja del sistema que su controlador necesita para admitir).

kextstat | grep com.apple.iokit.IOHIDFamily
kextstat | grep com.apple.kpi.iokit
kextstat | grep com.apple.kpi.libkern

luego actualice el diccionario OSBundleLibraries del info.plist de su controlador.

3.Espero que esto sea útil para ti.¡Que tengas un buen día!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top