Synopsis
kextfind [options] [--] [kext_or_directory ...] [query]
[-report [-no-header] report_predicate ...]
Deprecated
kextfind yardımcı aracı kullanımdan kaldırılmıştır. Lütfen kmutil(8) eşdeğeri olan şu komutu kullanın: kmutil find.
Description
kextfind yardımcı aracı, adı geçen dizin ve uzantı argümanlarındakiler arasından, query (sorgu) içindeki arama kriterleriyle eşleşen çekirdek uzantılarını (kexts) bulur ve bunlar hakkında bilgi yazdırır veya raporlar oluşturur. Herhangi bir dizin veya uzantı belirtilmezse, kextfind /System/Library/Extensions ve /Library/Extensions dizinlerinde arama yapar. Aramalar, kextload(8) ve kextd(8) tarafından kullanılan kext yönetim mantığı aracılığıyla gerçekleştirilir; buna göre yalnızca depo dizininde doğrudan bulunan kext'ler veya açıkça adlandırılan kext'ler (ve bunların doğrudan eklentileri [plugins]) aramaya dahil edilir; bu özellikle kapsamlı, özyinelemeli (recursive) bir dosya sistemi araması değildir.
Aşağıda listelenen sorgu ve komut yüklemlerinden (predicates) herhangi birini kullanarak aramanızı oluşturun. Yüklemleri -and, -or ve -not mantıksal işleçleriyle birleştirebilir ve bunları parantezlerle gruplayabilirsiniz.
Sorgu komut yüklemleri genellikle bir kext hakkında yol adı veya paket tanımlayıcısı gibi bazı bilgileri yazdırır, ardından bir yeni satır veya ASCII NUL karakteri gelir. Sorgu ifadesinden sonra -report anahtar sözcüğünü kullanarak sekme ile ayrılmış bir rapor da oluşturabilirsiniz; bunu yaparsanız, aşağıda açıklanan komut yüklemlerinden hiçbirini belirtmemelisiniz.
Hiçbir komut yüklemi veya rapor belirtilmezse, kextfind sorguyla eşleşen her kext için örtük olarak bir -print komut yüklemi yürütür.
Options
-h, -help Her bir seçenek bayrağını açıklayan bir yardım mesajı yazdırır ve komut satırındaki diğer seçeneklerden bağımsız olarak başarı sonucuyla çıkar. -set-arch arch Mimariye özgü özellikler gibi şeyler için kullanılan mimariyi arch olarak ayarlar. Böyle bir sorguyu yalnızca tek bir mimariyle gerçekleştirebilirsiniz; örneğin birden fazla yürütülebilir mimari için arama yapmak mümkündür, ancak tek bir özelliğin mimariye özgü iki değerini arayamazsınız. -i, -case-insensitive Değerler dize (string) olduğunda tüm özellik, eşleşme özelliği ve paket tanımlayıcı sorgu yüklemleri için büyük/küçük harfe duyarsız karşılaştırmalar gerçekleştirir. Özellik değerleri sayı veya boole (boolean) olduğunda hiçbir etkisi yoktur. Bu seçeneği bağımsız özellik sorgu yüklemleriyle de kullanabilirsiniz. -s, -substring Değerler dize olduğunda tüm özellik, eşleşme özelliği ve paket tanımlayıcı sorgu yüklemleri için alt dize (substring) aramaları gerçekleştirir. Özellik değerleri sayı veya boole olduğunda hiçbir etkisi yoktur. Bu seçeneği bağımsız özellik sorgu yüklemleriyle de kullanabilirsiniz. -no-paths Kext'ler için yol yazdırmaz, sadece paket adlarını yazdırır; bilgi sözlüğü (info dictionary) ve yürütülebilir dosyalar için ise kext'in kendisine göre göreceli yollarını yazdırır. Bu, aynı ada sahip eklentiler olduğunda ve birden fazla depo arandığında belirsizliğe yol açabilir. -relative-paths Kext depolarına göre göreceli yol adlarını yazdırır (birden fazla depoda arama yapılıyorsa belirsiz olabilir). -0, -nul -print-diagnostics hariç -echo ve tüm -print... komut yüklemlerinin yeni satırlar yerine bir ASCII NUL karakteri (karakter kodu 0) yaymasını sağlar. Bu, çıktıyı xargs(1) komutuna gönderirken yararlıdır. Bu bayrağı bu komut yüklemleriyle tek tek de kullanabilirsiniz. -f kext_or_directory, -search-item kext_or_directory Aranacak bir kext veya kext dizini belirtir. Birden fazla kez belirtilebilir. Normalde bunları bir seçenek bayrağı olmadan da listeleyebilseniz de, sorgu ifadesiyle karışıklığı önlemek için bu seçenekler sağlanmıştır. -e, -system-extensions Aranacak dizinler listesine /System/Library/Extensions ve /Library/Extensions dizinlerini ekler. Herhangi bir dizin veya kext belirtmezseniz, bu varsayılan olarak kullanılır.
--: Seçeneklerin sonu.
Query Predicates
Mevcut tüm arama kriterlerinin ve komutların açıklamaları aşağıda genel kategorilere göre gruplandırılarak verilmiştir.
Search by Bundle Name, or Info Dictionary or Match (Personality) Properties Bu yüklemlerin çoğu, yukarıda açıklanan -case-insensitive (-i) ve -substring (-s) seçeneklerini alır.
-b [-i|-case-insensitive] [-s|-substring] identifier -bundle-id [-i|-case-insensitive] [-s|-substring] identifier kext'in paket tanımlayıcısı identifier ile eşleşiyorsa true. Bu, -property CFBundleIdentifier identifier ile eşdeğerdir. -dup -duplicate-id Başka bir kext, mevcut kext ile aynı paket tanımlayıcısına sahipse true. -B [-i|-case-insensitive] [-s|-substring] name -bundle-name [-i|-case-insensitive] [-s|-substring] name kext'in paket adı name ile eşleşiyorsa true. -m [-i|-case-insensitive] [-s|-substring] name value -match-property [-i|-case-insensitive] [-s|-substring] name value kext, adı geçen özellik için dize, sayı veya boole değeri (“true”, “yes”, “1” veya “false”, “no”, “0” olarak ifade edilebilir) olarak value içeren en az bir kimliğe (personality) sahipse true. -me name -match-property-exists name kext, adı geçen özellik için herhangi bir değer içeren en az bir kimliğe (personality) sahipse true. -p [-i|-case-insensitive] [-s|-substring] name value -property [-i|-case-insensitive] [-s|-substring] name value kext'in bilgi sözlüğü, adı geçen özellik için dize, sayı veya boole değeri (“true”, “yes”, “1” veya “false”, “no”, “0” olarak ifade edilebilir) olarak value içeriyorsa true. -pe name -property-exists name kext'in bilgi sözlüğü, adı geçen özellik için herhangi bir değer içeriyorsa true.
Search by Loaded/Loadable -a, -authentic kext, root:wheel kullanıcısına aitse ve uygun izinlere sahipse true. -d, -dependencies-met kext'in tüm bağımlılıkları karşılanmışsa true. -nd, -dependencies-missing kext'in eksik bağımlılıkları varsa (veya bağımlılıkları çözülemiyorsa) true. -na, -inauthentic kext, root:wheel kullanıcısına ait değilse veya uygunsuz izinlere sahipse (veya bu şekilde kimlik doğrulaması yapılamıyorsa) true. -nv, -invalid kext geçerli değilse true. -l, -loadable kext yüklenebilir görünüyorsa true. (Bağlantı [link] hataları nedeniyle yine de yüklenemeyebilir.) -loaded kext şu anda yüklüyse true (paket tanımlayıcısı, sürümü ve yürütülebilir dosya UUID'si çekirdeğe yüklenmiş bir kext ile eşleşiyorsa). -nl, -nonloadable kext geçersiz, kimliği doğrulanmamış veya eksik bağımlılıkları olduğu için yüklenemiyorsa true. -v, -valid kext geçerliyse true. -w, -warnings kext doğrulanırken herhangi bir uyarı kaydedilmişse true.
Search by Executable, Architecture, or Symbol -arch arch1[,arch2...] kext, yürütülebilir dosyasında adı geçen CPU mimarilerinin tümünü (boşluksuz, yalnızca virgülle ayrılmış olarak) ve muhtemelen diğerlerini içeriyorsa true. -ax arch1[,arch2...], -arch-exact arch1[,arch2...] kext, yürütülebilir dosyasında adı geçen CPU mimarilerinin tümünü (boşluksuz, yalnızca virgülle ayrılmış olarak) ve başkalarını içermiyorsa true. -dsym symbol, -defines-symbol symbol kext, mimarilerinden herhangi birinde adı geçen sembolü tanımlıyorsa true. Ad, kext'in yürütülebilir dosyasındaki (muhtemelen karıştırılmış [mangled]) sembolle tam olarak eşleşmelidir. Bu tür adlar genellikle en az bir alt çizgi ile başlar; bkz. nm(1). Diğerlerinin kext'e bağlanabilmesi için kext'in aynı zamanda bir kitaplık olması gerekir (bkz. -library). -x, -executable kext, CFBundleExecutable özelliği aracılığıyla bir yürütülebilir dosya beyan ediyorsa true (aslında bir taneye sahip olup olmadığına bakılmaksızın; yani kext bir tane beyan ediyor ancak o eksikse, kext geçersiz olsa bile bu yüklem true değerini alır). -nx, -no-executable kext, CFBundleExecutable özelliği aracılığıyla bir yürütülebilir dosya beyan etmiyorsa true. -rsym symbol, -references-symbol symbol kext, mimarilerinden herhangi birinde adı geçen sembole tanımlanmamış bir referansa sahipse true. Ad, kext'in yürütülebilir dosyasındaki (muhtemelen karıştırılmış [mangled]) sembolle tam olarak eşleşmelidir. Bu tür adlar genellikle en az bir alt çizgi ile başlar; bkz. nm(1).
Search by Miscellaneous Attribute
-debug: kext, true olarak ayarlanmış en üst düzey OSBundleEnableKextLogging özelliğine sahipse veya kimliklerinden (personalities) herhangi biri sıfırdan farklı bir IOKitDebug özelliğine sahipse true. (Not: Mac OS X 10.6 (Snow Leopard) itibarıyla OSBundleDebugLevel özelliği artık kullanılmamaktadır.) -has-plugins kext eklentiler (plugins) içeriyorsa true. -integrity { correct|modified|no-receipt|not-apple|unknown } KULLANIM DIŞI. Mac OS X 10.6 (Snow Leopard) itibarıyla kext bütünlüğü (integrity) kullanılmamaktadır ve bu yüklem her zaman false değerini alır. -kernel-resource kext, çekirdeğe yerleşik bir kaynağı temsil ediyorsa true. -lib, -library kext, diğer kext'lerin bağlanabileceği bir kitaplık ise true. -plugin kext, başka bir kext'in eklentisi (plugin) ise true.
Search by Startup Requirement Bu seçenekler, başlangıçta kullanılan veya güvenli modda (safe boot) yüklenmesine izin verilen kext'leri bulur. Bunlar -or işleciyle birleştirilmelidir. (Standart sistem mkext dosyası konsol, local-root ve root kext'lerini içerir, bu nedenle “( -console -or -local-root -or -root )” şeklinde belirtmeniz gerekir.)
-C, -console kext'in konsol modu başlangıcı için potansiyel olarak gerekli olması durumunda true (-p OSBundleRequired Console ile aynıdır ancak her zaman büyük/küçük harfe duyarlıdır). -L, -local-root kext'in local-root başlangıcı için potansiyel olarak gerekli olması durumunda true (-p OSBundleRequired Local-Root ile aynıdır ancak her zaman büyük/küçük harfe duyarlıdır). -N, -network-root kext'in network-root başlangıcı için potansiyel olarak gerekli olması durumunda true (-p OSBundleRequired Network-Root ile aynıdır ancak her zaman büyük/küçük harfe duyarlıdır). -R, -root kext'in root başlangıcı için potansiyel olarak gerekli olması durumunda true (-p OSBundleRequired Root ile aynıdır ancak her zaman büyük/küçük harfe duyarlıdır). -S, -safe-boot kext'in güvenli modda (safe boot) yüklenmesine potansiyel olarak izin verilmesi durumunda true (-p OSBundleRequired 'Safe Boot' ile aynıdır ancak her zaman büyük/küçük harfe duyarlıdır).
Search by Version -compatible-with-version version kext, verilen sürümle uyumlu bir kitaplık kext'i ise true. -V [ne|gt|ge|lt|le]version[-version] -version [ne|gt|ge|lt|le]version[-version] kext'in sürümü sürüm ifadesiyle eşleşiyorsa true. Tek bir sürümden önce bir işleç veya bir sürüm aralığı belirtebilirsiniz. 1.0d21 gibi nihai olmayan (nonfinal) sürümlerin nihai sürümlerden (bu durumda 1.0) daha küçük olarak karşılaştırıldığını unutmayın; sürüm ifadenizi buna göre oluşturun. Ayrıca bkz. -library.
Query Command Predicates
Bu yüklemler, sorguyla eşleşen kext'ler hakkında bilgi yazdırır veya kext paketi dizini, bunun bilgi sözlüğü dosyası ya da yürütülebilir dosyası üzerinde bir yardımcı program çalıştırır. -exec hariç, bunların hepsi sorgu değerlendirmesi amacıyla true sonucunu döndürür.
-print-diagnostics hariç -echo ve tüm -print... komut yüklemleri, yeni satırlar yerine bir ASCII NUL karakteri (karakter kodu 0) yaymak için bir -nul (-0) seçeneği kabul eder. Bu, çıktıyı xargs(1) komutuna gönderirken yararlıdır.
-echo [-n|-no-newline] [-0|-nul] string string ifadesini yazar ve ardından yeni satır ekler. Yeni satırı atlamak için -n veya -no-newline belirtebilirsiniz. Hem -n hem de -nul belirtirseniz, string ifadesinden sonra yeni satır veya ASCII NUL karakteri gelmez. -exec utility [argument ...] ; utility adlı program çıkış durumu olarak sıfır değeri döndürürse true. Yardımcı programa isteğe bağlı argümanlar iletilebilir. İfade bir noktalı virgül (“;”) ile sonlandırılmalıdır. kextfind'i bir kabuktan (shell) çağırıyorsanız, kabuğun bunu bir denetim işleci olarak değerlendirmesini önlemek için noktalı virgülü tırnak içine almanız gerekebilir. Yardımcı program adında veya argümanlarında herhangi bir yerde görünen “{}”, “{info-dictionary}” ve “{executable}” dizeleri, sırasıyla geçerli kext'in yol adı, bilgi sözlüğü veya yürütülebilir dosyası ile değiştirilir. utility, kextfind'in çalıştırıldığı dizinden yürütülecektir. utility ve argümanlar, kabuk kalıplarının ve yapılarının daha fazla genişletilmesine tabi değildir. -print [-0|-nul] kext'in yol adını yazdırır. Hiçbir komut yüklemi belirtilmezse, sorgu bir bütün olarak ( query ) -and -print ifadesine eşdeğer hale gelir. -print0 find(1) kullanıcıları için -print -nul ifadesine eşdeğerdir. -pa [-0|-nul] -print-arches [-0|-nul] Varsa, kext yürütülebilir dosyasındaki tüm mimarilerin adlarını virgülle ayırarak yazdırır. -print-dependencies [-0|-nul] kext'in tüm doğrudan ve dolaylı bağımlılıklarının yol adlarını yazdırır. -print-dependents [-0|-nul] kext'e doğrudan ve dolaylı olarak bağımlı olan tüm kext'lerin yol adlarını yazdırır. -pdiag -print-diagnostics kext için doğrulama ve kimlik doğrulama hatalarını, eksik bağımlılıkları ve uyarıları yazdırır. -px [-0|-nul] -print-executable [-0|-nul] kext'in yürütülebilir dosyasının yol adını yazdırır. -pid [-0|-nul] -print-info-dictionary [-0|-nul] kext'in bilgi sözlüğü dosyasının yol adını yazdırır. (Dosyanın içeriğini yazdırmak için “-exec cat {info-dictionary} ;” veya “-exec pl -input {info-dictionary} ;” kullanabilirsiniz.) -print-integrity [-0|-nul] KULLANIM DIŞI. Mac OS X 10.6 (Snow Leopard) itibarıyla kext bütünlüğü kullanılmamaktadır ve bu komut “geçerli değil” anlamında “n/a” yazdırır. -print-plugins [-0|-nul] kext'in tüm eklentilerinin (plugins) yol adlarını yazdırır. -pm [-0|-nul] name -print-match-property [-0|-nul] name kext içindeki her eşleşen kimlik (personality) için, adı geçen özellik mevcutsa, kimliğin adını, bir iki nokta üst üste işaretini, ardından name parametresini, bir eşittir işaretini ve özelliğin değerini yazdırır. Özellik herhangi bir kimlik için mevcut olmasa bile true ile sonuçlanır. -pp [-0|-nul] name -print-property [-0|-nul] name En üst düzey özellik mevcutsa, name parametresini, ardından bir eşittir işaretini ve değerini yazdırır. Özellik mevcut olmasa bile true ile sonuçlanır.
Operators
Sorgu birincilleri aşağıdaki işleçler kullanılarak birleştirilebilir. İşleçler azalan öncelik sırasına göre listelenmiştir.
( expression ) Parantez içindeki ifade true değerini alıyorsa true değerini alır. Birçok kabukta (shell) parantezlerin özel karakterler olduğunu ve kaçış karakteriyle belirtilmesi veya tırnak içine alınması gerektiğini unutmayın. ! expression -not expression Bu, tekli (unary) NOT işlecidir. expression false ise true, expression true ise false değerini alır. Birçok kabukta “!” karakterinin özel bir karakter olduğunu ve kaçış karakteriyle belirtilmesi veya tırnak içine alınması gerektiğini unutmayın. expression -and expression expression expression and işleci, mantıksal AND işlecidir. İki ifadenin yan yana gelmesiyle örtük olarak anlaşılır ve bu nedenle belirtilmesi gerekmez. Her iki ifade de true ise true değerini alır. İlk ifade false ise, ikinci ifade değerlendirilmez. expression -or expression -or işleci, mantıksal OR işlecidir. İfadelerden biri true ise true değerini alır. İlk ifade true ise, ikinci ifade değerlendirilmez.
Reports
Daha fazla işleme (veya doğrudan bilgi edinmeye) uygun, satır başına bir kext olacak şekilde, sekmeyle ayrılmış bir biçim oluşturmak için bir rapor ifadesinde aşağıdaki yüklemleri kullanın. Rapor normalde her sütunu etiketleyen bir başlık satırıyla başlar; -report seçeneğinin hemen ardından -no-header kullanarak bunu atlayabilirsiniz.
Rapor yüklemi anahtar sözcükleri sorgu yüklemleriyle neredeyse tamamen aynıdır, ancak farklı amaçlara (ve birkaç durumda farklı argümanlara) sahiptir. Genel olarak, bir sorgu yüklemi bir değer ararken, bir rapor yüklemi onu alır. Bu nedenle, özellik yüklemleri yalnızca özelliğin adını alır ve incelenmekte olan kext için o özelliğin değerini yazdırır. -print-dependencies gibi çoklu değerlere sahip özniteliklere dayalı rapor yüklemleri, değerlerin kendileri yerine değerlerin sayısını yazdırır. Son olarak, evet/hayır soruları için rapor yüklemleri “yes” veya “no” yazdırır.
-invalid gibi ters anlamlara sahip birçok kısayolun raporlar için mevcut olmadığını unutmayın (bunlar sadece kafa karıştırıcı olurdu). -match-property gibi diğerleri, düz sekmeyle ayrılmış metne anlamlı bir şekilde yerleştirilmesi imkansız olacak birden fazla değer oluşturabilir (ve bunlardan kaç tane olduğunu bilmek yararlı değildir).
Value Report Predicates -b, -bundle-id kext'in paket tanımlayıcısını yazdırır. -B, -bundle-name kext'in paket adını yazdırır. -integrity, -print-integrity KULLANIM DIŞI. Mac OS X 10.6 (Snow Leopard) itibarıyla kext bütünlüğü kullanılmamaktadır ve bu komut “geçerli değil” anlamında “n/a” yazdırır. -V, -version kext'in sürümünü yazdırır.
-print: kext'in yol adını yazdırır. -pa, -print-arches Varsa, kext yürütülebilir dosyasındaki mimarilerin adlarını yazdırır. -print-dependencies kext için bulunan bağımlılıkların sayısını yazdırır. -print-dependents kext'e bağımlı olduğu bulunan kext'lerin sayısını yazdırır. -px, -print-executable kext'in yürütülebilir dosyasının yol adını yazdırır (varsa). -pid, -print-info-dictionary kext'in bilgi sözlüğünün yol adını yazdırır. -print-plugins kext'in sahip olduğu eklenti (plugin) kext'lerinin sayısını yazdırır. -p name, -property name -pp name, -print-property name key name parametresine sahip en üst düzey bilgi sözlüğü özelliğinin değerini yazdırır. Anahtar tanımlanmamışsa “” yazdırır. -sym symbol, -symbol symbol kext adı geçen sembole referans veriyorsa veya tanımlıyorsa “references” veya “defines” yazdırır. (Bu, aynı zamanda bir sorgu yüklemi olmayan tek rapor yüklemidir.)
Yes/No Report Predicates -arch arch1[,arch2...] kext adı geçen mimarilerin tümünü (ve muhtemelen diğerlerini) içeriyorsa “yes”, aksi takdirde “no”. -ax arch1[,arch2...], -arch-exact arch1[,arch2...] kext tam olarak adı geçen mimarileri içeriyorsa (ve başkalarını içermiyorsa) “yes”, aksi takdirde “no”. -a, -authentic -debug -d, -dependencies-met -dup, -duplicate-identifier -x, -executable -has-plugins -kernel-resource -lib, -library -l, -loadable -loaded -plugin -w, -warnings -v, -valid
Examples
Aşağıdaki örnekler kabuğa verildiği gibi gösterilmiştir:
kextfind -case-insensitive -not -bundle-id -substring 'com.apple.' -print
Apple ürünü olmayan tüm kext'lerin listesini yazdırın.
kextfind \( -nonloadable -or -warnings \) -print -print-diagnostics
Yüklenebilir olmayan veya herhangi bir uyarısı olan tüm kext'lerin listesini, her birinin sorunuyla birlikte yazdırın.
kextfind -nonloadable -print-dependents | sort | uniq
Bağımlılıklarıyla ilgili sorunlar nedeniyle yüklenemeyen tüm kext'lerin listesini yazdırın.
kextfind -defines-symbol __ZTV14IONetworkStack
__ZTV14IONetworkStack sembolünü tanımlayan tüm kext'lerin listesini yazdırın.
kextfind -relative-paths -arch-exact ppc,i386
Yalnızca ppc ve i386 kodunu içeren tüm kext'lerin listesini yazdırın.
kextfind -debug -print -pp OSBundleDebugLevel -pm IOKitDebug
Hata ayıklama (debug) seçenekleri ayarlanmış tüm kext'lerin listesini, hata ayıklama seçeneklerinin değerleriyle birlikte yazdırın.
kextfind -m IOProviderClass IOMedia -print -exec pl -input {info-dictionary} ;
IOMedia ile eşleşen tüm kext'lerin listesini bilgi sözlükleriyle birlikte yazdırın.
kextfind -no-paths -nl -report -print -v -a -d
Sorunlara dair ipuçlarıyla birlikte, yüklenemeyen kext'lerin raporunu yazdırın.
Diagnostics
kextfind yardımcı aracı tamamlandığında (herhangi bir kext bulunup bulunmadığına bakılmaksızın) 0 durumuyla veya bir hata oluşursa sıfır olmayan bir durumla çıkar.
See Also
find(1), kmutil(8), kernelmanagerd(8), kextcache(8), kextd(8), kextload(8), kextstat(8), kextunload(8), xargs(1)
Bugs
Pek çok tek harfli seçenek, diğer kext araçlarındaki aynı harfli seçeneklerle anlam olarak tutarsızdır (veya doğrudan çelişmektedir).
kextfind tarafından kullanılan birkaç özel karakter, birçok kabuk programı için de özel karakterdir. Özellikle “!”, “(” ve “)” karakterlerinin kabuktan kaçış karakteriyle belirtilmesi gerekebilir.
Darwin November 14, 2012 Darwin