¿Cómo saber si mis extensiones de kernel están listas para 64 bits?

3

¿Hay una manera fácil de saber si todas mis extensiones de kernel "sobrevivirán" al arranque con un kernel de 64 bits? Por supuesto, puedo probar el "arranque de 6-4 dedos", pero tal vez hay una pieza de hardware que uso con poca frecuencia y que no funcionará cuando lo use en un mes, dejándome preguntarme qué salió mal.

Puedo ver una lista de extensiones en System Profiler> Software> Extensiones, con 8 de ellas listadas como "64 bits (Intel)", pero 5 de ellas son "Pseudoextensiones" con una Dirección de carga "incorporada en el núcleo ", y los otros 3 están relacionados con CHUD y probablemente desaparecerán una vez que actualice Xcode? ¿Es eso suficiente para concluir que no tendré problemas? ¿O hay extensiones que no están cargadas ahora y que puedo probar de alguna manera?

Jan Fabry
fuente

Respuestas:

6

Hasta donde sé, System Profiler no mostrará información de ningún archivo .kext que se esté cargando y que se encuentre en otro lugar además de la carpeta / System / Library / Extensions /.

Para obtener información completa sobre las extensiones de kernel que actualmente están cargadas y en uso en su Mac, puede usar la kextstatherramienta de línea de comandos.

Abra la aplicación Terminal (en la carpeta / Aplicaciones / Utilidades /), escriba lo siguiente en el indicador y luego presione Intro:

 kextstat

Obtendrá una gran lista de todas las extensiones de kernel cargadas. Principalmente querrá centrarse en los identificadores de paquete de los .kexts cargados. (Esa es la cadena de nombre de dominio hacia atrás como "com.apple ...."). Debería poder eliminar los que incluyen "com.apple", ya que serán Apple y deberían tener una versión K64. Una vez que los haya eliminado, deberá revisar los restantes para asegurarse de que estén construidos como versiones universales K32 + K64, o si necesita asegurarse de tener las últimas actualizaciones.

Por ejemplo, después de eliminar todos los kexts de Apple en la salida que obtengo, tengo los siguientes kexts listados. Desde que me cambié a K64 hace un año más o menos, todo esto está en orden para que todo esté bien.

MacPro:~ mdouma46$ kextstat
Index Refs Address          Size   Wired  Name (Version) <Linked Against>
73  0 0xffffff7f8111a000 0x8000 0x8000  com.AmbrosiaSW.AudioSupport (3.2) <72 5 4 3 1>
81  0 0xffffff7f811bf000 0x9000 0x9000  jp.plentycom.driver.SteerMouse (4.0.2) <55 29 24 5 4 3>
105 0 0xffffff7f81499000 0x5000 0x5000  com.Cycling74.driver.Soundflower (1.5.2) <72 5 4 3>
115 0 0xffffff7f814bf000 0xd1000 0xd1000 com.vmware.kext.vmx86 (3.1.2) <7 5 4 3 1>
116 0 0xffffff7f81590000 0xc000 0xc000   com.vmware.kext.vmci (3.1.2) <5 4 3 1>
117 0 0xffffff7f8159c000 0x7000 0x7000  com.vmware.kext.vmioplug (3.1.2) <29 24 5 4 3 1>
118 0 0xffffff7f815a3000 0xa000 0xa000  com.vmware.kext.vmnet (3.1.2) <5 4 3 1>
119 0 0xffffff7f815ad000 0x2000 0x2000  com.nvidia.CUDA (1.1.0) <4 1>
NSGod
fuente
Gracias, no me di cuenta de que la lista del Perfil del sistema no incluía todas las extensiones. ¿Qué hago para encontrar la ubicación de los .kextpaquetes en el disco? Todavía estoy buscando algunos, y el identificador de paquete no siempre es el nombre del archivo. ¿Y esta lista incluye solo las extensiones cargadas actualmente o también aquellas que se pueden cargar a pedido? Es el último grupo que más me importa, ya que podrían ser necesarios en el futuro y ahora no aparecerán como un error.
Jan Fabry
2

kextfind

La kextfindutilidad localiza e imprime información, o genera informes, sobre extensiones de kernel (KEXT).

Ejemplos

El siguiente comando busca /System/Library/ExtensionsKEXT que no incluyen la arquitectura x86_64:

kextfind -not -arch x86_64

Una búsqueda extendida, para incluir las dos rutas más utilizadas para la instalación:

kextfind -f /Library/Extensions -e -not -arch x86_64

Otros directorios

Los KEXT también se pueden instalar en ROM o dentro de un paquete de aplicaciones , pero kextfind no puede buscar de forma recursiva.

En la era del leopardo, se sugirió que se podrían encontrar KEXT en el /Library/StartupItemsárea. Como SystemStarter está en desuso , puede ser razonable omitir esta área al usar kextfind.

Páginas del manual

Los usuarios de OS X pueden ver la página del manual actual en la Terminal. En un navegador web, vaya a:

  • x-man-page: // 8 / kextfind

En Mac OS X Developer Library, la edición 2009 de la página está desactualizada.

Gracias

A ghoppe por crear conciencia sobre kextfind .

Jan Fabry
fuente
1

Usa el filecomando.

Ejemplo:

$ cd /System/Library/Extensions/KeyspanUSAdriver.kext/Contents/MacOS
$ file KeyspanUSAdriver 
KeyspanUSAdriver: Mach-O universal binary with 2 architectures
KeyspanUSAdriver (for architecture x86_64): Mach-O 64-bit kext bundle x86_64
KeyspanUSAdriver (for architecture i386):   Mach-O object i386

Tenga en cuenta que tiene arquitecturas x86_64 e i386.

bahamat
fuente
Gracias, pero ¿puedes hacer el enlace con la respuesta de NSGod? Si tengo una lista de extensiones de kernel cargadas kextstat, ¿cómo puedo encontrar dónde están ubicadas en el disco? ¿Y sabe cómo puedo encontrar "extensiones del kernel que pueden ser cargados por el sistema operativo, pero actualmente no son"?
Jan Fabry
0
  1. Ejecute Profiler del sistema
  2. En Software, haga clic en Extensiones.
  3. Tenga en cuenta la columna de 64 bits en la lista a la derecha.

Nota: Si no ve este elemento, vaya a su menú Ver y asegúrese de que esté seleccionado "Perfil completo".


fuente
Gracias, pero ya lo hice (tal vez mi pregunta no estaba clara). NSGod indicó que esta no es la lista completa de extensiones cargadas, y de hecho, encontré extensiones de Ambrosia y Parallels usando su método que no vi en la lista de System Profiler.
Jan Fabry