2010-08-01 5 views
1

с Snow Leopard 10.6.4 Я получение неразрешенного символа:Найти OS X Kext библиотека, которая содержит символ

$ sudo kextutil KRPC.kext 
(kernel) kxld[com.machackershandbook.kext.KRPC]: The following symbols are unresolved for this kext: 
(kernel) kxld[com.machackershandbook.kext.KRPC]: _mig_buckets 

Я не могу найти этот символ с помощью kextfind, однако этот символ экспортированного в ядре:

$ kextfind -dsym _mig_buckets 
$ nm -arch i386 /mach_kernel |grep _mig_buckets 
00844b00 S _mig_buckets 
$ nm -arch x86_64 /mach_kernel |grep _mig_buckets 
ffffff8000672e40 S _mig_buckets 

Как я могу найти Kext библиотеку, чтобы связать с этим символом, используя OSBundleLibraries Dict?

ответ

0

Вы пробовали работать kextlibs на вашем kext? он может дать вам правильную зависимость. В противном случае, это, вероятно, один из следующих:

  • com.apple.kpi.mach
  • com.apple.kpi.unsupported

см this apple Q&A для получения дополнительной информации о неподдерживаемых КПЭ

+0

Спасибо, в дополнение к com.apple.kpi.mach и com.apple.kpi.unsupported. Я добавил большую часть kexts. – Freeman

+0

Я также использовал оба метода, которые Вы предлагаете, и эти методы одни и те же удачи: $ Sudo kextlibs rpc_server.kext для всех архитектур: com.apple.kpi.libkern = 10,4 Для i386: 2 символов не найден в любая библиотека kext. $ /Developer/usr/bin/FindKPI.py _mig_buckets _mig_buckets не найден – Freeman

+0

Здесь что-то странное, потому что кажется, что символ фактически экспортируется в ядро. $ нм -arch i386/mach_kernel | GREP _mig_buckets 00844b00 S _mig_buckets – Freeman