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

¿Hay una manera fácil de saber si todas mis extensiones de kernel "sobrevivirán" al arrancar 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 preguntándome qué salió mal.

Puedo ver una lista de extensiones en System Profiler > Software > Extensions, con 8 de ellas listadas como no "64-bit (Intel)", pero 5 de ellas son "Pseudoextensiones" con una dirección de carga "integrada en el kernel ", 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?

Respuestas (4)

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

Para obtener información completa sobre las extensiones del kernel que están actualmente 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 regresar:

 kextstat

Obtendrá una gran lista de todas las extensiones de kernel cargadas. Principalmente querrá centrarse en los identificadores de paquetes de los .kexts cargados. (Esa es la cadena del nombre de dominio al revés, como "com.apple...."). Debería poder eliminar los que incluyen "com.apple", ya que esos serán de Apple y deberían tener una versión K64. Una vez que se haya deshecho de ellos, 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 en la lista. Desde que cambié a K64 hace aproximadamente un año, todo está en orden, por lo 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>
Gracias, no me di cuenta de que la lista de System Profiler no incluía todas las extensiones. ¿Qué debo hacer para encontrar la ubicación de los .kextpaquetes en el disco? Hay algunos que todavía estoy buscando, y el identificador del 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 bajo demanda? Es el último grupo el que más me importa, ya que podrían ser necesarios en el futuro y no aparecerán como un error ahora.

buscar

La kextfindutilidad localiza e imprime información, o genera informes, sobre las extensiones del 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 ampliada, 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 la ROM o dentro de un paquete de aplicaciones , pero kextfind no puede buscar recursivamente.

En la era Leopard, 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 Terminal. En un navegador web, vaya a:

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

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

Gracias

A Ghoppe por crear conciencia sobre kextfind .

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.

Gracias, pero ¿puedes hacer el enlace con la respuesta de NSGod? Si tengo una lista de extensiones de kernel cargadas de kextstat, ¿cómo puedo encontrar dónde están ubicadas en el disco? ¿Y sabe cómo puedo encontrar "extensiones de kernel que el sistema operativo puede cargar pero que actualmente no lo están" ?
  1. Ejecutar el Perfilador del sistema
  2. En Software, haga clic en Extensiones.
  3. Tenga en cuenta la columna de 64 bits en la lista de la derecha.

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

Gracias, pero ya lo hice (tal vez mi pregunta no fue 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.