¿Qué pasaría si fuerzo a instalar un controlador de Linux en Mac OS X?

7

Entonces, recientemente obtuve un sistema Mac y planeaba colocar una tarjeta Intel WiFi (como una actualización para su tarjeta actual). Ahora, como sabemos, Apple e Intel no se llevan bien con WiFi.

Sin embargo, esta misma tarjeta funciona en Linux.

¿Qué pasaría si obligara a los controladores Intel para el kernel de Linux a Mac OS X? ¿Funcionaría? ¿Habría severa inestabilidad o pérdida de datos? ¿Es incluso posible?

    
pregunta Kaz Wolfe 27.01.2015 - 08:01

5 respuestas

13
  

¿Qué pasaría si forzara los controladores Intel para Linux?   ¿Kernel en Mac OS X? ¿Funcionaría? ¿Habría severa inestabilidad?   o pérdida de datos? ¿Es incluso posible?

¿En el mejor de los casos? 100% nada. ¿Lo peor? Bloquea todo tu sistema y hazlo inutilizable o incluso no arrancable.

Si bien Mac OS X y Linux son "sabores" diferentes de Unix, no puedes simplemente tomar partes de un sistema operativo, instalarlas en el otro sistema operativo y esperar que funcionen.

Dicho esto, si hay un código fuente para el controlador en algún lugar, podría potencialmente compilarlos para Mac OS X utilizando el conjunto de herramientas de desarrollo Xcode.

Pero ese es un gran si . La realidad es que compilar el código fuente de la aplicación Linux en un sistema Mac OS X desde un sistema Linux es un crapshoot. A veces funciona y puedes usar buenas herramientas de Linux en un sistema Mac OS X. Pero a veces simplemente no funciona. Y eso es a nivel de aplicación. En el nivel del conductor es incluso menos plausible o factible; e incluso si fuera factible, sería difícil hacerlo en el mejor de los casos.

Dicho esto, parece haber habido un esfuerzo de código abierto para compilar los controladores Intel de Linux para Mac OS X como se ve aquí . Pero tenga en cuenta que las versiones de Mac OS X mencionadas son Mac OS X 10.4 y 10.5; nada más moderno.

    
respondido por el JakeGould 27.01.2015 - 09:17
10

No pasaría nada, porque no funcionarían (módulos del kernel). MacOS y Linux tienen 2 kernels completamente diferentes. Es como intentar poner el motor de una marca de automóviles a otra: no funcionará porque todas las conexiones / especificaciones son totalmente diferentes.

Además, no hay comandos lsmod / insmod / modbrobe / rmmod en Mac OS X ...

Ahora, si prueba con controladores binarios como - perdónen las comparaciones de mi 'automóvil' - obtenga algunos materiales para un asiento de seguridad (según las especificaciones de la marca A) y trate de construir (compilar) el asiento de seguridad marca B. Si las dos marcas de automóviles son compatibles en el área de los asientos de automóviles, entonces probablemente lo haría y podría funcionar. Pero si intentas construir un asiento de auto de carrera con materiales para un auto de 20 años, vas a tener un viaje difícil, si no te estrellas y te lastimas.

    
respondido por el Marek Bettman 27.01.2015 - 13:30
8

Como ya se ha publicado: no es posible.

En primer lugar, no existe tal cosa como 'forzar la instalación'. No hay nada que instalar, e incluso si hubiera algo que instalar, no hay "forzado". La instalación puede tener diferentes significados, pero estos dos son los relevantes para su pregunta:

  1. Instalación significa instalar un paquete de Mac OS X usando el instalador de OS X. Este es un paquete que contiene los archivos que se instalarán e instrucciones para el sistema del instalador, de modo que sepa dónde colocar qué y cómo hacerlo.

  2. Instalación significa obtener un controlador para una pieza de hardware cargada en el kernel. OS X funciona utilizando las llamadas extensiones del kernel (archivos .kext u oficialmente 'paquetes' porque eso es lo que son) para agregar funcionalidad al kernel. Un controlador es una adición de este tipo, y la funcionalidad es la capacidad de conducir una pieza de hardware.

Ambos casos están muy vinculados al sistema operativo. Esto significa que no puede "instalar" algo sin coincidir los puntos 1 y 2. Si bien técnicamente puede omitir el punto 1 utilizando el programa "kextload" para cargar un archivo como una extensión del kernel, no podrá hacer coincidir el punto 2: solo Las extensiones del kernel se pueden cargar en el kernel. Las extensiones del kernel tienen que coincidir con el ABI y la API del kernel. Esos dos acrónimos (no dude en consultarlos, su nombre completo y significado no son relevantes para la respuesta) son comparables a los enchufes eléctricos correspondientes a los enchufes. Son interfaces.

Si intentara mezclar y combinar archivos binarios (porque eso es lo que son las extensiones, los módulos y los controladores del kernel), no funcionaría porque no son compatibles con el kernel y, en algunos casos, el procesador que necesita para ejecutar el código. Esta compatibilidad con el kernel es donde llegamos a la parte ABI y API: esas interfaces son como gas, agua y conexiones eléctricas. Digamos que Windows es gas, Linux es electricidad y OS X es agua. Si intentara conectar un enchufe eléctrico de Linux a la llave de agua de OS X, no logrará que nada funcione. El agua no fluye a través de un enchufe eléctrico, y un enchufe eléctrico no recibe electricidad del agua.

Si intentara cargar un controlador de linux (que se llama módulo del kernel) en el kernel de OS X, mediante el uso de kextload desde una línea de comando en OS X, simplemente le dirá que no sabe Qué hacer con el archivo que proporcionó. No hay forzamiento allí, simplemente no se puede hacer nada con ese archivo, al igual que no se puede forzar a una bombilla para que funcione desde su grifo de agua en casa.

En cuanto a tu problema: ¿qué estás tratando de lograr? Si tiene un problema con su conexión inalámbrica, generalmente el problema está en la red o el entorno. Si le faltan ciertas funciones, como diferentes frecuencias o protocolos inalámbricos más nuevos, puede intentar instalar simplemente una tarjeta mejor soportada. Hay listas en Internet de tarjetas inalámbricas soportadas de forma nativa que funcionarán bien. Intel no es uno de ellos.

Espero que esto te ayude y aclare lo más posible.

    
respondido por el John Keates 28.01.2015 - 04:21
7

No, no es posible, como tampoco puede ejecutar ningún otro binario de Linux en OS X (sin usar una máquina virtual).

    
respondido por el Mike Scott 27.01.2015 - 08:04
1

Como nota adicional, si tiene algunos dispositivos USB que solo suministran un controlador de Linux pero no un controlador OS X, puede considerar usar el dispositivo ejecutando Linux en una máquina virtual (VirtualBox?) luego reenviar la conexión USB desde su Mac a la máquina virtual de Linux.

Luego, si necesita usar algunas herramientas de GUI, también puede configurar el reenvío X a su escritorio OS X mediante XQuartz.

    
respondido por el Angelos 29.01.2015 - 08:16

Lea otras preguntas en las etiquetas