Frage

Ich versuche, KEXT für USBHID-Gerät zu implementieren.Wenn ich auf Terminal überprüfe, kann es KEXT laden, dh
Newtok: Desktop Rasheed $ kextutil -nt SampleKextDriver.kext Keine Kerneldatei angegeben;Verwenden des laufenden Kernels zum Verknüpfen. SampleKextDriver.kext scheint ladbar zu sein (einschließlich der Verknüpfung für On-Disk-Bibliotheken).
Aber leider habe ich die obige Nachricht erhalten.Meine Plist-Datei ist

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

Ich weiß nicht, wo ich falsch gemacht habe, ich habe nicht viel Erfahrung in der Mac OS X-Entwicklung.Kann jemand bitte die besten Dokumente oder eine Idee vorschlagen

Vielen Dank für Ihre Informationen ...

War es hilfreich?

Lösung

1.U sollte beim Laden Ihres Kextes nicht die Option -n verwenden.
Die Option -n für kextutil scheint nur zum Generieren der Symboldatei verwendet zu werden.
Die Option -t für kextutil gibt den fehlgeschlagenen Grund aus, wenn ein Fehler auftritt.
Für weitere Informationen zu kextutil sollten Sie man kextutil in das Terminal eingeben.

2. Ich empfehle Ihnen, das Terminal zu öffnen und follow-Befehle einzugeben, um die Version der Kexts zu bestimmen, von denen Ihr Treiber abhängt.(Natürlich sollten Sie die niedrigste Version des Systems angeben, die Ihr Treiber unterstützen muss.)

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

Aktualisieren Sie dann das OSBundleLibraries-Wörterbuch der info.plist Ihres Treibers.

3.Hoffentlich ist dies nützlich für u.Ich wünsche Ihnen einen schönen Tag!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top