我正在爲Mac編寫一個定製的大容量存儲內核擴展,從IOSCSIPeripheralDeviceType05
邏輯單元驅動程序繼承而來。我已經編譯了一個.kext文件,它通過了kextutil -n -t ...
,但我無法加載它進行測試。Mac:加載大容量存儲驅動器Kext進行測試
我在的.plist非零IOKitDebug
場和GetDeviceConfiguration
看起來是這樣的:
IOReturn
com_MyCompany_driver_MyDriver::GetDeviceConfiguration(void)
{
IOLog("MyDriver overriding GetConfiguration\n");
return super::GetDeviceConfiguration();
}
然而,當我將其複製到/System/Library/Extensions/
與kextutil /System/Library/Extension/MyDriver.kext
執行它,什麼都不會發生,並出現什麼在/var/log/system.log
。
如何加載這個.kext文件來調試它?
是的,這是下到設備匹配 - 我的kext被一個普通的毆打。幸運的是我的設備可以熱插拔,所以sudo cp'ing到'/ tmp'工作正常。我還需要修改我的驅動程序類的':: probe(provider,score)'函數。具體來說,我查看了'provider-> getProperty()'的相關字段,然後提高了分數並返回了'this',如果我找到了正確的設備(我使用了Vendor和Product Identification鍵)。 – Inductiveload
@Inductiveload:只要你知道,你可以使用'IOProbeScore'個性屬性在info.plist中註冊更高的比賽分數。這可能會使您無需額外的探測代碼。 – pmdj