2 Stimmen

Mac: Massenspeicher-Treiber-Kext zum Testen laden

Ich schreibe eine angepasste Massenspeicher-Kernel-Erweiterung für Mac, die von der IOSCSIPeripheralDeviceType05 Treiber für logische Einheiten. Ich bin so weit gekommen, eine .kext-Datei zu kompilieren, die kextutil -n -t ... aber ich kann es nicht zum Testen laden.

Ich habe einen Nicht-Null-Wert IOKitDebug Feld in der .plist, und das GetDeviceConfiguration sieht so aus:

IOReturn
com_MyCompany_driver_MyDriver::GetDeviceConfiguration( void )
{
    IOLog( "MyDriver overriding GetConfiguration\n" );

    return super::GetDeviceConfiguration();
}

Wenn ich es jedoch in /System/Library/Extensions/ und führen Sie es mit kextutil /System/Library/Extension/MyDriver.kext passiert nichts, und es erscheint nichts in /var/log/system.log .

Wie lade ich dieses .kext, damit ich es debuggen kann?

2voto

pmdj Punkte 19560

Erstens: Legen Sie Erweiterungen nicht in /SLE ab, während Sie sie entwickeln. Das kann zu Problemen führen, da die Erweiterung automatisch geladen wird. Dies könnte dazu führen, dass das System nicht mehr gebootet werden kann. Kopieren Sie einfach nach, z.B. /tmp/ und verwenden kextutil um sie von dort zu laden.

Zweitens: Geben Sie einige Debug-Ausgaben in com_MyCompany_driver_MyDriver::init() denn das ist das erste, was aufgerufen wird.

Drittens ist Ihr Problem wahrscheinlich die Geräteanpassung. Wenn das Gerät zum Zeitpunkt des Ladens Ihres Kextes bereits von einem vorhandenen Treiber erkannt wird, wird Ihrer nicht berücksichtigt. Wenn Sie das Gerät nicht per Hot-Plug anschließen können und den vorhandenen Treiber vor dem Laden Ihres Treibers nicht entladen können, müssen Sie den Kext möglicherweise doch in SLE installieren, damit er beim Booten geladen wird. Wenn Sie immer noch Probleme mit dem Abgleich haben, posten Sie einige Details des Geräts, das Sie abgleichen wollen (ioreg/IORegistryExplorer-Ausgabe) und das passende Wörterbuch aus Ihrer info.plist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X