Domanda

Provo a implementare KEXT per il dispositivo USBHID.Se sto controllando sul terminale, è in grado di caricare KEXT cioè
Newtok: Desktop Rasheed $ kextutil -nt SampleKextDriver.kext Nessun file del kernel specificato;usando il kernel in esecuzione per il collegamento. SampleKextDriver.kext sembra essere caricabile (incluso il collegamento per le librerie su disco).
Ma sfortunatamente ho ricevuto il messaggio di cui sopra.Il mio file 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>

Non so dove ho sbagliato, non ho molta esperienza nello sviluppo di Mac OS X.Qualcuno può suggerire i migliori documenti o qualche idea

Grazie per le tue informazioni ...

È stato utile?

Soluzione

1.U non dovrebbe usare l'opzione -n durante il caricamento di kext.
L'opzione -n per kextutil sembra utilizzata per generare solo il file di simboli.
L'opzione -t per kextutil stampa il motivo dell'errore quando si verifica un errore.
Per maggiori dettagli su kextutil , dovresti digitare man kextutil nel Terminale .

2. Ti suggerisco di aprire il Terminale e digitare i comandi follow per determinare la versione di Kext da cui dipende il tuo driver.(Ovviamente, dovresti specificare la versione più bassa del sistema che il tuo driver deve supportare.)

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

quindi aggiorna il dizionario OSBundleLibraries del file info.plist del tuo driver.

3.Spero che questo sia utile per te.Buona giornata!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top