如何調試macOS

Spread the love

檢查KEXT

sudo kextstat | grep -v com.apple
 # grep -v表示排除,此處排除了macOS自帶的kext,所以可以看到第三方的kext 
#這些kext有可能是從Clover的其他文件夾加載的
#也有可能被被安裝到了LE(/ Library / Extensions /)或者SLE(/ System / Library / Extensions /)
#此處也可以看到kext版本,與github上的[原作者的版本](https://github.com/ acidanthera / bugtracker)做比較,能知道是否有必要更新一下。
# InfoPlist補丁的內核擴展不會顯示在這裡,比如Hackintool生成的USBports.kext

sudo kextcache -i /
#重建緩存,如果輸出是一行KernelCache ID,表示LE SLE沒有第三方kext 
#如果輸出多行,且有簽名未簽名的提示,說明LE或者SLE裡面有第三方kext,或者macOS自帶的kext被修改過。
#這樣可以區分哪些kext是在Clover的其他文件夾,哪些在LE,SLE。
#如果LE SLE其他裡面有同名的kext,其他裡面的kext默認不會加載,所以建議所有第三方kext都放到其他

更新內核擴展

  • 如果kext是在其他,直接覆蓋重啟就可以生效
  • 如果kext是安裝在LE SLE,建議移動到其他然後重建緩存。
  • 如果刪除LE SLE的kext,也需要重建緩存。

聲卡問題

  • 不要修改macOS自帶的kext,具體請看檢查kext部分,如果已經被修改了,需要還原。
  • 建議用啟動參數 alcid=声卡id的方式驅動聲卡,不建議用Clover的Audio Inject。參考
  • 最好的還是採用Device Properties的方式設置id,gfxutil -f HDEF可以打印出聲卡設備的路徑。

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *